mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-12 13:31:56 +00:00
[Update] 优化用户授权的 RemoteApp API 过滤逻辑
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
from orgs.utils import set_to_root_org
|
||||
|
||||
__all__ = [
|
||||
'AssetsFilterMixin', 'RemoteAppFilterMixin', 'ChangeOrgIfNeedMixin',
|
||||
'AssetsFilterMixin', 'ChangeOrgIfNeedMixin',
|
||||
]
|
||||
|
||||
|
||||
@@ -68,41 +68,6 @@ class AssetsFilterMixin(object):
|
||||
return _queryset
|
||||
|
||||
|
||||
class RemoteAppFilterMixin(object):
|
||||
"""
|
||||
对RemoteApp进行过滤(查询,排序)
|
||||
"""
|
||||
|
||||
def filter_queryset(self, queryset):
|
||||
queryset = self.search_remote_apps(queryset)
|
||||
queryset = self.sort_remote_apps(queryset)
|
||||
return queryset
|
||||
|
||||
def search_remote_apps(self, queryset):
|
||||
value = self.request.query_params.get('search')
|
||||
if not value:
|
||||
return queryset
|
||||
queryset = [
|
||||
remote_app for remote_app in queryset if value in remote_app.name
|
||||
]
|
||||
return queryset
|
||||
|
||||
def sort_remote_apps(self, queryset):
|
||||
order_by = self.request.query_params.get('order')
|
||||
if not order_by:
|
||||
order_by = 'name'
|
||||
if order_by.startswith('-'):
|
||||
order_by = order_by.lstrip('-')
|
||||
reverse = True
|
||||
else:
|
||||
reverse = False
|
||||
|
||||
queryset = sorted(
|
||||
queryset, key=lambda x: getattr(x, order_by), reverse=reverse
|
||||
)
|
||||
return queryset
|
||||
|
||||
|
||||
class ChangeOrgIfNeedMixin(object):
|
||||
|
||||
@staticmethod
|
||||
|
Reference in New Issue
Block a user