mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-21 16:08:35 +00:00
Migration fix for custom groups
This commit is contained in:
parent
a95253153b
commit
2bc01dfc55
4 changed files with 50 additions and 12 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export const DEFAULT_RESOURCE_PERMISSIONS = {
|
|||
[USER_ROLE.END_USER]: {
|
||||
[ResourceType.APP]: {
|
||||
canEdit: false,
|
||||
canView: false,
|
||||
canView: true,
|
||||
hideFromDashboard: false,
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in a new issue