form builder permission

This commit is contained in:
2026-02-01 12:21:54 +03:30
parent 8fa88ce6c2
commit f452fa0d11
2 changed files with 14 additions and 2 deletions
+4 -1
View File
@@ -22,6 +22,9 @@ export enum Permission {
MANAGE_SETTINGS = 'manage_settings', MANAGE_SETTINGS = 'manage_settings',
MANAGE_FORM_BUILDER='manage_form_builder'
} }
/** /**
@@ -44,5 +47,5 @@ export const PermissionTitles: Record<Permission, string> = {
[Permission.MANAGE_ROLES]: 'مدیریت نقش‌ها', [Permission.MANAGE_ROLES]: 'مدیریت نقش‌ها',
[Permission.MANAGE_PAYMENTS]: 'مدیریت پرداخت‌ها', [Permission.MANAGE_PAYMENTS]: 'مدیریت پرداخت‌ها',
[Permission.MANAGE_SETTINGS]: 'مدیریت تنظیمات', [Permission.MANAGE_SETTINGS]: 'مدیریت تنظیمات',
[Permission.MANAGE_FORM_BUILDER]: "مدیریت فرم بیلدر"
}; };
@@ -8,6 +8,8 @@ import { FieldOptionService } from '../provider/field-option.service';
import { UpdateFieldDto } from '../dto/update-field.dto'; import { UpdateFieldDto } from '../dto/update-field.dto';
import { UpdateFieldOptionDto } from '../dto/update-field-option.dto'; import { UpdateFieldOptionDto } from '../dto/update-field-option.dto';
import { FindFieldsGroupDto } from '../dto/find-field-group.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() @Controller()
@ApiBearerAuth() @ApiBearerAuth()
@@ -19,15 +21,17 @@ export class FormBuilderController {
/*================================ Field ========================== */ /*================================ Field ========================== */
@Get('public/entity/:id/field') @Get('public/entity/:id/field')
@ApiOperation({ summary: 'find all fields' }) @ApiOperation({ summary: 'find all fields' })
// @UseGuards(AdminAuthGuard)
findAllSectionFieldsAsUser(@Param('id') entityId: string) { findAllSectionFieldsAsUser(@Param('id') entityId: string) {
return this.fieldService.findAll(+entityId); return this.fieldService.findAll(+entityId);
} }
// ============= Admin =================
@Post('admin/entity/:id/field') @Post('admin/entity/:id/field')
@ApiOperation({ summary: 'Create field for entity' }) @ApiOperation({ summary: 'Create field for entity' })
@Permissions(Permission.MANAGE_FORM_BUILDER)
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
createField(@Body() dto: CreateFieldDto, @Param('id') entityId: string) { createField(@Body() dto: CreateFieldDto, @Param('id') entityId: string) {
return this.fieldService.create(+entityId, dto); return this.fieldService.create(+entityId, dto);
@@ -57,6 +61,7 @@ export class FormBuilderController {
@Patch('admin/entity/field/:id') @Patch('admin/entity/field/:id')
@ApiOperation({ summary: 'Update field' }) @ApiOperation({ summary: 'Update field' })
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
@Permissions(Permission.MANAGE_FORM_BUILDER)
updateField(@Param('id') id: string, @Body() dto: UpdateFieldDto) { updateField(@Param('id') id: string, @Body() dto: UpdateFieldDto) {
return this.fieldService.update(+id, dto); return this.fieldService.update(+id, dto);
} }
@@ -64,6 +69,7 @@ export class FormBuilderController {
@Delete('admin/entity/field/:id') @Delete('admin/entity/field/:id')
@ApiOperation({ summary: 'Remove field' }) @ApiOperation({ summary: 'Remove field' })
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
@Permissions(Permission.MANAGE_FORM_BUILDER)
removeField(@Param('id') id: string) { removeField(@Param('id') id: string) {
return this.fieldService.remove(+id); return this.fieldService.remove(+id);
} }
@@ -73,6 +79,7 @@ export class FormBuilderController {
@Post('admin/entity/field/:id/option') @Post('admin/entity/field/:id/option')
@ApiOperation({ summary: 'Create field Options ' }) @ApiOperation({ summary: 'Create field Options ' })
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
@Permissions(Permission.MANAGE_FORM_BUILDER)
createFieldOption(@Body() dto: CreateFieldOptionDto, @Param('id') id: string) { createFieldOption(@Body() dto: CreateFieldOptionDto, @Param('id') id: string) {
return this.fieldOptionService.create(+id, dto); return this.fieldOptionService.create(+id, dto);
} }
@@ -94,6 +101,7 @@ export class FormBuilderController {
@Patch('admin/entity/field/option/:id') @Patch('admin/entity/field/option/:id')
@ApiOperation({ summary: 'Update field Option' }) @ApiOperation({ summary: 'Update field Option' })
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
@Permissions(Permission.MANAGE_FORM_BUILDER)
updateFieldOption(@Param('id') id: string, @Body() dto: UpdateFieldOptionDto) { updateFieldOption(@Param('id') id: string, @Body() dto: UpdateFieldOptionDto) {
return this.fieldOptionService.update(+id, dto); return this.fieldOptionService.update(+id, dto);
} }
@@ -101,6 +109,7 @@ export class FormBuilderController {
@Delete('admin/entity/field/option/:id') @Delete('admin/entity/field/option/:id')
@ApiOperation({ summary: 'Renopve field Option' }) @ApiOperation({ summary: 'Renopve field Option' })
@UseGuards(AdminAuthGuard) @UseGuards(AdminAuthGuard)
@Permissions(Permission.MANAGE_FORM_BUILDER)
removeFieldOption(@Param('id') id: string) { removeFieldOption(@Param('id') id: string) {
return this.fieldOptionService.remove(+id); return this.fieldOptionService.remove(+id);
} }