perf: merge v3

This commit is contained in:
ibuler
2022-08-23 10:26:43 +08:00
26 changed files with 166 additions and 55 deletions

View File

@@ -45,18 +45,12 @@ class ConnectionTokenMixin:
@staticmethod
def check_user_has_resource_permission(user, asset, application, system_user):
from perms.utils.asset import has_asset_system_permission
from perms.utils.application import has_application_system_permission
if asset and not has_asset_system_permission(user, asset, system_user):
error = f'User not has this asset and system user permission: ' \
f'user={user.id} system_user={system_user.id} asset={asset.id}'
raise PermissionDenied(error)
if application and not has_application_system_permission(user, application, system_user):
error = f'User not has this application and system user permission: ' \
f'user={user.id} system_user={system_user.id} application={application.id}'
raise PermissionDenied(error)
def get_smart_endpoint(self, protocol, asset=None, application=None):
if asset:
target_ip = asset.get_target_ip()
@@ -204,8 +198,7 @@ class ConnectionTokenMixin:
class ConnectionTokenViewSet(ConnectionTokenMixin, RootOrgViewMixin, JMSModelViewSet):
filterset_fields = (
'type',
'user_display', 'system_user_display', 'application_display', 'asset_display'
'type', 'user_display', 'asset_display'
)
search_fields = filterset_fields
serializer_classes = {

View File

@@ -10,7 +10,7 @@ def migrate_system_user_to_account(apps, schema_editor):
while True:
connection_tokens = connection_token_model.objects \
.prefetch_related('system_users')[count:bulk_size]
.prefetch_related('system_user')[count:bulk_size]
if not connection_tokens:
break
count += len(connection_tokens)