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';
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) {

View file

@ -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

View file

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

View file

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