Code first roles sync (#13667)

This commit is contained in:
Abdul Rahman
2025-08-11 16:44:45 +05:30
committed by GitHub
parent 2a2a2faadf
commit 9b11735c57
26 changed files with 474 additions and 73 deletions
@@ -12,12 +12,12 @@ import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/featu
import { FeatureFlag } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity';
import { ADMIN_ROLE_LABEL } from 'src/engine/metadata-modules/permissions/constants/admin-role-label.constants';
import { RoleTargetsEntity } from 'src/engine/metadata-modules/role/role-targets.entity';
import { RoleEntity } from 'src/engine/metadata-modules/role/role.entity';
import { WorkspaceFeatureFlagsMapCacheService } from 'src/engine/metadata-modules/workspace-feature-flags-map-cache/workspace-feature-flags-map-cache.service';
import { WorkspacePermissionsCacheService } from 'src/engine/metadata-modules/workspace-permissions-cache/workspace-permissions-cache.service';
import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager';
import { ADMIN_ROLE } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-roles/roles/admin-role';
@Command({
name: 'upgrade:1-3:assign-roles-to-existing-api-keys',
@@ -217,7 +217,7 @@ export class AssignRolesToExistingApiKeysCommand extends ActiveOrSuspendedWorksp
const adminRole = await this.roleRepository.findOne({
where: {
workspaceId,
label: ADMIN_ROLE_LABEL,
standardId: ADMIN_ROLE.standardId,
},
});
@@ -0,0 +1,23 @@
import { type MigrationInterface, type QueryRunner } from 'typeorm';
import { ADMIN_ROLE } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-roles/roles/admin-role';
export class AddStandardIdToRole1754480368129 implements MigrationInterface {
name = 'AddStandardIdToRole1754480368129';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "core"."role" ADD "standardId" uuid`);
await queryRunner.query(
`UPDATE "core"."role" SET "standardId" = '${ADMIN_ROLE.standardId}' WHERE "label" = 'Admin'`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`UPDATE "core"."role" SET "standardId" = NULL`);
await queryRunner.query(
`ALTER TABLE "core"."role" DROP COLUMN "standardId"`,
);
}
}
@@ -0,0 +1,19 @@
import { type MigrationInterface, type QueryRunner } from 'typeorm';
export class UpdateMemberRoleCanAccessAllTools1753318977614
implements MigrationInterface
{
name = 'UpdateMemberRoleCanAccessAllTools1753318977614';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`UPDATE "core"."role" SET "canAccessAllTools" = true WHERE "label" = 'Member'`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`UPDATE "core"."role" SET "canAccessAllTools" = false WHERE "label" = 'Member'`,
);
}
}