AuthZ: Improve getUserPermissions query (INNER JOIN, UNION ALL) (#102441)
This commit is contained in:
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM `grafana`.`permission` as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action IN ('folders:edit', 'folders:admin', 'folders:create')
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+6
-6
@@ -1,9 +1,9 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM `grafana`.`permission` as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION ALL
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM `grafana`.`permission` as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
)
|
||||
|
||||
+7
-7
@@ -1,10 +1,10 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM `grafana`.`permission` as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION ALL
|
||||
SELECT role_id FROM `grafana`.`team_role` as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION
|
||||
SELECT role_id FROM `grafana`.`team_role` as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
)
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM `grafana`.`permission` as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM `grafana`.`builtin_role` as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM `grafana`.`user_role` as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action IN ('folders:edit', 'folders:admin', 'folders:create')
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+6
-6
@@ -1,9 +1,9 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
)
|
||||
|
||||
+7
-7
@@ -1,10 +1,10 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."team_role" as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."team_role" as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
)
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action IN ('folders:edit', 'folders:admin', 'folders:create')
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+6
-6
@@ -1,9 +1,9 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Admin' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
OR (br.role = 'Grafana Admin')
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
)
|
||||
|
||||
+7
-7
@@ -1,10 +1,10 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."team_role" as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'None' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."team_role" as tr WHERE tr.team_id IN (1, 2) AND tr.org_id = 1
|
||||
)
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
SELECT p.kind, p.attribute, p.identifier, p.scope FROM "grafana"."permission" as p
|
||||
INNER JOIN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION ALL
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
) as roles ON p.role_id = roles.role_id
|
||||
WHERE
|
||||
p.action = 'folders:read'
|
||||
AND p.role_id IN (
|
||||
SELECT role_id FROM "grafana"."builtin_role" as br WHERE (br.role = 'Viewer' AND (br.org_id = 1 OR br.org_id = 0))
|
||||
UNION
|
||||
SELECT role_id FROM "grafana"."user_role" as ur WHERE ur.user_id = 1 AND (ur.org_id = 1 OR ur.org_id = 0)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user