get_model_user_resource_permission.sql 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. SELECT
  2. resource_or_folder.*,
  3. CASE
  4. WHEN
  5. wurp."permission" is null then 'NOT_AUTH'
  6. ELSE wurp."permission"
  7. END
  8. FROM (
  9. SELECT
  10. "id"::text,
  11. "name",
  12. 'MODEL' AS "auth_target_type",
  13. 'model' AS "resource_type",
  14. user_id,
  15. workspace_id,
  16. provider as icon,
  17. 'default' as folder_id,
  18. create_time
  19. FROM
  20. model
  21. ${query_set}
  22. UNION
  23. SELECT
  24. "id"::text,
  25. "name",
  26. 'MODEL' AS "auth_target_type",
  27. 'folder' AS "resource_type",
  28. user_id,
  29. workspace_id,
  30. provider as icon,
  31. 'default' as folder_id,
  32. create_time
  33. FROM model
  34. ${folder_query_set}
  35. AND 1=0
  36. ) resource_or_folder
  37. LEFT JOIN (
  38. SELECT
  39. target,
  40. CASE
  41. WHEN auth_type = 'ROLE'
  42. AND 'ROLE' = ANY(permission_list) THEN 'ROLE'
  43. WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
  44. AND 'MANAGE' = ANY(permission_list) THEN 'MANAGE'
  45. WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
  46. AND 'VIEW' = ANY(permission_list) THEN 'VIEW'
  47. ELSE null
  48. END AS permission
  49. FROM
  50. workspace_user_resource_permission
  51. ${workspace_user_resource_permission_query_set}
  52. ) wurp
  53. ON wurp.target = resource_or_folder."id"
  54. ${resource_query_set}
  55. ORDER BY resource_or_folder.create_time DESC