3838from tools .models import Tool , ToolScope
3939from tools .serializers .tool import ToolModelSerializer
4040from users .models import User
41+ from users .serializers .user import is_workspace_manage
4142
4243
4344def get_base_node_work_flow (work_flow ):
@@ -290,9 +291,10 @@ class ApplicationListResponse(serializers.Serializer):
290291
291292
292293class Query (serializers .Serializer ):
293- workspace_id = serializers .CharField (required = False , label = _ ('workspace id' ))
294+ workspace_id = serializers .CharField (required = False , label = _ ('Workspace ID' ))
295+ user_id = serializers .UUIDField (required = True , label = _ ("User ID" ))
294296
295- def get_query_set (self , instance : Dict ):
297+ def get_query_set (self , instance : Dict , workspace_manage : bool ):
296298 folder_query_set = QuerySet (ApplicationFolder )
297299 application_query_set = QuerySet (Application )
298300 workspace_id = self .data .get ('workspace_id' )
@@ -315,11 +317,14 @@ def get_query_set(self, instance: Dict):
315317 if desc is not None :
316318 folder_query_set = folder_query_set .filter (desc__contains = desc )
317319 application_query_set = application_query_set .filter (desc__contains = desc )
320+ application_custom_sql_query_set = application_query_set
318321 application_query_set = application_query_set .order_by ("-update_time" )
319322 return {
320323 'folder_query_set' : folder_query_set ,
321- 'application_query_set' : application_query_set
322- }
324+ 'application_query_set' : application_query_set ,
325+ 'application_custom_sql' : application_custom_sql_query_set
326+ } if workspace_manage else {'folder_query_set' : folder_query_set ,
327+ 'application_query_set' : application_query_set }
323328
324329 @staticmethod
325330 def is_x_pack_ee ():
@@ -329,17 +334,28 @@ def is_x_pack_ee():
329334
330335 def list (self , instance : Dict ):
331336 self .is_valid (raise_exception = True )
337+ workspace_id = self .data .get ('workspace_id' )
338+ user_id = self .data .get ("user_id" )
332339 ApplicationQueryRequest (data = instance ).is_valid (raise_exception = True )
333- return native_search (self .get_query_set (instance ), select_string = get_file_content (
340+ workspace_manage = is_workspace_manage (user_id , workspace_id )
341+
342+ return native_search (self .get_query_set (instance , workspace_manage ), select_string = get_file_content (
334343 os .path .join (PROJECT_DIR , "apps" , "application" , 'sql' ,
335- 'list_application_ee.sql' if self .is_x_pack_ee () else 'list_application.sql' )))
344+ 'list_application.sql' if workspace_manage else (
345+ 'list_application_user_ee.sql' if self .is_x_pack_ee () else 'list_application_user.sql' )
346+ )))
336347
337348 def page (self , current_page : int , page_size : int , instance : Dict ):
338349 self .is_valid (raise_exception = True )
339350 ApplicationQueryRequest (data = instance ).is_valid (raise_exception = True )
340- return native_page_search (current_page , page_size , self .get_query_set (instance ), get_file_content (
341- os .path .join (PROJECT_DIR , "apps" , "application" , 'sql' ,
342- 'list_application_ee.sql' if self .is_x_pack_ee () else 'list_application.sql' )),
351+ workspace_id = self .data .get ('workspace_id' )
352+ user_id = self .data .get ("user_id" )
353+ workspace_manage = is_workspace_manage (user_id , workspace_id )
354+ return native_page_search (current_page , page_size , self .get_query_set (instance , workspace_manage ),
355+ get_file_content (
356+ os .path .join (PROJECT_DIR , "apps" , "application" , 'sql' ,
357+ 'list_application.sql' if workspace_manage else (
358+ 'list_application_user_ee.sql' if self .is_x_pack_ee () else 'list_application_user.sql' ))),
343359 )
344360
345361
0 commit comments