1616
1717from application .api .application_api import ApplicationCreateAPI , ApplicationQueryAPI , ApplicationImportAPI , \
1818 ApplicationExportAPI , ApplicationOperateAPI , ApplicationEditAPI , TextToSpeechAPI , SpeechToTextAPI , PlayDemoTextAPI
19+ from application .flow .step_node .condition_node .compare import Compare
1920from application .models import Application
2021from application .serializers .application import ApplicationSerializer , Query , ApplicationOperateSerializer
2122from common import result
2223from common .auth import TokenAuth
2324from common .auth .authentication import has_permissions
24- from common .constants .permission_constants import PermissionConstants , RoleConstants
25+ from common .constants .permission_constants import PermissionConstants , RoleConstants , ViewPermission , CompareConstants
2526from common .log .log import log
2627
2728
@@ -130,7 +131,8 @@ class Export(APIView):
130131 )
131132 @has_permissions (PermissionConstants .APPLICATION_EXPORT .get_workspace_application_permission (),
132133 PermissionConstants .APPLICATION_EXPORT .get_workspace_permission_workspace_manage_role (),
133- RoleConstants .USER .get_workspace_role (),
134+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
135+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],CompareConstants .AND ),
134136 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
135137 @log (menu = 'Application' , operate = "Export Application" ,
136138 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
@@ -155,7 +157,9 @@ class Operate(APIView):
155157 )
156158 @has_permissions (PermissionConstants .APPLICATION_DELETE .get_workspace_application_permission (),
157159 PermissionConstants .APPLICATION_DELETE .get_workspace_permission_workspace_manage_role (),
158- RoleConstants .USER .get_workspace_role (),
160+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
161+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
162+ CompareConstants .AND ),
159163 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
160164 @log (menu = 'Application' , operate = 'Deleting application' ,
161165 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
@@ -179,7 +183,9 @@ def delete(self, request: Request, workspace_id: str, application_id: str):
179183 )
180184 @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
181185 PermissionConstants .APPLICATION_EDIT .get_workspace_permission_workspace_manage_role (),
182- RoleConstants .USER .get_workspace_role (),
186+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
187+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
188+ CompareConstants .AND ),
183189 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
184190 @log (menu = 'Application' , operate = "Modify the application" ,
185191 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )),
@@ -203,7 +209,9 @@ def put(self, request: Request, workspace_id: str, application_id: str):
203209 )
204210 @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_application_permission (),
205211 PermissionConstants .APPLICATION_READ .get_workspace_permission_workspace_manage_role (),
206- RoleConstants .USER .get_workspace_role (),
212+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
213+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
214+ CompareConstants .AND ),
207215 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
208216 def get (self , request : Request , workspace_id : str , application_id : str ):
209217 return result .success (ApplicationOperateSerializer (
@@ -225,7 +233,9 @@ class Publish(APIView):
225233 )
226234 @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
227235 PermissionConstants .APPLICATION_EDIT .get_workspace_permission_workspace_manage_role (),
228- RoleConstants .USER .get_workspace_role (),
236+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
237+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
238+ CompareConstants .AND ),
229239 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
230240 @log (menu = 'Application' , operate = 'Publishing an application' ,
231241 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )))
@@ -251,7 +261,9 @@ class McpServers(APIView):
251261 )
252262 @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_application_permission (),
253263 PermissionConstants .APPLICATION_READ .get_workspace_permission_workspace_manage_role (),
254- RoleConstants .USER .get_workspace_role (),
264+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
265+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
266+ CompareConstants .AND ),
255267 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
256268 def get (self , request : Request , workspace_id , application_id : str ):
257269 return result .success (ApplicationOperateSerializer (
@@ -273,7 +285,9 @@ class SpeechToText(APIView):
273285 )
274286 @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
275287 PermissionConstants .APPLICATION_EDIT .get_workspace_permission_workspace_manage_role (),
276- RoleConstants .USER .get_workspace_role (),
288+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
289+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
290+ CompareConstants .AND ),
277291 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
278292 def post (self , request : Request , workspace_id : str , application_id : str ):
279293 return result .success (
@@ -297,7 +311,9 @@ class TextToSpeech(APIView):
297311 )
298312 @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
299313 PermissionConstants .APPLICATION_EDIT .get_workspace_permission_workspace_manage_role (),
300- RoleConstants .USER .get_workspace_role (),
314+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
315+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
316+ CompareConstants .AND ),
301317 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
302318 def post (self , request : Request , workspace_id : str , application_id : str ):
303319 byte_data = ApplicationOperateSerializer (
@@ -322,7 +338,9 @@ class PlayDemoText(APIView):
322338 )
323339 @has_permissions (PermissionConstants .APPLICATION_EDIT .get_workspace_application_permission (),
324340 PermissionConstants .APPLICATION_EDIT .get_workspace_permission_workspace_manage_role (),
325- RoleConstants .USER .get_workspace_role (),
341+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
342+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
343+ CompareConstants .AND ),
326344 RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
327345 @log (menu = 'Application' , operate = "trial listening" ,
328346 get_operation_object = lambda r , k : get_application_operation_object (k .get ('application_id' )))
0 commit comments