@@ -292,8 +292,17 @@ def list_application(self, with_valid=True):
292292 ]
293293 )
294294
295+ @staticmethod
296+ def is_x_pack_ee ():
297+ workspace_user_role_mapping_model = DatabaseModelManage .get_model ("workspace_user_role_mapping" )
298+ role_permission_mapping_model = DatabaseModelManage .get_model ("role_permission_mapping_model" )
299+ return workspace_user_role_mapping_model is not None and role_permission_mapping_model is not None
300+
295301 def one (self ):
296302 self .is_valid ()
303+ workspace_manage = is_workspace_manage (self .data .get ('user_id' ), self .data .get ('workspace_id' ))
304+ is_x_pack_ee = self .is_x_pack_ee ()
305+
297306 query_set_dict = {
298307 'default_sql' : QuerySet (
299308 model = get_dynamics_model ({'temp.id' : models .CharField ()})
@@ -303,11 +312,22 @@ def one(self):
303312 ).filter (** {'knowledge.user_id' : self .data .get ("user_id" )}),
304313 'folder_query_set' : QuerySet (KnowledgeFolder )
305314 }
315+ if not workspace_manage :
316+ query_set_dict ['workspace_user_resource_permission_query_set' ] = QuerySet (
317+ WorkspaceUserResourcePermission ).filter (
318+ auth_target_type = "KNOWLEDGE" ,
319+ workspace_id = self .data .get ('workspace_id' ),
320+ user_id = self .data .get ("user_id" )
321+ )
306322 all_application_list = [str (adm .get ('id' )) for adm in self .list_application (with_valid = False )]
307323 knowledge_dict = native_search (query_set_dict , select_string = get_file_content (
308- os .path .join (PROJECT_DIR , "apps" , "knowledge" , 'sql' , 'list_knowledge.sql' )), with_search_one = True )
309- if knowledge_dict is None :
310- return None
324+ os .path .join (
325+ PROJECT_DIR , "apps" , "knowledge" , 'sql' ,
326+ 'list_knowledge.sql' if workspace_manage else (
327+ 'list_knowledge_user_ee.sql' if is_x_pack_ee else 'list_knowledge_user.sql'
328+ )
329+ )
330+ ), with_search_one = True )
311331 return {
312332 ** knowledge_dict ,
313333 'meta' : json .loads (knowledge_dict .get ('meta' , '{}' )),
0 commit comments