Skip to content

Commit b7f5445

Browse files
authored
fix: rename SettingsPermissionsGuard to SettingsPermissionGuard for consistency (#15712)
## Problem The ESLint rule `graphql-resolvers-should-be-guarded` introduced in #15392 was failing on main because the guard `SettingsPermissionsGuard` had inconsistent naming. ## Root Cause The guard was named `SettingsPermissionsGuard` (with an 's') which was inconsistent with other permission guards: - ✅ `CustomPermissionGuard` - ✅ `NoPermissionGuard` - ✅ `ImpersonatePermissionGuard` - ❌ `SettingsPermissionsGuard` (inconsistent!) The ESLint rule checks if guard names end with `PermissionGuard`, but `SettingsPermissionsGuard` ends with `sGuard`, so it wasn't recognized as a permission guard. ## Solution Renamed the guard to be consistent with the naming convention: 1. ✅ Renamed file: `settings-permissions.guard.ts` → `settings-permission.guard.ts` 2. ✅ Renamed export: `SettingsPermissionsGuard` → `SettingsPermissionGuard` 3. ✅ Renamed internal class: `SettingsPermissionsMixin` → `SettingsPermissionMixin` 4. ✅ Updated all 122 references across 44 files in the codebase 5. ✅ Renamed test file: `settings-permissions.guard.spec.ts` → `settings-permission.guard.spec.ts` ## Testing - ✅ `npx nx run twenty-server:lint` passes - ✅ `npx nx run twenty-server:typecheck` passes - ✅ No references to the old name remain in the codebase - ✅ All previously failing resolver files now pass ESLint validation ## Related Fixes issues introduced in #15392
1 parent bce1bcf commit b7f5445

File tree

45 files changed

+125
-125
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+125
-125
lines changed

packages/twenty-server/src/engine/core-modules/admin-panel/admin-panel.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import { ConfigVariableGraphqlApiExceptionFilter } from 'src/engine/core-modules
3131
import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
3232
import { AdminPanelGuard } from 'src/engine/guards/admin-panel-guard';
3333
import { ServerLevelImpersonateGuard } from 'src/engine/guards/server-level-impersonate.guard';
34-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
34+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
3535
import { UserAuthGuard } from 'src/engine/guards/user-auth.guard';
3636
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
3737
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
@@ -49,7 +49,7 @@ import { QueueMetricsDataDTO } from './dtos/queue-metrics-data.dto';
4949
@UseGuards(
5050
WorkspaceAuthGuard,
5151
UserAuthGuard,
52-
SettingsPermissionsGuard(PermissionFlagType.SECURITY),
52+
SettingsPermissionGuard(PermissionFlagType.SECURITY),
5353
)
5454
export class AdminPanelResolver {
5555
constructor(

packages/twenty-server/src/engine/core-modules/api-key/api-key.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { UpdateApiKeyInput } from 'src/engine/core-modules/api-key/dtos/update-a
2222
import { apiKeyGraphqlApiExceptionHandler } from 'src/engine/core-modules/api-key/utils/api-key-graphql-api-exception-handler.util';
2323
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
2424
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
25-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
25+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
2626
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
2727
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
2828
import { RoleDTO } from 'src/engine/metadata-modules/role/dtos/role.dto';
@@ -34,7 +34,7 @@ import { ApiKeyService } from './api-key.service';
3434
@Resolver(() => ApiKeyEntity)
3535
@UseGuards(
3636
WorkspaceAuthGuard,
37-
SettingsPermissionsGuard(PermissionFlagType.API_KEYS_AND_WEBHOOKS),
37+
SettingsPermissionGuard(PermissionFlagType.API_KEYS_AND_WEBHOOKS),
3838
)
3939
export class ApiKeyResolver {
4040
constructor(

packages/twenty-server/src/engine/core-modules/application/application.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/featu
1212
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
1313
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
1414
import { RequireFeatureFlag } from 'src/engine/guards/feature-flag.guard';
15-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
15+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
1616
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
1717
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1818

1919
@UseGuards(
2020
WorkspaceAuthGuard,
21-
SettingsPermissionsGuard(PermissionFlagType.APPLICATIONS),
21+
SettingsPermissionGuard(PermissionFlagType.APPLICATIONS),
2222
)
2323
@Resolver()
2424
@UseFilters(ApplicationExceptionFilter)

packages/twenty-server/src/engine/core-modules/applicationVariable/application-variable.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import { Args, Mutation, Resolver } from '@nestjs/graphql';
44
import { ApplicationVariableEntityExceptionFilter } from 'src/engine/core-modules/applicationVariable/application-variable-exception-filter';
55
import { ApplicationVariableEntityService } from 'src/engine/core-modules/applicationVariable/application-variable.service';
66
import { UpdateApplicationVariableEntityInput } from 'src/engine/core-modules/applicationVariable/dtos/update-application-variable.input';
7-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
7+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
88
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
99
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1010

1111
@UseGuards(
1212
WorkspaceAuthGuard,
13-
SettingsPermissionsGuard(PermissionFlagType.APPLICATIONS),
13+
SettingsPermissionGuard(PermissionFlagType.APPLICATIONS),
1414
)
1515
@Resolver()
1616
@UseFilters(ApplicationVariableEntityExceptionFilter)

packages/twenty-server/src/engine/core-modules/approved-access-domain/approved-access-domain.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import { UserEntity } from 'src/engine/core-modules/user/user.entity';
1313
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
1414
import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator';
1515
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
16-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
16+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
1717
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
1818
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1919
import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager';
2020
import { WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-member/standard-objects/workspace-member.workspace-entity';
2121

2222
@UseGuards(
2323
WorkspaceAuthGuard,
24-
SettingsPermissionsGuard(PermissionFlagType.WORKSPACE_MEMBERS),
24+
SettingsPermissionGuard(PermissionFlagType.WORKSPACE_MEMBERS),
2525
)
2626
@UsePipes(ResolverValidationPipe)
2727
@UseFilters(

packages/twenty-server/src/engine/core-modules/auth/auth.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator';
7070
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
7171
import { NoPermissionGuard } from 'src/engine/guards/no-permission.guard';
7272
import { PublicEndpointGuard } from 'src/engine/guards/public-endpoint.guard';
73-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
73+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
7474
import { UserAuthGuard } from 'src/engine/guards/user-auth.guard';
7575
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
7676
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
@@ -783,7 +783,7 @@ export class AuthResolver {
783783

784784
@UseGuards(
785785
WorkspaceAuthGuard,
786-
SettingsPermissionsGuard(PermissionFlagType.API_KEYS_AND_WEBHOOKS),
786+
SettingsPermissionGuard(PermissionFlagType.API_KEYS_AND_WEBHOOKS),
787787
)
788788
@Mutation(() => ApiKeyToken)
789789
async generateApiKeyToken(

packages/twenty-server/src/engine/core-modules/billing/billing.resolver.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { AuthUserWorkspaceId } from 'src/engine/decorators/auth/auth-user-worksp
2929
import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator';
3030
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
3131
import { NoPermissionGuard } from 'src/engine/guards/no-permission.guard';
32-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
32+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
3333
import { UserAuthGuard } from 'src/engine/guards/user-auth.guard';
3434
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
3535
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
@@ -60,7 +60,7 @@ export class BillingResolver {
6060
@Query(() => BillingSessionOutput)
6161
@UseGuards(
6262
WorkspaceAuthGuard,
63-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
63+
SettingsPermissionGuard(PermissionFlagType.BILLING),
6464
)
6565
async billingPortalSession(
6666
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -138,7 +138,7 @@ export class BillingResolver {
138138
@Mutation(() => BillingUpdateOutput)
139139
@UseGuards(
140140
WorkspaceAuthGuard,
141-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
141+
SettingsPermissionGuard(PermissionFlagType.BILLING),
142142
)
143143
async switchSubscriptionInterval(
144144
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -160,7 +160,7 @@ export class BillingResolver {
160160
@Mutation(() => BillingUpdateOutput)
161161
@UseGuards(
162162
WorkspaceAuthGuard,
163-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
163+
SettingsPermissionGuard(PermissionFlagType.BILLING),
164164
)
165165
async switchBillingPlan(@AuthWorkspace() workspace: WorkspaceEntity) {
166166
await this.billingSubscriptionService.changePlan(workspace);
@@ -180,7 +180,7 @@ export class BillingResolver {
180180
@Mutation(() => BillingUpdateOutput)
181181
@UseGuards(
182182
WorkspaceAuthGuard,
183-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
183+
SettingsPermissionGuard(PermissionFlagType.BILLING),
184184
)
185185
async cancelSwitchBillingPlan(@AuthWorkspace() workspace: WorkspaceEntity) {
186186
await this.billingSubscriptionService.cancelSwitchPlan(workspace);
@@ -200,7 +200,7 @@ export class BillingResolver {
200200
@Mutation(() => BillingUpdateOutput)
201201
@UseGuards(
202202
WorkspaceAuthGuard,
203-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
203+
SettingsPermissionGuard(PermissionFlagType.BILLING),
204204
)
205205
async cancelSwitchBillingInterval(
206206
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -222,7 +222,7 @@ export class BillingResolver {
222222
@Mutation(() => BillingUpdateOutput)
223223
@UseGuards(
224224
WorkspaceAuthGuard,
225-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
225+
SettingsPermissionGuard(PermissionFlagType.BILLING),
226226
)
227227
async setMeteredSubscriptionPrice(
228228
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -256,7 +256,7 @@ export class BillingResolver {
256256
@Mutation(() => BillingEndTrialPeriodOutput)
257257
@UseGuards(
258258
WorkspaceAuthGuard,
259-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
259+
SettingsPermissionGuard(PermissionFlagType.BILLING),
260260
)
261261
async endSubscriptionTrialPeriod(
262262
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -267,7 +267,7 @@ export class BillingResolver {
267267
@Query(() => [BillingMeteredProductUsageOutput])
268268
@UseGuards(
269269
WorkspaceAuthGuard,
270-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
270+
SettingsPermissionGuard(PermissionFlagType.BILLING),
271271
)
272272
async getMeteredProductsUsage(
273273
@AuthWorkspace() workspace: WorkspaceEntity,
@@ -278,7 +278,7 @@ export class BillingResolver {
278278
@Mutation(() => BillingUpdateOutput)
279279
@UseGuards(
280280
WorkspaceAuthGuard,
281-
SettingsPermissionsGuard(PermissionFlagType.BILLING),
281+
SettingsPermissionGuard(PermissionFlagType.BILLING),
282282
)
283283
async cancelSwitchMeteredPrice(@AuthWorkspace() workspace: WorkspaceEntity) {
284284
await this.billingSubscriptionService.cancelSwitchMeteredPrice(workspace);

packages/twenty-server/src/engine/core-modules/emailing-domain/emailing-domain.resolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import { EmailingDomainService } from 'src/engine/core-modules/emailing-domain/s
77
import { ResolverValidationPipe } from 'src/engine/core-modules/graphql/pipes/resolver-validation.pipe';
88
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
99
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
10-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
10+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
1111
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
1212
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1313

1414
@UseGuards(
1515
WorkspaceAuthGuard,
16-
SettingsPermissionsGuard(PermissionFlagType.WORKSPACE),
16+
SettingsPermissionGuard(PermissionFlagType.WORKSPACE),
1717
)
1818
@UsePipes(ResolverValidationPipe)
1919
@Resolver(() => EmailingDomainDto)

packages/twenty-server/src/engine/core-modules/file/file-upload/resolvers/file-upload.resolver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { PreventNestToAutoLogGraphqlErrorsFilter } from 'src/engine/core-modules
1111
import { ResolverValidationPipe } from 'src/engine/core-modules/graphql/pipes/resolver-validation.pipe';
1212
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
1313
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
14-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
14+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
1515
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
1616
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1717
import { streamToBuffer } from 'src/utils/stream-to-buffer';
@@ -24,7 +24,7 @@ export class FileUploadResolver {
2424
constructor(private readonly fileUploadService: FileUploadService) {}
2525

2626
@Mutation(() => SignedFileDTO)
27-
@UseGuards(SettingsPermissionsGuard(PermissionFlagType.UPLOAD_FILE))
27+
@UseGuards(SettingsPermissionGuard(PermissionFlagType.UPLOAD_FILE))
2828
async uploadFile(
2929
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
3030
@Args({ name: 'file', type: () => GraphQLUpload })
@@ -51,7 +51,7 @@ export class FileUploadResolver {
5151
}
5252

5353
@Mutation(() => SignedFileDTO)
54-
@UseGuards(SettingsPermissionsGuard(PermissionFlagType.UPLOAD_FILE))
54+
@UseGuards(SettingsPermissionGuard(PermissionFlagType.UPLOAD_FILE))
5555
async uploadImage(
5656
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
5757
@Args({ name: 'file', type: () => GraphQLUpload })

packages/twenty-server/src/engine/core-modules/file/resolvers/file.resolver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { PreventNestToAutoLogGraphqlErrorsFilter } from 'src/engine/core-modules
1010
import { ResolverValidationPipe } from 'src/engine/core-modules/graphql/pipes/resolver-validation.pipe';
1111
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
1212
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
13-
import { SettingsPermissionsGuard } from 'src/engine/guards/settings-permissions.guard';
13+
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
1414
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
1515
import { PermissionFlagType } from 'src/engine/metadata-modules/permissions/constants/permission-flag-type.constants';
1616
import { streamToBuffer } from 'src/utils/stream-to-buffer';
@@ -23,7 +23,7 @@ export class FileResolver {
2323
constructor(private readonly fileMetadataService: FileMetadataService) {}
2424

2525
@Mutation(() => FileDTO)
26-
@UseGuards(SettingsPermissionsGuard(PermissionFlagType.UPLOAD_FILE))
26+
@UseGuards(SettingsPermissionGuard(PermissionFlagType.UPLOAD_FILE))
2727
async createFile(
2828
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
2929
@Args({ name: 'file', type: () => GraphQLUpload })
@@ -41,7 +41,7 @@ export class FileResolver {
4141
}
4242

4343
@Mutation(() => FileDTO)
44-
@UseGuards(SettingsPermissionsGuard(PermissionFlagType.UPLOAD_FILE))
44+
@UseGuards(SettingsPermissionGuard(PermissionFlagType.UPLOAD_FILE))
4545
async deleteFile(
4646
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
4747
@Args('fileId', { type: () => UUIDScalarType }) fileId: string,

0 commit comments

Comments
 (0)