45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import {
|
|
BadRequestException,
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { Privileges } from 'src/decorators/privileges.decorator';
|
|
import { Scopes } from 'src/decorators/scopes.decorator';
|
|
import { OAuth2Guard } from 'src/guards/oauth2.guard';
|
|
import { PrivilegesGuard } from 'src/guards/privileges.guard';
|
|
import { ScopesGuard } from 'src/guards/scopes.guard';
|
|
import { PrivilegeService } from 'src/modules/objects/privilege/privilege.service';
|
|
import { FormUtilityService } from 'src/modules/utility/services/form-utility.service';
|
|
import { PaginationService } from 'src/modules/utility/services/paginate.service';
|
|
|
|
@Controller('/api/admin/privileges')
|
|
@UseGuards(OAuth2Guard, PrivilegesGuard, ScopesGuard)
|
|
export class PrivilegeAdminController {
|
|
constructor(
|
|
private _privilege: PrivilegeService,
|
|
private _paginate: PaginationService,
|
|
private _form: FormUtilityService,
|
|
) {}
|
|
|
|
@Get('')
|
|
@Scopes('management')
|
|
@Privileges('admin', 'admin:user', 'admin:user:privilege')
|
|
async privilegeList() {
|
|
return this._privilege.getAllPrivileges();
|
|
}
|
|
|
|
@Post('')
|
|
@Scopes('management')
|
|
@Privileges('admin', 'admin:user', 'admin:user:privilege')
|
|
async newPrivilege(@Body() body: { privilege: string }) {
|
|
if (!body.privilege) {
|
|
throw new BadRequestException('Privilege is required');
|
|
}
|
|
|
|
return this._privilege.createPrivilege(body.privilege);
|
|
}
|
|
}
|