File

src/settings/settings.controller.ts

Prefix

settings

Index

Methods

Methods

Async canViewSettings
canViewSettings(request)
Decorators :
@Get('canViewSettings')
Parameters :
Name Optional
request No
Returns : unknown
defaultRole
defaultRole()
Decorators :
@Get('defaultRole')
Returns : any
Async removeUser
removeUser(userId: string, request)
Decorators :
@Delete('users/:userId')
Parameters :
Name Type Optional
userId string No
request No
Returns : unknown
roles
roles()
Decorators :
@Get('roles')
Returns : any
Async setTuroUser
setTuroUser(updateTuroUserDto: UpdateTuroUserDto, request)
Decorators :
@Post('users/assign')
Parameters :
Name Type Optional
updateTuroUserDto UpdateTuroUserDto No
request No
Returns : unknown
Async users
users(request)
Decorators :
@Get('users')
Parameters :
Name Optional
request No
Returns : unknown
import { PolicyService } from "../iam";
import {
  Body,
  Controller,
  Get,
  Request,
  Post,
  Param,
  Delete,
  UnauthorizedException,
} from "@nestjs/common";
import { ApiBearerAuth } from "@nestjs/swagger";
import { UpdateTuroUserDto } from "./dto/update-turo-user.dto";
import {
  SETTINGS_DELETE_ACTION,
  SETTINGS_READ_ACTION,
  SETTINGS_RESOURCE_NAME,
  SETTINGS_UPDATE_ACTION,
} from "./settings.constants";
import { SettingsService } from "./settings.service";

@ApiBearerAuth("access-token")
@Controller("settings")
export class SettingsController {
  constructor(
    private readonly settingsService: SettingsService,
    private readonly policyService: PolicyService,
  ) {}

  @Get("users")
  async users(@Request() request) {
    if (
      !(await this.policyService.checkPermission(
        request.user.permission,
        0,
        SETTINGS_RESOURCE_NAME,
        SETTINGS_READ_ACTION,
      ))
    ) {
      throw new UnauthorizedException();
    }
    return this.settingsService.getTuroUsers();
  }

  @Get("roles")
  roles() {
    return this.settingsService.getTuroRoles();
  }

  @Get("defaultRole")
  defaultRole() {
    return this.settingsService.getDefaultRole();
  }

  @Post("users/assign")
  async setTuroUser(
    @Body() updateTuroUserDto: UpdateTuroUserDto,
    @Request() request,
  ) {
    if (
      !(await this.policyService.checkPermission(
        request.user.permission,
        0,
        SETTINGS_RESOURCE_NAME,
        SETTINGS_UPDATE_ACTION,
      ))
    ) {
      throw new UnauthorizedException();
    }
    return this.settingsService.setTuroUser(
      updateTuroUserDto.roleId,
      updateTuroUserDto.userId,
      request.user.id,
    );
  }

  @Delete("users/:userId")
  async removeUser(@Param("userId") userId: string, @Request() request) {
    if (
      !(await this.policyService.checkPermission(
        request.user.permission,
        0,
        SETTINGS_RESOURCE_NAME,
        SETTINGS_DELETE_ACTION,
      ))
    ) {
      throw new UnauthorizedException();
    }
    return this.settingsService.removeUser(userId, request.user.id);
  }

  @Get("canViewSettings")
  async canViewSettings(@Request() request) {
    return this.policyService.checkPermission(
      request.user.permission,
      0,
      SETTINGS_RESOURCE_NAME,
      SETTINGS_READ_ACTION,
    );
  }
}

results matching ""

    No results matching ""