mirror of https://github.com/jumpserver/jumpserver
perf: 修改 CommandFilterACL Account 只匹配 username 字段
parent
a69b762f13
commit
5568c4c5df
|
@ -56,14 +56,9 @@ class UserAssetAccountACLQuerySet(BaseACLQuerySet):
|
||||||
queryset = queryset.filter(id__in=ids)
|
queryset = queryset.filter(id__in=ids)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def filter_account(self, name=None, username=None):
|
def filter_account(self, username):
|
||||||
q = Q()
|
q = Q(accounts__username_group__contains=username) | \
|
||||||
if name:
|
Q(accounts__username_group__contains='*')
|
||||||
q &= Q(accounts__name_group__contains=name) | \
|
|
||||||
Q(accounts__name_group__contains='*')
|
|
||||||
if username:
|
|
||||||
q &= Q(accounts__username_group__contains=username) | \
|
|
||||||
Q(accounts__username_group__contains='*')
|
|
||||||
return self.filter(q)
|
return self.filter(q)
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,7 +91,7 @@ class UserAssetAccountBaseACL(BaseACL, OrgModelMixin):
|
||||||
users = models.JSONField(verbose_name=_('User'))
|
users = models.JSONField(verbose_name=_('User'))
|
||||||
# name_group, address_group
|
# name_group, address_group
|
||||||
assets = models.JSONField(verbose_name=_('Asset'))
|
assets = models.JSONField(verbose_name=_('Asset'))
|
||||||
# name_group, username_group
|
# username_group
|
||||||
accounts = models.JSONField(verbose_name=_('Account'))
|
accounts = models.JSONField(verbose_name=_('Account'))
|
||||||
|
|
||||||
objects = ACLManager.from_queryset(UserAssetAccountACLQuerySet)()
|
objects = ACLManager.from_queryset(UserAssetAccountACLQuerySet)()
|
||||||
|
@ -115,7 +110,7 @@ class UserAssetAccountBaseACL(BaseACL, OrgModelMixin):
|
||||||
queryset = queryset.filter_asset(asset.name, asset.address)
|
queryset = queryset.filter_asset(asset.name, asset.address)
|
||||||
if account:
|
if account:
|
||||||
org_id = account.org_id
|
org_id = account.org_id
|
||||||
queryset = queryset.filter_account(account.name, account.username)
|
queryset = queryset.filter_account(account.username)
|
||||||
if account_username:
|
if account_username:
|
||||||
queryset = queryset.filter_account(username=account_username)
|
queryset = queryset.filter_account(username=account_username)
|
||||||
if org_id:
|
if org_id:
|
||||||
|
|
|
@ -11,12 +11,14 @@ __all__ = ["CommandFilterACLSerializer", "CommandGroupSerializer"]
|
||||||
class CommandGroupSerializer(BulkOrgResourceModelSerializer):
|
class CommandGroupSerializer(BulkOrgResourceModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CommandGroup
|
model = CommandGroup
|
||||||
fields = ['id', 'name', 'type', 'content', 'comment']
|
fields = ['id', 'name', 'type', 'content', 'ignore_case', 'comment']
|
||||||
|
|
||||||
|
|
||||||
class CommandFilterACLSerializer(BaseSerializer, BulkOrgResourceModelSerializer):
|
class CommandFilterACLSerializer(BaseSerializer, BulkOrgResourceModelSerializer):
|
||||||
commands = ObjectRelatedField(queryset=CommandGroup.objects, many=True, required=False, label=_('Commands'))
|
command_groups = ObjectRelatedField(
|
||||||
|
queryset=CommandGroup.objects, many=True, required=False, label=_('Commands')
|
||||||
|
)
|
||||||
|
|
||||||
class Meta(BaseSerializer.Meta):
|
class Meta(BaseSerializer.Meta):
|
||||||
model = CommandFilterACL
|
model = CommandFilterACL
|
||||||
fields = BaseSerializer.Meta.fields + ['commands']
|
fields = BaseSerializer.Meta.fields + ['command_groups']
|
||||||
|
|
Loading…
Reference in New Issue