mirror of
https://github.com/paralus/paralus.git
synced 2026-08-24 15:47:19 +00:00
Update sentry_account_permissions view
This commit is contained in:
@@ -30,11 +30,11 @@ func GetProjectOrganization(ctx context.Context, db bun.IDB, id uuid.UUID) (stri
|
||||
|
||||
func GetFileteredProjects(ctx context.Context, db bun.IDB, account, partner, org uuid.UUID) ([]models.Project, error) {
|
||||
ids := []uuid.UUID{}
|
||||
sp := []models.SentryPermission{}
|
||||
sp := []models.SentryAccountPermission{}
|
||||
err := db.NewSelect().Model(&sp).
|
||||
Where("sentry_permission.partner_id = ?", partner).
|
||||
Where("sentry_permission.organization_id = ?", org).
|
||||
Where("sentry_permission.account_id = ?", account).
|
||||
Where("sentry_account_permission.partner_id = ?", partner).
|
||||
Where("sentry_account_permission.organization_id = ?", org).
|
||||
Where("sentry_account_permission.account_id = ?", account).
|
||||
Scan(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -73,7 +73,7 @@ type userProjectnamesaceRole struct {
|
||||
|
||||
// TODO: find a better name for the function
|
||||
func GetQueryFilteredUsers(ctx context.Context, db bun.IDB, partner, org, group, role uuid.UUID, projects []uuid.UUID) ([]uuid.UUID, error) {
|
||||
p := []models.SentryPermission{}
|
||||
p := []models.SentryAccountPermission{}
|
||||
q := db.NewSelect().Model(&p).ColumnExpr("DISTINCT account_id")
|
||||
|
||||
q.Where("partner_id = ?", partner).
|
||||
|
||||
@@ -7,8 +7,8 @@ import (
|
||||
"github.com/uptrace/bun"
|
||||
)
|
||||
|
||||
type SentryPermission struct {
|
||||
bun.BaseModel `bun:"table:sentry_permission,alias:sentry_permission"`
|
||||
type SentryAccountPermission struct {
|
||||
bun.BaseModel `bun:"table:sentry_account_permission,alias:sentry_account_permission"`
|
||||
|
||||
AccountId uuid.UUID `bun:"account_id,type:uuid"`
|
||||
ProjectId uuid.UUID `bun:"project_id,type:uuid"`
|
||||
@@ -1,10 +1,12 @@
|
||||
CREATE OR REPLACE VIEW sentry_account_permission AS
|
||||
SELECT
|
||||
apr.account_id,
|
||||
apr.group_id,
|
||||
apr.project_id,
|
||||
apr.organization_id,
|
||||
apr.partner_id,
|
||||
rbu.role_name,
|
||||
rbu.role_name, -- could be dropped in future
|
||||
rbu.role_id,
|
||||
rbu.is_global,
|
||||
rbu.scope,
|
||||
rbu.permission_name,
|
||||
@@ -13,6 +15,7 @@ SELECT
|
||||
FROM (
|
||||
SELECT
|
||||
ga.account_id,
|
||||
gr.group_id,
|
||||
uuid_nil() project_id,
|
||||
gr.role_id,
|
||||
gr.organization_id,
|
||||
@@ -26,6 +29,7 @@ FROM (
|
||||
UNION
|
||||
SELECT
|
||||
account_id,
|
||||
uuid_nil() as group_id,
|
||||
uuid_nil() project_id,
|
||||
role_id,
|
||||
organization_id,
|
||||
@@ -37,6 +41,7 @@ FROM (
|
||||
UNION
|
||||
SELECT
|
||||
ga.account_id,
|
||||
ga.group_id,
|
||||
pgr.project_id,
|
||||
pgr.role_id,
|
||||
pgr.organization_id,
|
||||
@@ -50,6 +55,7 @@ FROM (
|
||||
UNION
|
||||
SELECT
|
||||
account_id,
|
||||
uuid_nil() as group_id,
|
||||
project_id,
|
||||
role_id,
|
||||
organization_id,
|
||||
@@ -61,6 +67,7 @@ FROM (
|
||||
UNION
|
||||
SELECT
|
||||
account_id,
|
||||
uuid_nil() as group_id,
|
||||
project_id,
|
||||
role_id,
|
||||
organization_id,
|
||||
@@ -72,6 +79,7 @@ FROM (
|
||||
UNION
|
||||
SELECT
|
||||
ga.account_id,
|
||||
ga.group_id,
|
||||
pgnr.project_id,
|
||||
pgnr.role_id,
|
||||
pgnr.organization_id,
|
||||
@@ -119,4 +127,4 @@ FROM (
|
||||
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';
|
||||
lower(identities.state) = 'active';
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
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';
|
||||
Reference in New Issue
Block a user