[permissions] Allow logo update during sign-up (#11468)

Fixes https://github.com/twentyhq/twenty/issues/11410
This commit is contained in:
Marie
2025-04-09 13:58:30 +02:00
committed by GitHub
parent c6203d8928
commit fe6d0241a8
2 changed files with 21 additions and 0 deletions

View File

@ -165,6 +165,7 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
userWorkspaceId, userWorkspaceId,
workspaceId: workspace.id, workspaceId: workspace.id,
apiKey, apiKey,
workspaceActivationStatus: workspace.activationStatus,
}); });
if (payload.subdomain && workspace.subdomain !== payload.subdomain) { if (payload.subdomain && workspace.subdomain !== payload.subdomain) {
@ -460,11 +461,13 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
userWorkspaceId, userWorkspaceId,
workspaceId, workspaceId,
apiKey, apiKey,
workspaceActivationStatus,
}: { }: {
payload: Partial<Workspace>; payload: Partial<Workspace>;
userWorkspaceId?: string; userWorkspaceId?: string;
workspaceId: string; workspaceId: string;
apiKey?: string; apiKey?: string;
workspaceActivationStatus: WorkspaceActivationStatus;
}) { }) {
if ( if (
'displayName' in payload || 'displayName' in payload ||
@ -476,6 +479,12 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
throw new Error('Missing userWorkspaceId in authContext'); throw new Error('Missing userWorkspaceId in authContext');
} }
if (
workspaceActivationStatus === WorkspaceActivationStatus.PENDING_CREATION
) {
return;
}
const userHasPermission = const userHasPermission =
await this.permissionsService.userHasWorkspaceSettingPermission({ await this.permissionsService.userHasWorkspaceSettingPermission({
userWorkspaceId, userWorkspaceId,

View File

@ -8,6 +8,7 @@ import {
import { GqlExecutionContext } from '@nestjs/graphql'; import { GqlExecutionContext } from '@nestjs/graphql';
import { isDefined } from 'twenty-shared/utils'; import { isDefined } from 'twenty-shared/utils';
import { WorkspaceActivationStatus } from 'twenty-shared/workspace';
import { SettingPermissionType } from 'src/engine/metadata-modules/permissions/constants/setting-permission-type.constants'; import { SettingPermissionType } from 'src/engine/metadata-modules/permissions/constants/setting-permission-type.constants';
import { import {
@ -28,6 +29,17 @@ export const SettingsPermissionsGuard = (
const ctx = GqlExecutionContext.create(context); const ctx = GqlExecutionContext.create(context);
const workspaceId = ctx.getContext().req.workspace.id; const workspaceId = ctx.getContext().req.workspace.id;
const userWorkspaceId = ctx.getContext().req.userWorkspaceId; const userWorkspaceId = ctx.getContext().req.userWorkspaceId;
const workspaceActivationStatus =
ctx.getContext().req.workspace.activationStatus;
if (
[
WorkspaceActivationStatus.PENDING_CREATION,
WorkspaceActivationStatus.ONGOING_CREATION,
].includes(workspaceActivationStatus)
) {
return true;
}
const hasPermission = const hasPermission =
await this.permissionsService.userHasWorkspaceSettingPermission({ await this.permissionsService.userHasWorkspaceSettingPermission({