From fa203bbf2d93b92305fbf886710b636474d9e403 Mon Sep 17 00:00:00 2001 From: kriks7iitk Date: Tue, 9 Jul 2024 13:52:10 +0530 Subject: [PATCH] Migration developer testing --- ...737529-MigrateCustomGroupToNewUserGroup.ts | 58 ++++++++++--------- ...-DropGroupPermissionsOlderRelatedTables.ts | 9 +++ 2 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 server/migrations/1720513124281-DropGroupPermissionsOlderRelatedTables.ts diff --git a/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts b/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts index ddb94041a6..8cc12e70d9 100644 --- a/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts +++ b/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts @@ -42,27 +42,31 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI for (const groupPermissions of groups) { const query = ` - INSERT INTO permission_groups ( - organization_id, - name, - type, - app_create, - app_delete, - folder_crud, - org_constant_crud, - data_source_create, - data_source_delete, - ) VALUES ( - ${organizationId} , ${groupPermissions.group} , ${GROUP_PERMISSIONS_TYPE.CUSTOM_GROUP},${groupPermissions.appCreate}, ${groupPermissions.appDelete} - , ${groupPermissions.folderCreate}, ${groupPermissions.orgEnvironmentConstantCreate}, false , false - ) RETURNING *;`; + INSERT INTO permission_groups ( + organization_id, + name, + type, + app_create, + app_delete, + folder_crud, + org_constant_crud, + data_source_create, + data_source_delete + ) VALUES ( + '${organizationId}', + '${this.getGroupName(groupPermissions.group)}', + '${GROUP_PERMISSIONS_TYPE.CUSTOM_GROUP}', + ${groupPermissions.appCreate}, + ${groupPermissions.appDelete}, + ${groupPermissions.folderCreate}, + ${groupPermissions.orgEnvironmentConstantCreate}, + false, + false + ) RETURNING *; + `; const group: GroupPermissions = (await manager.query(query))[0]; const existingGroupUsers = groupPermissions.userGroupPermission; - await this.migrateUserGroup( - manager, - existingGroupUsers.map((record) => record.userId), - groupPermissions.id - ); + await this.migrateUserGroup(manager, [...new Set(existingGroupUsers.map((record) => record.userId))], group.id); const resources = [ResourceType.APP]; for (const resource of resources) { if (resource === ResourceType.APP) { @@ -110,11 +114,10 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI return `custom-${USER_ROLE.BUILDER}`; case USER_ROLE.END_USER: return `custom-${USER_ROLE.END_USER}`; - case 'all-users': + case 'all_users': return `Custom All users`; default: - name; - break; + return name; } } @@ -158,11 +161,12 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI } async migrateUserGroup(manager: EntityManager, userIds: string[], groupId: string) { - const valuesString = `( ${userIds.map((id) => `(${id}, ${groupId} )`).join(',')} )`; - const query = `INSERT INTO group_users ( - user_id, - group_id - ) VALUES ${valuesString}`; + if (userIds.length == 0) return; + const valuesString = userIds.map((id) => `('${id}', '${groupId}')`).join(','); + const query = ` + INSERT INTO group_users (user_id, group_id) + VALUES ${valuesString}; + `; return await manager.query(query); } diff --git a/server/migrations/1720513124281-DropGroupPermissionsOlderRelatedTables.ts b/server/migrations/1720513124281-DropGroupPermissionsOlderRelatedTables.ts new file mode 100644 index 0000000000..8a47a54d64 --- /dev/null +++ b/server/migrations/1720513124281-DropGroupPermissionsOlderRelatedTables.ts @@ -0,0 +1,9 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class DropGroupPermissionsOlderRelatedTables1720513124281 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + queryRunner.query('DROP TABLE group_permissions, user_group_permissions, app_group_permissions CASCADE;'); + } + + public async down(queryRunner: QueryRunner): Promise {} +}