feat: user can have multiple workspaces (backend) (#4036)

* create user-workspace mapping

* user-workspace service and integration

* invite condition on sign-up/sign-in

* save/update defaultWorkspace on signup

* add unique decorator on user-workspace entity

* remove resolver permissions

* Fixes

* Fixes

* Fix tests

* Fixes

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Aditya Pimpalkar
2024-02-25 09:58:14 +00:00
committed by GitHub
parent 52b33b5450
commit b67957bf94
10 changed files with 226 additions and 10 deletions

View File

@ -0,0 +1,24 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddUserWorkspaces1707778127558 implements MigrationInterface {
name = 'AddUserWorkspaces1707778127558';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE "core"."userWorkspace" (
"id" uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
"userId" uuid NOT NULL REFERENCES core.user(id),
"workspaceId" uuid NOT NULL REFERENCES core.workspace(id),
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
"updatedAt" TIMESTAMP NOT NULL DEFAULT now(),
"deletedAt" TIMESTAMP
)`,
);
await queryRunner.query(
`ALTER TABLE "core"."user" DROP CONSTRAINT "FK_2ec910029395fa7655621c88908"`,
);
}
public async down(): Promise<void> {}
}