Move Impersonate from User to Workspace (#2630)

* Fix impersonate

* align core typeorm config with metadata config + add allowImpersonation to workspace

* move allowImpersonation to workspace

* remove allowImpersonation from workspaceMember workspace table
This commit is contained in:
Weiko
2023-11-22 14:12:39 +01:00
committed by GitHub
parent 680e9b6aa5
commit a6abe09163
33 changed files with 199 additions and 119 deletions
@@ -1,6 +1,6 @@
import { Field, InputType } from '@nestjs/graphql';
import { IsOptional, IsString } from 'class-validator';
import { IsBoolean, IsOptional, IsString } from 'class-validator';
@InputType()
export class UpdateWorkspaceInput {
@@ -23,4 +23,9 @@ export class UpdateWorkspaceInput {
@IsString()
@IsOptional()
inviteHash?: string;
@Field({ nullable: true })
@IsBoolean()
@IsOptional()
allowImpersonation?: boolean;
}
@@ -10,7 +10,7 @@ import { Workspace } from 'src/core/workspace/workspace.entity';
export class WorkspaceService extends TypeOrmQueryService<Workspace> {
constructor(
@InjectRepository(Workspace)
@InjectRepository(Workspace, 'core')
private readonly workspaceRepository: Repository<Workspace>,
private readonly workspaceManagerService: WorkspaceManagerService,
) {
@@ -49,4 +49,8 @@ export class Workspace {
@OneToMany(() => User, (user) => user.defaultWorkspace)
users: User[];
@Field()
@Column({ default: true })
allowImpersonation: boolean;
}
@@ -1,5 +1,4 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { NestjsQueryGraphQLModule } from '@ptc-org/nestjs-query-graphql';
import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm';
@@ -7,9 +6,7 @@ import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm';
import { FileModule } from 'src/core/file/file.module';
import { WorkspaceManagerModule } from 'src/workspace/workspace-manager/workspace-manager.module';
import { WorkspaceResolver } from 'src/core/workspace/workspace.resolver';
// eslint-disable-next-line no-restricted-imports
import config from '../../../ormconfig';
import { TypeORMModule } from 'src/database/typeorm/typeorm.module';
import { Workspace } from './workspace.entity';
import { workspaceAutoResolverOpts } from './workspace.auto-resolver-opts';
@@ -18,10 +15,10 @@ import { WorkspaceService } from './services/workspace.service';
@Module({
imports: [
TypeOrmModule.forRoot(config),
TypeORMModule,
NestjsQueryGraphQLModule.forFeature({
imports: [
NestjsQueryTypeOrmModule.forFeature([Workspace]),
NestjsQueryTypeOrmModule.forFeature([Workspace], 'core'),
WorkspaceManagerModule,
FileModule,
],