mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 17:13:18 +00:00
Compare commits
2 commits
0d660c4549
...
c5f9ac0563
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5f9ac0563 | ||
|
|
a9fbca232d |
1 changed files with 44 additions and 0 deletions
|
|
@ -230,6 +230,49 @@ FROM iam.roles_v2 sr
|
||||||
WHERE u.role_id IS NULL
|
WHERE u.role_id IS NULL
|
||||||
AND sr.code = 'operativo' AND sr.tenant_id = u.tenant_id;
|
AND sr.code = 'operativo' AND sr.tenant_id = u.tenant_id;
|
||||||
|
|
||||||
|
--changeset panel:iam-005g2-ensure-role-backfill endDelimiter:; splitStatements:true
|
||||||
|
--preconditions onFail:MARK_RAN
|
||||||
|
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='iam' AND table_name='roles' AND column_name='id'
|
||||||
|
INSERT INTO iam.roles_v2 (tenant_id, code, label, is_system)
|
||||||
|
SELECT DISTINCT u.tenant_id, 'operativo', 'Operativo', false
|
||||||
|
FROM iam.users u
|
||||||
|
WHERE u.tenant_id IS NOT NULL
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT 1 FROM iam.roles_v2 r
|
||||||
|
WHERE r.tenant_id = u.tenant_id AND r.code = 'operativo'
|
||||||
|
);
|
||||||
|
|
||||||
|
UPDATE iam.users u
|
||||||
|
SET role_id = sr.id
|
||||||
|
FROM iam.roles_v2 sr
|
||||||
|
WHERE u.role_code = 'tenant_admin'
|
||||||
|
AND sr.code = 'tenant_admin' AND sr.is_system AND sr.tenant_id IS NULL
|
||||||
|
AND u.role_id IS NULL;
|
||||||
|
|
||||||
|
UPDATE iam.users u
|
||||||
|
SET role_id = sr.id
|
||||||
|
FROM iam.roles_v2 sr
|
||||||
|
WHERE u.role_id IS NULL
|
||||||
|
AND u.tenant_id IS NOT NULL
|
||||||
|
AND sr.code = 'operativo' AND sr.tenant_id = u.tenant_id;
|
||||||
|
|
||||||
|
UPDATE iam.users u
|
||||||
|
SET role_id = op.id
|
||||||
|
FROM iam.roles_v2 sr, iam.roles_v2 op
|
||||||
|
WHERE u.role_id = sr.id
|
||||||
|
AND sr.code = 'tenant_admin' AND sr.is_system AND sr.tenant_id IS NULL
|
||||||
|
AND u.tenant_id IS NOT NULL
|
||||||
|
AND op.code = 'operativo' AND op.tenant_id = u.tenant_id
|
||||||
|
AND u.id <> (
|
||||||
|
SELECT MIN(u2.id)
|
||||||
|
FROM iam.users u2
|
||||||
|
JOIN iam.roles_v2 sr2 ON sr2.id = u2.role_id
|
||||||
|
WHERE u2.tenant_id = u.tenant_id
|
||||||
|
AND sr2.code = 'tenant_admin' AND sr2.is_system AND sr2.tenant_id IS NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
DELETE FROM iam.users WHERE role_id IS NULL AND tenant_id IS NULL;
|
||||||
|
|
||||||
--changeset panel:iam-005h-swap-roles endDelimiter:; splitStatements:true
|
--changeset panel:iam-005h-swap-roles endDelimiter:; splitStatements:true
|
||||||
--preconditions onFail:MARK_RAN
|
--preconditions onFail:MARK_RAN
|
||||||
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='iam' AND table_name='roles' AND column_name='id'
|
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='iam' AND table_name='roles' AND column_name='id'
|
||||||
|
|
@ -251,6 +294,7 @@ ALTER TABLE iam.users
|
||||||
|
|
||||||
ALTER TABLE iam.users ALTER COLUMN role_id SET NOT NULL;
|
ALTER TABLE iam.users ALTER COLUMN role_id SET NOT NULL;
|
||||||
|
|
||||||
|
--changeset panel:iam-005h2-unique-tenant-admin splitStatements:false
|
||||||
DO $$
|
DO $$
|
||||||
DECLARE
|
DECLARE
|
||||||
v_admin_role_id bigint;
|
v_admin_role_id bigint;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue