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

View File

@ -8,6 +8,7 @@ import {
import { GqlExecutionContext } from '@nestjs/graphql';
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 {
@ -28,6 +29,17 @@ export const SettingsPermissionsGuard = (
const ctx = GqlExecutionContext.create(context);
const workspaceId = ctx.getContext().req.workspace.id;
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 =
await this.permissionsService.userHasWorkspaceSettingPermission({