2020from common import result
2121from common .auth import TokenAuth
2222from common .auth .authentication import has_permissions
23- from common .constants .permission_constants import PermissionConstants
23+ from common .constants .permission_constants import PermissionConstants , RoleConstants
2424from common .log .log import log
2525
2626
@@ -33,7 +33,7 @@ def get_application_operation_object(application_id):
3333 return {}
3434
3535
36- class Application (APIView ):
36+ class ApplicationAPI (APIView ):
3737 authentication_classes = [TokenAuth ]
3838
3939 @extend_schema (
@@ -46,7 +46,8 @@ class Application(APIView):
4646 responses = ApplicationCreateAPI .get_response (),
4747 tags = [_ ('Application' )] # type: ignore
4848 )
49- @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission ())
49+ @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission (),
50+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
5051 @log (menu = 'Application' , operate = 'Create an application' ,
5152 get_operation_object = lambda r , k : {'name' : r .data .get ('name' )},
5253 workspace_id = lambda r , k : k .get ('workspace_id' ))
@@ -63,7 +64,8 @@ def post(self, request: Request, workspace_id: str):
6364 responses = ApplicationQueryAPI .get_response (),
6465 tags = [_ ('Application' )] # type: ignore
6566 )
66- @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission ())
67+ @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission (),
68+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
6769 def get (self , request : Request , workspace_id : str ):
6870 return result .success (Query (data = {'workspace_id' : workspace_id , 'user_id' : request .user .id }).list (request .data ))
6971
@@ -79,7 +81,8 @@ class Page(APIView):
7981 responses = ApplicationQueryAPI .get_page_response (),
8082 tags = [_ ('Application' )] # type: ignore
8183 )
82- @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission ())
84+ @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission (),
85+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
8386 def get (self , request : Request , workspace_id : str , current_page : int , page_size : int ):
8487 return result .success (
8588 Query (data = {'workspace_id' : workspace_id , 'user_id' : request .user .id }).page (current_page , page_size ,
@@ -99,7 +102,7 @@ class Import(APIView):
99102 responses = result .DefaultResultSerializer ,
100103 tags = [_ ('Application' )] # type: ignore
101104 )
102- @has_permissions (PermissionConstants .APPLICATION_READ )
105+ @has_permissions (PermissionConstants .APPLICATION_READ , RoleConstants . WORKSPACE_MANAGE . get_workspace_role () )
103106 @log (menu = 'Application' , operate = "Import Application" , workspace_id = lambda r , k : k .get ('workspace_id' ))
104107 def post (self , request : Request , workspace_id : str ):
105108 return result .success (ApplicationSerializer (
@@ -119,7 +122,8 @@ class Export(APIView):
119122 responses = ApplicationExportAPI .get_response (),
120123 tags = [_ ('Application' )] # type: ignore
121124 )
122- @has_permissions (PermissionConstants .APPLICATION_EXPORT .get_workspace_application_permission ())
125+ @has_permissions (PermissionConstants .APPLICATION_EXPORT .get_workspace_application_permission (),
126+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
123127 @log (menu = 'Application' , operate = "Export Application" ,
124128 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
125129 workspace_id = lambda r , k : k .get ('workspace_id' ))
@@ -140,7 +144,8 @@ class Operate(APIView):
140144 responses = result .DefaultResultSerializer ,
141145 tags = [_ ('Application' )] # type: ignore
142146 )
143- @has_permissions (PermissionConstants .APPLICATION_DELETE .get_workspace_application_permission ())
147+ @has_permissions (PermissionConstants .APPLICATION_DELETE .get_workspace_application_permission (),
148+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
144149 @log (menu = 'Application' , operate = 'Deleting application' ,
145150 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
146151 workspace_id = lambda r , k : k .get ('workspace_id' )
@@ -160,7 +165,8 @@ def delete(self, request: Request, workspace_id: str, application_id: str):
160165 responses = ApplicationCreateAPI .get_response (),
161166 tags = [_ ('Application' )] # type: ignore
162167 )
163- @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission ())
168+ @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
169+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
164170 @log (menu = 'Application' , operate = "Modify the application" ,
165171 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
166172 workspace_id = lambda r , k : k .get ('workspace_id' ))
@@ -180,7 +186,8 @@ def put(self, request: Request, workspace_id: str, application_id: str):
180186 responses = result .DefaultResultSerializer ,
181187 tags = [_ ('Application' )] # type: ignore
182188 )
183- @has_permissions (PermissionConstants .WORKSPACE_READ .get_workspace_application_permission ())
189+ @has_permissions (PermissionConstants .WORKSPACE_READ .get_workspace_application_permission (),
190+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
184191 def get (self , request : Request , workspace_id : str , application_id : str ):
185192 return result .success (ApplicationOperateSerializer (
186193 data = {'application_id' : application_id , 'user_id' : request .user .id }).one ())
@@ -202,7 +209,7 @@ class Publish(APIView):
202209 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
203210 workspace_id = lambda r , k : k .get ('workspace_id' )
204211 )
205- def put (self , request : Request , application_id : str ):
212+ def put (self , request : Request , workspace_id : str , application_id : str ):
206213 return result .success (
207214 ApplicationOperateSerializer (
208215 data = {'application_id' : application_id , 'user_id' : request .user .id }).publish (request .data ))
0 commit comments