From 2bc01dfc55eb71679ed2c246129d3c10db5bb666 Mon Sep 17 00:00:00 2001 From: kriks7iitk Date: Tue, 9 Jul 2024 12:57:45 +0530 Subject: [PATCH] Migration fix for custom groups --- ...0-CreateDefaultGroupInExistingWorkspace.ts | 18 +++++----- ...737529-MigrateCustomGroupToNewUserGroup.ts | 6 ++-- .../granular-permissions.constant.ts | 2 +- .../constants/group-permissions.constant.ts | 36 +++++++++++++++++++ 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/server/migrations/1720352990850-CreateDefaultGroupInExistingWorkspace.ts b/server/migrations/1720352990850-CreateDefaultGroupInExistingWorkspace.ts index dfb1e57def..01624e6946 100644 --- a/server/migrations/1720352990850-CreateDefaultGroupInExistingWorkspace.ts +++ b/server/migrations/1720352990850-CreateDefaultGroupInExistingWorkspace.ts @@ -6,7 +6,7 @@ import { } from '@module/user_resource_permissions/constants/granular-permissions.constant'; import { USER_ROLE, - DEFAULT_GROUP_PERMISSIONS, + DEFAULT_GROUP_PERMISSIONS_MIGRATIONS, } from '@module/user_resource_permissions/constants/group-permissions.constant'; import { CreateResourcePermissionObject, @@ -30,7 +30,7 @@ export class CreateDefaultGroupInExistingWorkspace1720352990850 implements Migra for (const organizationId of organizationIds) { for (const defaultGroup of Object.keys(USER_ROLE)) { - const groupPermissions = DEFAULT_GROUP_PERMISSIONS[defaultGroup]; + const groupPermissions = DEFAULT_GROUP_PERMISSIONS_MIGRATIONS[defaultGroup]; const query = ` INSERT INTO permission_groups ( organization_id, @@ -67,12 +67,14 @@ export class CreateDefaultGroupInExistingWorkspace1720352990850 implements Migra isAll: true, createAppsPermissionsObject: {}, }; - const granularPermissions = await this.createGranularPermission(manager, dtoObject); - await this.createAppsResourcePermission( - manager, - { granularPermissions, organizationId }, - createResourcePermissionObj - ); + if (group.name === USER_ROLE.ADMIN) { + const granularPermissions = await this.createGranularPermission(manager, dtoObject); + await this.createAppsResourcePermission( + manager, + { granularPermissions, organizationId }, + createResourcePermissionObj + ); + } } //Migrating Admins to new Admins if (group.name === USER_ROLE.ADMIN) { diff --git a/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts b/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts index bd76418d12..ddb94041a6 100644 --- a/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts +++ b/server/migrations/1720434737529-MigrateCustomGroupToNewUserGroup.ts @@ -33,12 +33,13 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI .where('groupPermission.organizationId = :organizationId', { organizationId, }) - .innerJoinAndSelect('groupPermission.appGroupPermission', 'appGroupPermission') - .innerJoinAndSelect('groupPermission.userGroupPermission', 'userGroupPermission') + .leftJoinAndSelect('groupPermission.appGroupPermission', 'appGroupPermission') + .leftJoinAndSelect('groupPermission.userGroupPermission', 'userGroupPermission') .andWhere('groupPermission.group != :admin', { admin: 'admin', }) .getMany(); + for (const groupPermissions of groups) { const query = ` INSERT INTO permission_groups ( @@ -51,7 +52,6 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI 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 diff --git a/server/src/modules/user_resource_permissions/constants/granular-permissions.constant.ts b/server/src/modules/user_resource_permissions/constants/granular-permissions.constant.ts index 4e4ceedc67..71131f64a3 100644 --- a/server/src/modules/user_resource_permissions/constants/granular-permissions.constant.ts +++ b/server/src/modules/user_resource_permissions/constants/granular-permissions.constant.ts @@ -22,7 +22,7 @@ export const DEFAULT_RESOURCE_PERMISSIONS = { [USER_ROLE.END_USER]: { [ResourceType.APP]: { canEdit: false, - canView: false, + canView: true, hideFromDashboard: false, }, }, diff --git a/server/src/modules/user_resource_permissions/constants/group-permissions.constant.ts b/server/src/modules/user_resource_permissions/constants/group-permissions.constant.ts index 2da158b39c..ed49016164 100644 --- a/server/src/modules/user_resource_permissions/constants/group-permissions.constant.ts +++ b/server/src/modules/user_resource_permissions/constants/group-permissions.constant.ts @@ -64,6 +64,42 @@ export const DEFAULT_GROUP_PERMISSIONS = { }, } as Record; +export const DEFAULT_GROUP_PERMISSIONS_MIGRATIONS = { + ADMIN: { + name: USER_ROLE.ADMIN, + type: GROUP_PERMISSIONS_TYPE.DEFAULT, + appCreate: true, + appDelete: true, + folderCRUD: true, + orgConstantCRUD: true, + dataSourceCreate: true, + dataSourceDelete: true, + isBuilderLevel: true, + }, + BUILDER: { + name: USER_ROLE.BUILDER, + type: GROUP_PERMISSIONS_TYPE.DEFAULT, + appCreate: false, + appDelete: false, + folderCRUD: false, + orgConstantCRUD: false, + dataSourceCreate: false, + dataSourceDelete: false, + isBuilderLevel: false, + }, + END_USER: { + name: USER_ROLE.END_USER, + type: GROUP_PERMISSIONS_TYPE.DEFAULT, + appCreate: false, + appDelete: false, + folderCRUD: false, + orgConstantCRUD: false, + dataSourceCreate: false, + dataSourceDelete: false, + isBuilderLevel: false, + }, +} as Record; + export const ERROR_HANDLER = { GROUP_NOT_EXIST: "Group doesn't exist", DEFAULT_GROUP_NAME: 'Name cannot be same as user default group',