diff --git a/apps/application/views/application_views.py b/apps/application/views/application_views.py index fb234c665..7ae7e15aa 100644 --- a/apps/application/views/application_views.py +++ b/apps/application/views/application_views.py @@ -68,7 +68,7 @@ class Application(APIView): ) @has_permissions(ViewPermission( [RoleConstants.ADMIN, RoleConstants.USER], - [lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE, + [lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.USE, dynamic_tag=keywords.get('application_id'))], compare=CompareConstants.AND)) def get(self, request: Request, application_id: str): @@ -88,8 +88,7 @@ class Application(APIView): [RoleConstants.ADMIN, RoleConstants.USER], [lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE, dynamic_tag=keywords.get('application_id'))], - compare=CompareConstants.AND), lambda r, k: Permission(group=Group.APPLICATION, operate=Operate.DELETE, - dynamic_tag=k.get('application_id')), + compare=CompareConstants.AND), PermissionConstants.APPLICATION_EDIT, compare=CompareConstants.AND) def put(self, request: Request, application_id: str, api_key_id: str): return result.success( @@ -106,8 +105,7 @@ class Application(APIView): [RoleConstants.ADMIN, RoleConstants.USER], [lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE, dynamic_tag=keywords.get('application_id'))], - compare=CompareConstants.AND), lambda r, k: Permission(group=Group.APPLICATION, operate=Operate.DELETE, - dynamic_tag=k.get('application_id')), + compare=CompareConstants.AND), PermissionConstants.APPLICATION_DELETE, compare=CompareConstants.AND) def delete(self, request: Request, application_id: str, api_key_id: str): return result.success( diff --git a/apps/common/constants/permission_constants.py b/apps/common/constants/permission_constants.py index 6e1df31d2..6f3f5c0f3 100644 --- a/apps/common/constants/permission_constants.py +++ b/apps/common/constants/permission_constants.py @@ -108,6 +108,12 @@ class PermissionConstants(Enum): APPLICATION_CREATE = Permission(group=Group.APPLICATION, operate=Operate.CREATE, roles=[RoleConstants.ADMIN, RoleConstants.USER]) + APPLICATION_DELETE = Permission(group=Group.APPLICATION, operate=Operate.DELETE, + roles=[RoleConstants.ADMIN, RoleConstants.USER]) + + APPLICATION_EDIT = Permission(group=Group.APPLICATION, operate=Operate.EDIT, + roles=[RoleConstants.ADMIN, RoleConstants.USER]) + SETTING_READ = Permission(group=Group.SETTING, operate=Operate.READ, roles=[RoleConstants.ADMIN, RoleConstants.USER])