diff --git a/src/common/enums/permission.enum.ts b/src/common/enums/permission.enum.ts index 6086192..dc3cfde 100644 --- a/src/common/enums/permission.enum.ts +++ b/src/common/enums/permission.enum.ts @@ -22,6 +22,9 @@ export enum Permission { MANAGE_SETTINGS = 'manage_settings', + + MANAGE_FORM_BUILDER='manage_form_builder' + } /** @@ -44,5 +47,5 @@ export const PermissionTitles: Record = { [Permission.MANAGE_ROLES]: 'مدیریت نقش‌ها', [Permission.MANAGE_PAYMENTS]: 'مدیریت پرداخت‌ها', [Permission.MANAGE_SETTINGS]: 'مدیریت تنظیمات', - + [Permission.MANAGE_FORM_BUILDER]: "مدیریت فرم بیلدر" }; diff --git a/src/modules/form-builder/controller/form-builder.controller.ts b/src/modules/form-builder/controller/form-builder.controller.ts index 10c1b05..3817446 100644 --- a/src/modules/form-builder/controller/form-builder.controller.ts +++ b/src/modules/form-builder/controller/form-builder.controller.ts @@ -8,6 +8,8 @@ import { FieldOptionService } from '../provider/field-option.service'; import { UpdateFieldDto } from '../dto/update-field.dto'; import { UpdateFieldOptionDto } from '../dto/update-field-option.dto'; import { FindFieldsGroupDto } from '../dto/find-field-group.dto'; +import { Permissions } from 'src/common/decorators/permissions.decorator'; +import { Permission } from 'src/common/enums/permission.enum'; @Controller() @ApiBearerAuth() @@ -19,15 +21,17 @@ export class FormBuilderController { /*================================ Field ========================== */ + @Get('public/entity/:id/field') @ApiOperation({ summary: 'find all fields' }) - // @UseGuards(AdminAuthGuard) findAllSectionFieldsAsUser(@Param('id') entityId: string) { return this.fieldService.findAll(+entityId); } + // ============= Admin ================= @Post('admin/entity/:id/field') @ApiOperation({ summary: 'Create field for entity' }) + @Permissions(Permission.MANAGE_FORM_BUILDER) @UseGuards(AdminAuthGuard) createField(@Body() dto: CreateFieldDto, @Param('id') entityId: string) { return this.fieldService.create(+entityId, dto); @@ -57,6 +61,7 @@ export class FormBuilderController { @Patch('admin/entity/field/:id') @ApiOperation({ summary: 'Update field' }) @UseGuards(AdminAuthGuard) + @Permissions(Permission.MANAGE_FORM_BUILDER) updateField(@Param('id') id: string, @Body() dto: UpdateFieldDto) { return this.fieldService.update(+id, dto); } @@ -64,6 +69,7 @@ export class FormBuilderController { @Delete('admin/entity/field/:id') @ApiOperation({ summary: 'Remove field' }) @UseGuards(AdminAuthGuard) + @Permissions(Permission.MANAGE_FORM_BUILDER) removeField(@Param('id') id: string) { return this.fieldService.remove(+id); } @@ -73,6 +79,7 @@ export class FormBuilderController { @Post('admin/entity/field/:id/option') @ApiOperation({ summary: 'Create field Options ' }) @UseGuards(AdminAuthGuard) + @Permissions(Permission.MANAGE_FORM_BUILDER) createFieldOption(@Body() dto: CreateFieldOptionDto, @Param('id') id: string) { return this.fieldOptionService.create(+id, dto); } @@ -94,6 +101,7 @@ export class FormBuilderController { @Patch('admin/entity/field/option/:id') @ApiOperation({ summary: 'Update field Option' }) @UseGuards(AdminAuthGuard) + @Permissions(Permission.MANAGE_FORM_BUILDER) updateFieldOption(@Param('id') id: string, @Body() dto: UpdateFieldOptionDto) { return this.fieldOptionService.update(+id, dto); } @@ -101,6 +109,7 @@ export class FormBuilderController { @Delete('admin/entity/field/option/:id') @ApiOperation({ summary: 'Renopve field Option' }) @UseGuards(AdminAuthGuard) + @Permissions(Permission.MANAGE_FORM_BUILDER) removeFieldOption(@Param('id') id: string) { return this.fieldOptionService.remove(+id); }