[permissions] Add field permissions feature flag in lab (#13767)
- Add field permissions feature flag in lab - Fix / configuration of field permissions on roles page should be behind feature flag (@lucasbordeau )
This commit is contained in:
+9
@@ -30,6 +30,15 @@ export const PUBLIC_FEATURE_FLAGS: PublicFeatureFlag[] = [
|
||||
imagePath: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
key: FeatureFlagKey.IS_FIELDS_PERMISSIONS_ENABLED,
|
||||
metadata: {
|
||||
label: 'Fields Permissions',
|
||||
description: 'Configure permissions at field-level for your workspace',
|
||||
imagePath:
|
||||
'https://twenty.com/images/lab/is-fields-permissions-enabled.png',
|
||||
},
|
||||
},
|
||||
...(process.env.CLOUDFLARE_API_KEY
|
||||
? [
|
||||
// {
|
||||
|
||||
+11
-1
@@ -6,7 +6,7 @@ import { Repository } from 'typeorm';
|
||||
import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interfaces/feature-flag-map.interface';
|
||||
|
||||
import { type FeatureFlagDTO } from 'src/engine/core-modules/feature-flag/dtos/feature-flag-dto';
|
||||
import { type FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
|
||||
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
|
||||
import { FeatureFlag } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
|
||||
import {
|
||||
FeatureFlagException,
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
import { featureFlagValidator } from 'src/engine/core-modules/feature-flag/validates/feature-flag.validate';
|
||||
import { publicFeatureFlagValidator } from 'src/engine/core-modules/feature-flag/validates/is-public-feature-flag.validate';
|
||||
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';
|
||||
|
||||
@Injectable()
|
||||
export class FeatureFlagService {
|
||||
@@ -22,6 +23,7 @@ export class FeatureFlagService {
|
||||
@InjectRepository(FeatureFlag, 'core')
|
||||
private readonly featureFlagRepository: Repository<FeatureFlag>,
|
||||
private readonly workspaceFeatureFlagsMapCacheService: WorkspaceFeatureFlagsMapCacheService,
|
||||
private readonly workspacePermissionsCacheService: WorkspacePermissionsCacheService,
|
||||
) {}
|
||||
|
||||
public async isFeatureEnabled(
|
||||
@@ -130,6 +132,14 @@ export class FeatureFlagService {
|
||||
{ workspaceId },
|
||||
);
|
||||
|
||||
if (featureFlag === FeatureFlagKey.IS_FIELDS_PERMISSIONS_ENABLED) {
|
||||
await this.workspacePermissionsCacheService.recomputeRolesPermissionsCache(
|
||||
{
|
||||
workspaceId,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user