chore: import DH V2 D5.6.4 production baseline

This commit is contained in:
DH V2
2026-09-05 10:12:35 -03:00
commit 82213e72f5
757 changed files with 84218 additions and 0 deletions
@@ -0,0 +1,81 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
const operationalPermissions = [
'inspections.execute',
'inspection_acts.create',
'inspection_acts.update',
'inspection_acts.cancel',
'inspection_findings.create',
'inspection_findings.update',
'inspection_closure.prepare',
'inspection_closure.sign',
'inspection_closure.close',
] as const;
const previousNonInspectorMappings = `
('admin', 'inspections.execute'),
('supervisor', 'inspections.execute'),
('admin', 'inspection_acts.create'),
('admin', 'inspection_acts.update'),
('admin', 'inspection_acts.cancel'),
('supervisor', 'inspection_acts.create'),
('supervisor', 'inspection_acts.update'),
('supervisor', 'inspection_acts.cancel'),
('admin', 'inspection_findings.create'),
('admin', 'inspection_findings.update'),
('supervisor', 'inspection_findings.create'),
('supervisor', 'inspection_findings.update'),
('admin', 'inspection_closure.prepare'),
('admin', 'inspection_closure.sign'),
('admin', 'inspection_closure.close'),
('director', 'inspection_closure.close'),
('supervisor', 'inspection_closure.prepare'),
('supervisor', 'inspection_closure.sign'),
('supervisor', 'inspection_closure.close')
`;
export class PhaseD51MobileInspectionPolicy1787331600000 implements MigrationInterface {
name = 'PhaseD51MobileInspectionPolicy1787331600000';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
DELETE FROM role_permissions role_permission
USING roles role, permissions permission
WHERE role_permission.role_id = role.id
AND role_permission.permission_id = permission.id
AND role.code <> 'inspector'
AND permission.code = ANY($1::varchar[])
`, [operationalPermissions]);
await queryRunner.query(`
INSERT INTO role_permissions (role_id, permission_id)
SELECT role.id, permission.id
FROM roles role
CROSS JOIN permissions permission
WHERE role.code = 'inspector'
AND permission.code = ANY($1::varchar[])
ON CONFLICT (role_id, permission_id) DO NOTHING
`, [operationalPermissions]);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
DELETE FROM role_permissions role_permission
USING roles role, permissions permission
WHERE role_permission.role_id = role.id
AND role_permission.permission_id = permission.id
AND role.code = 'inspector'
AND permission.code = 'inspection_acts.cancel'
`);
await queryRunner.query(`
WITH mapping(role_code, permission_code) AS (VALUES ${previousNonInspectorMappings})
INSERT INTO role_permissions (role_id, permission_id)
SELECT role.id, permission.id
FROM mapping
INNER JOIN roles role ON role.code = mapping.role_code
INNER JOIN permissions permission ON permission.code = mapping.permission_code
ON CONFLICT (role_id, permission_id) DO NOTHING
`);
}
}