-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Expand file tree
/
Copy pathget_tool_user_resource_permission.sql
More file actions
51 lines (50 loc) · 1.69 KB
/
get_tool_user_resource_permission.sql
File metadata and controls
51 lines (50 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SELECT resource_or_folder.*,
CASE
WHEN wurp."permission" IS NULL THEN 'NOT_AUTH'
ELSE wurp."permission"
END
FROM (
SELECT "id"::text,
"name",
'TOOL' AS "auth_target_type",
'tool' AS "resource_type",
user_id,
workspace_id,
icon,
folder_id,
tool_type,
create_time
FROM tool
${query_set}
UNION
SELECT tool_folder."id"::text,
tool_folder."name",
'TOOL' AS "auth_target_type",
'folder' AS "resource_type",
tool_folder."user_id",
tool_folder."workspace_id",
NULL AS "icon",
tool_folder."parent_id" AS "folder_id",
NULL AS "tool_type",
tool_folder."create_time"
FROM tool_folder
${folder_query_set}
) resource_or_folder
LEFT JOIN (
SELECT target,
CASE
WHEN auth_type = 'ROLE'
AND 'ROLE' = ANY(permission_list) THEN 'ROLE'
WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
AND 'MANAGE' = ANY(permission_list) THEN 'MANAGE'
WHEN auth_type = 'RESOURCE_PERMISSION_GROUP'
AND 'VIEW' = ANY(permission_list) THEN 'VIEW'
ELSE null
END AS permission
FROM
workspace_user_resource_permission
${workspace_user_resource_permission_query_set}
) wurp
ON wurp.target::text = resource_or_folder."id"
${resource_query_set}
ORDER BY resource_or_folder.create_time DESC