ToolJet/server/src/controllers/app_users.controller.ts
Midhun G S 0545528504
Support for multiple workspaces 🚀 (#2778)
* multi org changes

* Initial changes

* changes

* manage sso page

* Multi-organization changes

* Multi organization changes

* multi-org changes

* multi-org changes

* multi-org changes

* multi-org fixes

* env variables app.json changes

* multi-org-fix

* user invitation token fix

* multi-org group permission fix

* multi-org app privilege

* google oauth fix

* Remove enable signup for form login

* Multi organization fixes

* multi-org user invite flow changes

* multi-org sign up fix

* rebase and multi-org fixes

* revert testing logs

* test logs revert

* migration changes

* migration file fix

* error message changes

* git login for private email fix

* dropdown fix

* test cases

* e2e test cases added

* test cases fix

* documentation changes

* testcases fix

* testcases added

* replace findOne with findOneOrFail

* accept invite testcases

* login page fixes

* added encrypted tag

* review comments

* migration fixes

* improvements

* manage sso loading fix

* review comments

* migration file changes

* new organization creation bug fix

* added e2e testcases

* added testcases

* Update data_sources.controller.ts
2022-05-05 12:38:42 +05:30

35 lines
1.3 KiB
TypeScript

import { Controller, ForbiddenException, Post, Request, UseGuards } from '@nestjs/common';
import { JwtAuthGuard } from '../../src/modules/auth/jwt-auth.guard';
import { decamelizeKeys } from 'humps';
import { AppsAbilityFactory } from 'src/modules/casl/abilities/apps-ability.factory';
import { AppUsersService } from '@services/app_users.service';
import { AppsService } from '@services/apps.service';
@Controller('app_users')
export class AppUsersController {
constructor(
private appUsersService: AppUsersService,
private appsService: AppsService,
private appsAbilityFactory: AppsAbilityFactory
) {}
// TODO: remove deprecated
@UseGuards(JwtAuthGuard)
@Post()
async create(@Request() req) {
const params = req.body;
const appId = params['app_id'];
const organizationUserId = params['org_user_id'];
const { role } = params;
const app = await this.appsService.find(appId);
const ability = await this.appsAbilityFactory.appsActions(req.user, appId);
if (!ability.can('createUsers', app)) {
throw new ForbiddenException('you do not have permissions to perform this action');
}
const appUser = await this.appUsersService.create(req.user, appId, organizationUserId, role);
return decamelizeKeys(appUser);
}
}