bump
This commit is contained in:
71
apps/backend/src/roles/admin-roles.controller.ts
Normal file
71
apps/backend/src/roles/admin-roles.controller.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
Param,
|
||||
Post,
|
||||
Put,
|
||||
Req,
|
||||
} from '@nestjs/common';
|
||||
import type { AuthenticatedRequest } from '../auth/authenticated-request';
|
||||
import { RequirePermissions } from '../auth/guards/require-permissions.decorator';
|
||||
import { ApiError } from '../common/errors/api-error';
|
||||
import { ErrorCode } from '../common/errors/error-codes';
|
||||
import { SensitiveRateLimit } from '../common/rate-limit/sensitive-rate-limit.decorator';
|
||||
import { Permission } from './permissions';
|
||||
import { CreateRoleDto, UpdateRoleDto } from './dto/role.dto';
|
||||
import { RolesService } from './roles.service';
|
||||
|
||||
@Controller('admin/roles')
|
||||
export class AdminRolesController {
|
||||
constructor(private readonly roles: RolesService) {}
|
||||
|
||||
@Get()
|
||||
@RequirePermissions(Permission.RolesRead)
|
||||
list() {
|
||||
return this.roles.adminList();
|
||||
}
|
||||
|
||||
@Get(':id')
|
||||
@RequirePermissions(Permission.RolesRead)
|
||||
get(@Param('id') id: string) {
|
||||
return this.roles.adminGet(id);
|
||||
}
|
||||
|
||||
@Post()
|
||||
@RequirePermissions(Permission.RolesManage)
|
||||
@SensitiveRateLimit()
|
||||
create(@Req() req: AuthenticatedRequest, @Body() dto: CreateRoleDto) {
|
||||
return this.roles.create(dto, this.requireUser(req));
|
||||
}
|
||||
|
||||
@Put(':id')
|
||||
@RequirePermissions(Permission.RolesManage)
|
||||
@SensitiveRateLimit()
|
||||
update(
|
||||
@Req() req: AuthenticatedRequest,
|
||||
@Param('id') id: string,
|
||||
@Body() dto: UpdateRoleDto,
|
||||
) {
|
||||
return this.roles.update(id, dto, this.requireUser(req));
|
||||
}
|
||||
|
||||
@Delete(':id')
|
||||
@RequirePermissions(Permission.RolesManage)
|
||||
@SensitiveRateLimit()
|
||||
delete(@Req() req: AuthenticatedRequest, @Param('id') id: string) {
|
||||
return this.roles.delete(id, this.requireUser(req));
|
||||
}
|
||||
|
||||
private requireUser(req: AuthenticatedRequest) {
|
||||
if (!req.user) {
|
||||
throw new ApiError(
|
||||
ErrorCode.Unauthorized,
|
||||
'Bitte melden Sie sich an.',
|
||||
401,
|
||||
);
|
||||
}
|
||||
return req.user;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user