[permissions] Add object records permissions to role entity (#10255)

Closes https://github.com/twentyhq/core-team-issues/issues/388

- Add object records-related permissions to role entity
- Add it to queriable `currentUserWorkspace` (used in FE)
This commit is contained in:
Marie
2025-02-17 18:32:39 +01:00
committed by GitHub
parent 5b4cb4bd2c
commit cb3bd1353a
22 changed files with 255 additions and 60 deletions

View File

@ -2,20 +2,6 @@ import { DataSource } from 'typeorm';
const tableName = 'featureFlag';
// export const seedFeatureFlags = async (
// workspaceDataSource: DataSource,
// schemaName: string,
// workspaceId: string,
// ) => {
// await workspaceDataSource
// .createQueryBuilder()
// .insert()
// .into(`${schemaName}.${tableName}`, ['key', 'workspaceId', 'value'])
// .orIgnore()
// .values([])
// .execute();
// };
export const deleteFeatureFlags = async (
workspaceDataSource: DataSource,
schemaName: string,

View File

@ -80,6 +80,11 @@ export const seedFeatureFlags = async (
workspaceId: workspaceId,
value: false,
},
{
key: FeatureFlagKey.IsPermissionsEnabled,
workspaceId: workspaceId,
value: true,
},
])
.execute();
};

View File

@ -13,7 +13,7 @@ export const DEV_SEED_USER_WORKSPACE_IDS = {
TIM: '20202020-9e3b-46d4-a556-88b9ddc2b035',
JONY: '20202020-3957-4908-9c36-2929a23f8353',
PHIL: '20202020-7169-42cf-bc47-1cfef15264b1',
TIM_ACME: '20202020-9e3b-46d4-a556-88b9ddc2b436',
TIM_ACME: '20202020-e10a-4c27-a90b-b08c57b02d44',
};
export const seedUserWorkspaces = async (

View File

@ -0,0 +1,35 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UpdateRoleTable1739795699972 implements MigrationInterface {
name = 'UpdateRoleTable1739795699972';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."role" ADD "canReadAllObjectRecords" boolean NOT NULL DEFAULT false`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" ADD "canUpdateAllObjectRecords" boolean NOT NULL DEFAULT false`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" ADD "canSoftDeleteAllObjectRecords" boolean NOT NULL DEFAULT false`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" ADD "canDestroyAllObjectRecords" boolean NOT NULL DEFAULT false`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."role" DROP COLUMN "canDestroyAllObjectRecords"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" DROP COLUMN "canSoftDeleteAllObjectRecords"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" DROP COLUMN "canUpdateAllObjectRecords"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."role" DROP COLUMN "canReadAllObjectRecords"`,
);
}
}