ToolJet/server/src/modules/setup-organization/controller.ts
Muhsin Shah C P 958cbd1d02
[improvement] Default workspace (#12834)
* Added set-default API

* Setting default workspace for super-admin onboarding

* Seperated the migrations

* Added nestjs init

* removed nestjs init

* Added: default workspace case to signup

* Fixed: instance signup

* Fixed: existed non-active user instance signup

* Added: SSO default workspace support

* Added: Default workspace chooser

* Moved some scss changes to ee folder

* Added: disable workspace default organization check

* updated the migration

* Fixing .env issue

* Removed the logs

* Remove personal workspace check from enable signup

* Fixing sign-in cases

* Fixing workspace invited user's instance signup cases

* Fixing sso workspace invited user's instance signup cases

* fixing the workspace signup issue

* Adding ee server and frontend file

* Adding ee server and frontend file

* Adding active check

* Added query fix for the migration

* Added migration logic fix

* Removed/Commented the ENABLE_ONBOARDING_QUESTIONS_FOR_ALL_SIGN_UPS env support from EE and CE

* Adding server and frontend files

* Added frontend file

* Bump version
2025-05-14 16:06:52 +05:30

41 lines
1.7 KiB
TypeScript

import { Body, Controller, Post, UseGuards, Res } from '@nestjs/common';
import { User, UserEntity } from '@modules/app/decorators/user.decorator';
import { JwtAuthGuard } from '@modules/session/guards/jwt-auth.guard';
import { OrganizationCreateDto } from '@modules/organizations/dto';
import { Response } from 'express';
import { SetupOrganizationsService } from './service';
import { ISetupOrganizationsController } from './interfaces/IController';
import { SessionUtilService } from '@modules/session/util.service';
import { InitModule } from '@modules/app/decorators/init-module';
import { MODULES } from '@modules/app/constants/modules';
import { InitFeature } from '@modules/app/decorators/init-feature.decorator';
import { FEATURE_KEY } from '@modules/organizations/constants';
import { FeatureAbilityGuard } from '@modules/organizations/ability/guard';
@InitModule(MODULES.ORGANIZATIONS)
@Controller('organizations')
export class SetupOrganizationsController implements ISetupOrganizationsController {
constructor(
protected setupOrganizationsService: SetupOrganizationsService,
protected sessionUtilService: SessionUtilService
) {}
@InitFeature(FEATURE_KEY.CREATE)
@UseGuards(JwtAuthGuard, FeatureAbilityGuard)
@Post()
async create(
@User() user: UserEntity,
@Body() organizationCreateDto: OrganizationCreateDto,
@Res({ passthrough: true }) response: Response
) {
const result = await this.setupOrganizationsService.create(
{ name: organizationCreateDto.name, slug: organizationCreateDto.slug },
user
);
if (!result) {
throw new Error();
}
return await this.sessionUtilService.switchOrganization(response, result.id, user, true);
}
}