From 0ccd806eca0255deeda216e83392cde647e0bd0d Mon Sep 17 00:00:00 2001 From: Eric_Lee Date: Tue, 16 Jun 2020 16:12:59 +0800 Subject: [PATCH] add system user perm api (#4108) --- apps/perms/api/__init__.py | 1 + apps/perms/api/system_user_permission.py | 21 +++++++++++++++++++ apps/perms/serializers/__init__.py | 2 +- .../serializers/system_user_permission.py | 18 ++++++++++++++++ apps/perms/urls/api_urls.py | 6 +++--- apps/perms/urls/system_user_permission.py | 6 ++++++ 6 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 apps/perms/api/system_user_permission.py create mode 100644 apps/perms/serializers/system_user_permission.py create mode 100644 apps/perms/urls/system_user_permission.py diff --git a/apps/perms/api/__init__.py b/apps/perms/api/__init__.py index f12a8cc38..cba965d00 100644 --- a/apps/perms/api/__init__.py +++ b/apps/perms/api/__init__.py @@ -11,3 +11,4 @@ from .user_remote_app_permission import * from .database_app_permission import * from .database_app_permission_relation import * from .user_database_app_permission import * +from .system_user_permission import * diff --git a/apps/perms/api/system_user_permission.py b/apps/perms/api/system_user_permission.py new file mode 100644 index 000000000..aa0ceda39 --- /dev/null +++ b/apps/perms/api/system_user_permission.py @@ -0,0 +1,21 @@ + + +from rest_framework import generics +from common.permissions import IsValidUser +from orgs.utils import tmp_to_root_org +from .. import serializers + + +class SystemUserPermission(generics.ListAPIView): + permission_classes = (IsValidUser,) + serializer_class = serializers.SystemUserSerializer + + def get_queryset(self): + return self.get_user_system_users() + + def get_user_system_users(self): + from perms.utils import AssetPermissionUtil + user = self.request.user + with tmp_to_root_org(): + util = AssetPermissionUtil(user) + return util.get_system_users() diff --git a/apps/perms/serializers/__init__.py b/apps/perms/serializers/__init__.py index 7b8945827..43f221d6e 100644 --- a/apps/perms/serializers/__init__.py +++ b/apps/perms/serializers/__init__.py @@ -1,6 +1,6 @@ # coding: utf-8 # - +from .system_user_permission import * from .asset_permission import * from .user_permission import * from .remote_app_permission import * diff --git a/apps/perms/serializers/system_user_permission.py b/apps/perms/serializers/system_user_permission.py new file mode 100644 index 000000000..a383ffbd0 --- /dev/null +++ b/apps/perms/serializers/system_user_permission.py @@ -0,0 +1,18 @@ +from rest_framework import serializers +from ..hands import SystemUser + +__all__ = [ + 'SystemUserSerializer', +] + + +class SystemUserSerializer(serializers.ModelSerializer): + class Meta: + model = SystemUser + fields = [ + 'id', 'name', 'username', 'protocol', + 'login_mode', 'login_mode_display', + 'priority', 'username_same_with_user', + 'auto_push', 'cmd_filters', 'sudo', 'shell', 'comment', + 'sftp_root', 'date_created', 'created_by' + ] diff --git a/apps/perms/urls/api_urls.py b/apps/perms/urls/api_urls.py index 9ec3b754f..d70a824cc 100644 --- a/apps/perms/urls/api_urls.py +++ b/apps/perms/urls/api_urls.py @@ -5,10 +5,10 @@ from common import api as capi from .asset_permission import asset_permission_urlpatterns from .remote_app_permission import remote_app_permission_urlpatterns from .database_app_permission import database_app_permission_urlpatterns +from .system_user_permission import system_users_permission_urlpatterns app_name = 'perms' - old_version_urlpatterns = [ re_path('(?Puser|user-group|asset-permission|remote-app-permission)/.*', capi.redirect_plural_name_api) ] @@ -16,5 +16,5 @@ old_version_urlpatterns = [ urlpatterns = asset_permission_urlpatterns + \ remote_app_permission_urlpatterns + \ database_app_permission_urlpatterns + \ - old_version_urlpatterns - + old_version_urlpatterns + \ + system_users_permission_urlpatterns diff --git a/apps/perms/urls/system_user_permission.py b/apps/perms/urls/system_user_permission.py new file mode 100644 index 000000000..e5a5ba1e4 --- /dev/null +++ b/apps/perms/urls/system_user_permission.py @@ -0,0 +1,6 @@ +from django.urls import path +from .. import api + +system_users_permission_urlpatterns = [ + path('system-users-permission/', api.SystemUserPermission.as_view(), name='system-users-permission'), +]