From 313757dbe9d35c952d2f4456ad79782b3132ed50 Mon Sep 17 00:00:00 2001 From: xinwen Date: Fri, 19 Mar 2021 14:31:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=8E=E7=94=A8=E6=88=B7=E7=BB=84=E5=85=B3=E7=B3=BB=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E6=97=B6=20500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/signals_handler/refresh_perms.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/perms/signals_handler/refresh_perms.py b/apps/perms/signals_handler/refresh_perms.py index e180d6116..54edc7241 100644 --- a/apps/perms/signals_handler/refresh_perms.py +++ b/apps/perms/signals_handler/refresh_perms.py @@ -27,8 +27,7 @@ def on_user_groups_change(sender, instance, action, reverse, pk_set, **kwargs): else: group_ids = pk_set user_ids = [instance.id] - - group = UserGroup.objects.get(id=group_ids[0]) + group = UserGroup.objects.get(id=list(group_ids)[0]) org_id = group.org_id exists = AssetPermission.user_groups.through.objects.filter(usergroup_id__in=group_ids).exists() From 9fc1ae7b6d4993734bf62216ad962c88931f90be Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 19 Mar 2021 14:37:48 +0800 Subject: [PATCH 2/4] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 73533 -> 73487 bytes apps/locale/zh/LC_MESSAGES/django.po | 49 ++++++++++++++------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 27ceba4a14bed95c12f3d5c37663ff95be4c418a..0179f659e7018038f2b842897fbf87589eb4f5cf 100644 GIT binary patch delta 19603 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 E1A(6hy#N3J delta 19632 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 Ly6N=4m7@O-7r7({ diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 65696ffa0..8f2d1e4c1 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-17 18:17+0800\n" +"POT-Creation-Date: 2021-03-19 14:34+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -428,7 +428,7 @@ msgstr "激活" #: assets/models/asset.py:196 assets/models/cluster.py:19 #: assets/models/user.py:66 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:137 +#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:138 msgid "Admin user" msgstr "管理用户" @@ -693,7 +693,7 @@ msgstr "ssh私钥" #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 -#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:138 +#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:139 msgid "Node" msgstr "节点" @@ -1140,7 +1140,7 @@ msgstr "启用" msgid "-" msgstr "" -#: audits/models.py:96 xpack/plugins/cloud/const.py:23 +#: audits/models.py:96 xpack/plugins/cloud/const.py:24 msgid "Failed" msgstr "失败" @@ -1879,10 +1879,6 @@ msgstr "`{model._meta.verbose_name}` 存在数据, 请先删除" msgid "The current organization cannot be deleted" msgstr "当前组织不能被删除" -#: orgs/mixins/api.py:46 -msgid "Root organization only allow view and delete" -msgstr "全局组织仅支持 查看和删除" - #: orgs/mixins/models.py:45 orgs/mixins/serializers.py:25 orgs/models.py:36 #: orgs/models.py:416 orgs/serializers.py:101 #: tickets/serializers/ticket/ticket.py:81 @@ -3788,7 +3784,7 @@ msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 users/templates/users/_user.html:13 #: users/templates/users/user_profile_update.html:55 -#: xpack/plugins/cloud/models.py:78 xpack/plugins/cloud/serializers.py:136 +#: xpack/plugins/cloud/models.py:78 xpack/plugins/cloud/serializers.py:137 msgid "Account" msgstr "账户" @@ -4778,42 +4774,46 @@ msgid "Azure (China)" msgstr "Azure (中国)" #: xpack/plugins/cloud/const.py:12 +msgid "Azure (International)" +msgstr "Azure (国际)" + +#: xpack/plugins/cloud/const.py:13 msgid "Huawei Cloud" msgstr "华为云" -#: xpack/plugins/cloud/const.py:13 +#: xpack/plugins/cloud/const.py:14 msgid "Tencent Cloud" msgstr "腾讯云" -#: xpack/plugins/cloud/const.py:14 +#: xpack/plugins/cloud/const.py:15 msgid "VMware" msgstr "" -#: xpack/plugins/cloud/const.py:18 +#: xpack/plugins/cloud/const.py:19 msgid "Instance name" msgstr "实例名称" -#: xpack/plugins/cloud/const.py:19 +#: xpack/plugins/cloud/const.py:20 msgid "Instance name and Partial IP" msgstr "实例名称和部分IP" -#: xpack/plugins/cloud/const.py:24 +#: xpack/plugins/cloud/const.py:25 msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:28 +#: xpack/plugins/cloud/const.py:29 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/const.py:29 +#: xpack/plugins/cloud/const.py:30 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/const.py:30 +#: xpack/plugins/cloud/const.py:31 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/const.py:31 +#: xpack/plugins/cloud/const.py:32 msgid "Released" msgstr "已释放" @@ -4829,7 +4829,7 @@ msgstr "云服务商" msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:117 +#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:118 msgid "Regions" msgstr "地域" @@ -4837,7 +4837,7 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:140 +#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:141 msgid "Always update" msgstr "总是更新" @@ -5029,15 +5029,15 @@ msgstr "" msgid "Subscription ID" msgstr "" -#: xpack/plugins/cloud/serializers.py:115 +#: xpack/plugins/cloud/serializers.py:116 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:116 +#: xpack/plugins/cloud/serializers.py:117 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:139 +#: xpack/plugins/cloud/serializers.py:140 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" @@ -5130,6 +5130,9 @@ msgstr "旗舰版" msgid "Community edition" msgstr "社区版" +#~ msgid "Root organization only allow view and delete" +#~ msgstr "全局组织仅支持 查看和删除" + #~ msgid "" #~ "Push system user task skip, auto push not enable or protocol is not ssh " #~ "or rdp: {}" From adf5c4a7b94ce7e71ba5d842046db44339ae82fd Mon Sep 17 00:00:00 2001 From: xinwen Date: Fri, 19 Mar 2021 17:18:32 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20LDAP=20=E8=87=AA=E5=8A=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E7=9A=84=E7=94=A8=E6=88=B7=E6=9C=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/backends/ldap.py | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/apps/authentication/backends/ldap.py b/apps/authentication/backends/ldap.py index 5551c83d4..b034a62c5 100644 --- a/apps/authentication/backends/ldap.py +++ b/apps/authentication/backends/ldap.py @@ -27,6 +27,39 @@ class LDAPAuthorizationBackend(LDAPBackend): is_valid = getattr(user, 'is_valid', None) return is_valid or is_valid is None + def get_or_build_user(self, username, ldap_user): + """ + This must return a (User, built) 2-tuple for the given LDAP user. + + username is the Django-friendly username of the user. ldap_user.dn is + the user's DN and ldap_user.attrs contains all of their LDAP + attributes. + + The returned User object may be an unsaved model instance. + + """ + model = self.get_user_model() + + if self.settings.USER_QUERY_FIELD: + query_field = self.settings.USER_QUERY_FIELD + query_value = ldap_user.attrs[self.settings.USER_ATTR_MAP[query_field]][0] + query_value = query_value.strip() + lookup = query_field + else: + query_field = model.USERNAME_FIELD + query_value = username.lower() + lookup = "{}__iexact".format(query_field) + + try: + user = model.objects.get(**{lookup: query_value}) + except model.DoesNotExist: + user = model(**{query_field: query_value}) + built = True + else: + built = False + + return (user, built) + def pre_check(self, username, password): if not settings.AUTH_LDAP: error = 'Not enabled auth ldap' @@ -128,6 +161,7 @@ class LDAPUser(_LDAPUser): for field, attr in self.settings.USER_ATTR_MAP.items(): try: value = self.attrs[attr][0] + value = value.strip() if attr.lower() == 'useraccountcontrol' \ and field == 'is_active' and value: value = int(value) & LDAP_AD_ACCOUNT_DISABLE \ From 370e1628be70bd28dd9124f5d5c550ee44e898fa Mon Sep 17 00:00:00 2001 From: xinwen Date: Fri, 19 Mar 2021 17:42:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E7=A6=81=E7=94=A8=E7=9A=84=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E9=99=90=E5=88=B6=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/api/asset/user_permission/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/perms/api/asset/user_permission/common.py b/apps/perms/api/asset/user_permission/common.py index 675d42092..88b5422d9 100644 --- a/apps/perms/api/asset/user_permission/common.py +++ b/apps/perms/api/asset/user_permission/common.py @@ -81,7 +81,7 @@ class ValidateUserAssetPermissionApi(APIView): except ValueError: return Response({'msg': False}, status=403) - asset = get_object_or_404(Asset, id=asset_id) + asset = get_object_or_404(Asset, id=asset_id, is_active=True) system_user = get_object_or_404(SystemUser, id=system_id) system_users_actions = get_asset_system_user_ids_with_actions_by_user(self.get_user(), asset) @@ -116,7 +116,7 @@ class UserGrantedAssetSystemUsersForAdminApi(ListAPIView): def get_queryset(self): asset_id = self.kwargs.get('asset_id') - asset = get_object_or_404(Asset, id=asset_id) + asset = get_object_or_404(Asset, id=asset_id, is_active=True) system_users_with_actions = self.get_asset_system_user_ids_with_actions(asset) system_user_ids = system_users_with_actions.keys() system_users = SystemUser.objects.filter(id__in=system_user_ids)\