diff --git a/apps/knowledge/sql/list_knowledge_user.sql b/apps/knowledge/sql/list_knowledge_user.sql index 646c12ffb29..19c5c619466 100644 --- a/apps/knowledge/sql/list_knowledge_user.sql +++ b/apps/knowledge/sql/list_knowledge_user.sql @@ -23,9 +23,19 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name, "document_temp".image_count FROM (SELECT knowledge.* FROM knowledge knowledge ${knowledge_custom_sql} - AND id::text in (select target - from workspace_user_resource_permission ${workspace_user_resource_permission_query_set} - and 'VIEW' = any (permission_list))) temp_knowledge + AND id::text IN ( + SELECT target + FROM workspace_user_resource_permission + ${workspace_user_resource_permission_query_set} + AND 'VIEW' = ANY (permission_list) + UNION + SELECT DISTINCT target + FROM workspace_user_group_resource_permission + INNER JOIN system_user_group_relation + ON system_user_group_relation.group_id = workspace_user_group_resource_permission.user_group_id + ${workspace_user_group_resource_permission_query_set} + AND 'VIEW' = ANY (permission_list) + )) temp_knowledge LEFT JOIN (SELECT "count"("id") FILTER (WHERE "resource_type" = 'document') AS document_count, "count"("id") FILTER (WHERE "resource_type" = 'image') AS image_count, "sum"("char_length") "char_length", diff --git a/apps/tools/sql/list_tool_user.sql b/apps/tools/sql/list_tool_user.sql index 975d506ff96..44ebfa7a190 100644 --- a/apps/tools/sql/list_tool_user.sql +++ b/apps/tools/sql/list_tool_user.sql @@ -20,10 +20,19 @@ FROM (SELECT tool."id"::text, tool."is_active" FROM (SELECT tool.* FROM tool tool ${tool_query_set} - AND tool.id::text IN (SELECT target - FROM workspace_user_resource_permission - ${workspace_user_resource_permission_query_set} - AND 'VIEW' = ANY (permission_list))) AS tool + AND tool.id::text IN ( + SELECT target + FROM workspace_user_resource_permission + ${workspace_user_resource_permission_query_set} + AND 'VIEW' = ANY (permission_list) + UNION + SELECT DISTINCT target + FROM workspace_user_group_resource_permission + INNER JOIN system_user_group_relation + ON system_user_group_relation.group_id = workspace_user_group_resource_permission.user_group_id + ${workspace_user_group_resource_permission_query_set} + AND 'VIEW' = ANY (permission_list) + )) AS tool LEFT JOIN "user" ON "user".id = user_id ) temp - ${default_query_set} \ No newline at end of file + ${default_query_set}