[permissions] Allow logo update during sign-up (#11468)
Fixes https://github.com/twentyhq/twenty/issues/11410
This commit is contained in:
@ -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,
|
||||||
|
|||||||
@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user