@@ -71,9 +71,64 @@ export class MultiTenantFeature1733833844028 implements MigrationInterface {
7171 await queryRunner . query (
7272 `ALTER TABLE "user_permission" ALTER COLUMN "tenant_id" DROP DEFAULT` ,
7373 ) ;
74+ await queryRunner . query ( `
75+ ALTER TABLE "user" ENABLE ROW LEVEL SECURITY;
76+ ALTER TABLE "role" ENABLE ROW LEVEL SECURITY;
77+ ALTER TABLE "group" ENABLE ROW LEVEL SECURITY;
78+ ALTER TABLE "entity_model" ENABLE ROW LEVEL SECURITY;
79+ ALTER TABLE "user_group" ENABLE ROW LEVEL SECURITY;
80+ ALTER TABLE "user_permission" ENABLE ROW LEVEL SECURITY;
81+ ALTER TABLE "group_role" ENABLE ROW LEVEL SECURITY;
82+ ALTER TABLE "group_permission" ENABLE ROW LEVEL SECURITY;
83+ ALTER TABLE "role_permission" ENABLE ROW LEVEL SECURITY;
84+ ALTER TABLE "entity_permission" ENABLE ROW LEVEL SECURITY;
85+
86+ CREATE POLICY tenant_isolation_policy ON "user"
87+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
88+ CREATE POLICY tenant_isolation_policy ON "role"
89+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
90+ CREATE POLICY tenant_isolation_policy ON "group"
91+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
92+ CREATE POLICY tenant_isolation_policy ON "entity_model"
93+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
94+ CREATE POLICY tenant_isolation_policy ON "user_group"
95+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
96+ CREATE POLICY tenant_isolation_policy ON "user_permission"
97+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
98+ CREATE POLICY tenant_isolation_policy ON "group_role"
99+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
100+ CREATE POLICY tenant_isolation_policy ON "group_permission"
101+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
102+ CREATE POLICY tenant_isolation_policy ON "role_permission"
103+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
104+ CREATE POLICY tenant_isolation_policy ON "entity_permission"
105+ USING (tenant_id = current_setting('app.tenant_id')::uuid);
106+ ` ) ;
74107 }
75108
76109 public async down ( queryRunner : QueryRunner ) : Promise < void > {
110+ await queryRunner . query ( `
111+ DROP POLICY tenant_isolation_policy ON "user";
112+ DROP POLICY tenant_isolation_policy ON "role";
113+ DROP POLICY tenant_isolation_policy ON "group";
114+ DROP POLICY tenant_isolation_policy ON "entity_model";
115+ DROP POLICY tenant_isolation_policy ON "user_group";
116+ DROP POLICY tenant_isolation_policy ON "user_permission";
117+ DROP POLICY tenant_isolation_policy ON "group_role";
118+ DROP POLICY tenant_isolation_policy ON "group_permission";
119+ DROP POLICY tenant_isolation_policy ON "role_permission";
120+ DROP POLICY tenant_isolation_policy ON "entity_permission";
121+ ALTER TABLE "user" DISABLE ROW LEVEL SECURITY;
122+ ALTER TABLE "role" DISABLE ROW LEVEL SECURITY;
123+ ALTER TABLE "group" DISABLE ROW LEVEL SECURITY;
124+ ALTER TABLE "entity_model" DISABLE ROW LEVEL SECURITY;
125+ ALTER TABLE "user_group" DISABLE ROW LEVEL SECURITY;
126+ ALTER TABLE "user_permission" DISABLE ROW LEVEL SECURITY;
127+ ALTER TABLE "group_role" DISABLE ROW LEVEL SECURITY;
128+ ALTER TABLE "group_permission" DISABLE ROW LEVEL SECURITY;
129+ ALTER TABLE "role_permission" DISABLE ROW LEVEL SECURITY;
130+ ALTER TABLE "entity_permission" DISABLE ROW LEVEL SECURITY;
131+ ` ) ;
77132 await queryRunner . query (
78133 `ALTER TABLE "user_permission" DROP COLUMN "tenant_id"` ,
79134 ) ;
0 commit comments