list_tool_user_ee.sql 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. SELECT *
  2. FROM (SELECT tool."id"::text,
  3. tool."name",
  4. tool."desc",
  5. tool."tool_type",
  6. tool."scope",
  7. 'tool' AS "resource_type",
  8. tool."workspace_id",
  9. tool."folder_id",
  10. tool."user_id",
  11. "user".nick_name AS "nick_name",
  12. tool."icon",
  13. tool.label,
  14. tool."template_id"::text,
  15. tool."create_time",
  16. tool."update_time",
  17. tool.init_field_list,
  18. tool.input_field_list,
  19. tool.version,
  20. tool."is_active"
  21. FROM (SELECT tool.*
  22. FROM tool tool ${tool_query_set}
  23. AND tool.id::text IN (SELECT target
  24. FROM workspace_user_resource_permission ${workspace_user_resource_permission_query_set}
  25. AND CASE
  26. WHEN auth_type = 'ROLE' THEN
  27. 'ROLE' = ANY (permission_list)
  28. AND
  29. 'TOOL:READ' IN (SELECT (CASE WHEN user_role_relation.role_id = ANY (ARRAY ['USER']) THEN 'TOOL:READ' ELSE role_permission.permission_id END)
  30. FROM role_permission role_permission
  31. RIGHT JOIN user_role_relation user_role_relation ON user_role_relation.role_id=role_permission.role_id
  32. WHERE user_role_relation.user_id=workspace_user_resource_permission.user_id
  33. AND user_role_relation.workspace_id=workspace_user_resource_permission.workspace_id)
  34. ELSE
  35. 'VIEW' = ANY (permission_list)
  36. END
  37. )) AS tool
  38. LEFT JOIN "user" ON "user".id = user_id
  39. ) temp
  40. ${default_query_set}