get_resource_user_permission_detail_ee.sql 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. SELECT
  2. DISTINCT u.id,
  3. u.nick_name,
  4. u.username,
  5. tmp.role_name_list AS role_name,
  6. CASE
  7. WHEN wurp."permission" IS NULL THEN 'NOT_AUTH'
  8. ELSE wurp."permission"
  9. END AS permission
  10. FROM
  11. public."user" u
  12. LEFT JOIN (
  13. SELECT
  14. user_id,
  15. CASE
  16. WHEN auth_type = 'ROLE'
  17. AND 'ROLE' = ANY(permission_list) THEN 'ROLE'
  18. WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
  19. AND 'MANAGE' = ANY(permission_list) THEN 'MANAGE'
  20. WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
  21. AND 'VIEW' = ANY(permission_list) THEN 'VIEW'
  22. ELSE NULL
  23. END AS "permission"
  24. FROM
  25. workspace_user_resource_permission
  26. ${workspace_user_resource_permission_query_set}
  27. ) wurp ON u.id = wurp.user_id
  28. LEFT JOIN (
  29. SELECT
  30. ARRAY_AGG(role_setting.role_name) AS role_name_list,
  31. ARRAY_AGG(role_setting.role_name)::text AS role_name_list_str,
  32. ARRAY_AGG(role_setting.type) AS type_list,
  33. user_role_relation.user_id
  34. FROM user_role_relation user_role_relation
  35. LEFT JOIN role_setting role_setting
  36. ON role_setting.id = user_role_relation.role_id
  37. ${role_name_and_type_query_set}
  38. GROUP BY
  39. user_role_relation.user_id) tmp
  40. ON u.id = tmp.user_id
  41. ${user_query_set}