mirror of
https://github.com/paralus/paralus.git
synced 2026-05-08 09:27:02 +00:00
131 lines
3.3 KiB
SQL
131 lines
3.3 KiB
SQL
DROP VIEW IF EXISTS sentry_permission;
|
|
CREATE OR REPLACE VIEW sentry_permission AS
|
|
SELECT
|
|
apr.account_id,
|
|
apr.group_id,
|
|
apr.project_id,
|
|
apr.organization_id,
|
|
apr.partner_id,
|
|
rbu.role_id,
|
|
rbu.is_global,
|
|
rbu.scope,
|
|
rbu.permission_name,
|
|
rbu.base_url,
|
|
rbu.urls
|
|
FROM (
|
|
SELECT
|
|
ga.account_id,
|
|
gr.group_id,
|
|
uuid_nil() project_id,
|
|
gr.role_id,
|
|
gr.organization_id,
|
|
gr.partner_id
|
|
FROM
|
|
authsrv_groupaccount ga
|
|
INNER JOIN authsrv_grouprole gr ON ga.group_id = gr.group_id
|
|
WHERE
|
|
ga.trash = FALSE
|
|
AND gr.trash = FALSE
|
|
UNION
|
|
SELECT
|
|
account_id,
|
|
uuid_nil() as group_id,
|
|
uuid_nil() project_id,
|
|
role_id,
|
|
organization_id,
|
|
partner_id
|
|
FROM
|
|
authsrv_accountresourcerole
|
|
WHERE
|
|
trash = FALSE
|
|
UNION
|
|
SELECT
|
|
ga.account_id,
|
|
ga.group_id,
|
|
pgr.project_id,
|
|
pgr.role_id,
|
|
pgr.organization_id,
|
|
pgr.partner_id
|
|
FROM
|
|
authsrv_projectgrouprole pgr
|
|
INNER JOIN authsrv_groupaccount ga ON pgr.group_id = ga.group_id
|
|
WHERE
|
|
pgr.trash = FALSE
|
|
AND ga.trash = FALSE
|
|
UNION
|
|
SELECT
|
|
account_id,
|
|
uuid_nil() as group_id,
|
|
project_id,
|
|
role_id,
|
|
organization_id,
|
|
partner_id
|
|
FROM
|
|
authsrv_projectaccountresourcerole
|
|
WHERE
|
|
trash = FALSE
|
|
UNION
|
|
SELECT
|
|
account_id,
|
|
uuid_nil() as group_id,
|
|
project_id,
|
|
role_id,
|
|
organization_id,
|
|
partner_id
|
|
FROM
|
|
authsrv_projectaccountnamespacerole
|
|
WHERE
|
|
trash = FALSE
|
|
UNION
|
|
SELECT
|
|
ga.account_id,
|
|
ga.group_id,
|
|
pgnr.project_id,
|
|
pgnr.role_id,
|
|
pgnr.organization_id,
|
|
pgnr.partner_id
|
|
FROM
|
|
authsrv_projectgroupnamespacerole pgnr
|
|
INNER JOIN authsrv_groupaccount ga ON pgnr.group_id = ga.group_id
|
|
WHERE
|
|
pgnr.trash = FALSE
|
|
AND ga.trash = FALSE) AS apr
|
|
INNER JOIN (
|
|
SELECT
|
|
rp.role_id,
|
|
rr.role_name,
|
|
rr.is_global,
|
|
rr.scope,
|
|
p.permission_name,
|
|
p.base_url,
|
|
p.urls
|
|
FROM (
|
|
SELECT
|
|
resource_role_id AS role_id,
|
|
resource_permission_id AS permission_id
|
|
FROM
|
|
authsrv_resourcerolepermission
|
|
WHERE
|
|
trash = FALSE) rp
|
|
INNER JOIN (
|
|
SELECT
|
|
rp.id AS permission_id,
|
|
rp.base_url,
|
|
rp.name AS permission_name,
|
|
rp.resource_urls || rp.resource_action_urls AS urls
|
|
FROM
|
|
authsrv_resourcepermission rp) p ON rp.permission_id = p.permission_id
|
|
INNER JOIN (
|
|
SELECT
|
|
id,
|
|
name AS role_name,
|
|
is_global,
|
|
scope
|
|
FROM
|
|
authsrv_resourcerole
|
|
WHERE
|
|
trash = FALSE) rr ON rr.id = rp.role_id) rbu ON apr.role_id = rbu.role_id
|
|
INNER JOIN identities ON identities.id = apr.account_id
|
|
WHERE
|
|
lower(identities.state) = 'active';
|