Migration fix for custom groups

This commit is contained in:
kriks7iitk 2024-07-09 12:57:45 +05:30
parent a95253153b
commit 2bc01dfc55
4 changed files with 50 additions and 12 deletions

View file

@ -6,7 +6,7 @@ import {
} from '@module/user_resource_permissions/constants/granular-permissions.constant'; } from '@module/user_resource_permissions/constants/granular-permissions.constant';
import { import {
USER_ROLE, USER_ROLE,
DEFAULT_GROUP_PERMISSIONS, DEFAULT_GROUP_PERMISSIONS_MIGRATIONS,
} from '@module/user_resource_permissions/constants/group-permissions.constant'; } from '@module/user_resource_permissions/constants/group-permissions.constant';
import { import {
CreateResourcePermissionObject, CreateResourcePermissionObject,
@ -30,7 +30,7 @@ export class CreateDefaultGroupInExistingWorkspace1720352990850 implements Migra
for (const organizationId of organizationIds) { for (const organizationId of organizationIds) {
for (const defaultGroup of Object.keys(USER_ROLE)) { for (const defaultGroup of Object.keys(USER_ROLE)) {
const groupPermissions = DEFAULT_GROUP_PERMISSIONS[defaultGroup]; const groupPermissions = DEFAULT_GROUP_PERMISSIONS_MIGRATIONS[defaultGroup];
const query = ` const query = `
INSERT INTO permission_groups ( INSERT INTO permission_groups (
organization_id, organization_id,
@ -67,12 +67,14 @@ export class CreateDefaultGroupInExistingWorkspace1720352990850 implements Migra
isAll: true, isAll: true,
createAppsPermissionsObject: {}, createAppsPermissionsObject: {},
}; };
const granularPermissions = await this.createGranularPermission(manager, dtoObject); if (group.name === USER_ROLE.ADMIN) {
await this.createAppsResourcePermission( const granularPermissions = await this.createGranularPermission(manager, dtoObject);
manager, await this.createAppsResourcePermission(
{ granularPermissions, organizationId }, manager,
createResourcePermissionObj { granularPermissions, organizationId },
); createResourcePermissionObj
);
}
} }
//Migrating Admins to new Admins //Migrating Admins to new Admins
if (group.name === USER_ROLE.ADMIN) { if (group.name === USER_ROLE.ADMIN) {

View file

@ -33,12 +33,13 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI
.where('groupPermission.organizationId = :organizationId', { .where('groupPermission.organizationId = :organizationId', {
organizationId, organizationId,
}) })
.innerJoinAndSelect('groupPermission.appGroupPermission', 'appGroupPermission') .leftJoinAndSelect('groupPermission.appGroupPermission', 'appGroupPermission')
.innerJoinAndSelect('groupPermission.userGroupPermission', 'userGroupPermission') .leftJoinAndSelect('groupPermission.userGroupPermission', 'userGroupPermission')
.andWhere('groupPermission.group != :admin', { .andWhere('groupPermission.group != :admin', {
admin: 'admin', admin: 'admin',
}) })
.getMany(); .getMany();
for (const groupPermissions of groups) { for (const groupPermissions of groups) {
const query = ` const query = `
INSERT INTO permission_groups ( INSERT INTO permission_groups (
@ -51,7 +52,6 @@ export class MigrateCustomGroupToNewUserGroup1720434737529 implements MigrationI
org_constant_crud, org_constant_crud,
data_source_create, data_source_create,
data_source_delete, data_source_delete,
) VALUES ( ) VALUES (
${organizationId} , ${groupPermissions.group} , ${GROUP_PERMISSIONS_TYPE.CUSTOM_GROUP},${groupPermissions.appCreate}, ${groupPermissions.appDelete} ${organizationId} , ${groupPermissions.group} , ${GROUP_PERMISSIONS_TYPE.CUSTOM_GROUP},${groupPermissions.appCreate}, ${groupPermissions.appDelete}
, ${groupPermissions.folderCreate}, ${groupPermissions.orgEnvironmentConstantCreate}, false , false , ${groupPermissions.folderCreate}, ${groupPermissions.orgEnvironmentConstantCreate}, false , false

View file

@ -22,7 +22,7 @@ export const DEFAULT_RESOURCE_PERMISSIONS = {
[USER_ROLE.END_USER]: { [USER_ROLE.END_USER]: {
[ResourceType.APP]: { [ResourceType.APP]: {
canEdit: false, canEdit: false,
canView: false, canView: true,
hideFromDashboard: false, hideFromDashboard: false,
}, },
}, },

View file

@ -64,6 +64,42 @@ export const DEFAULT_GROUP_PERMISSIONS = {
}, },
} as Record<string, CreateDefaultGroupObject>; } as Record<string, CreateDefaultGroupObject>;
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<string, CreateDefaultGroupObject>;
export const ERROR_HANDLER = { export const ERROR_HANDLER = {
GROUP_NOT_EXIST: "Group doesn't exist", GROUP_NOT_EXIST: "Group doesn't exist",
DEFAULT_GROUP_NAME: 'Name cannot be same as user default group', DEFAULT_GROUP_NAME: 'Name cannot be same as user default group',