diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts index 50abaff..deb310e 100755 --- a/src/common/enums/message.enum.ts +++ b/src/common/enums/message.enum.ts @@ -605,6 +605,7 @@ export const enum AdminMessage { ADMIN_UPDATED = "مدیر با موفقیت به روز رسانی شد", ADMIN_NOT_FOUND = "مدیری با این شناسه یافت نشد", ADMIN_DELETED = "مدیر با موفقیت حذف شد", + NOT_ALLOWED = "شما مجوز دسترسی به این عملیات را ندارید", } export const enum AdsMessage { TITLE_REQUIRED = "عنوان الزامی است", diff --git a/src/modules/blogs/blogs.controller.ts b/src/modules/blogs/blogs.controller.ts index 0e13fc9..4015073 100755 --- a/src/modules/blogs/blogs.controller.ts +++ b/src/modules/blogs/blogs.controller.ts @@ -111,8 +111,8 @@ export class BlogsController { @Delete(":id") @AdminRoute() @PermissionsDec(PermissionEnum.BLOGS) - deleteBlog(@Param() paramDto: ParamDto) { - return this.blogsService.deleteBlog(paramDto.id); + deleteBlog(@Param() paramDto: ParamDto, @UserDec("id") userId: string) { + return this.blogsService.deleteBlog(paramDto.id, userId); } //-------------- comments -------------- diff --git a/src/modules/blogs/providers/blogs.service.ts b/src/modules/blogs/providers/blogs.service.ts index ad63915..4897d5e 100755 --- a/src/modules/blogs/providers/blogs.service.ts +++ b/src/modules/blogs/providers/blogs.service.ts @@ -1,7 +1,7 @@ import { BadRequestException, Injectable } from "@nestjs/common"; import { Not } from "typeorm"; -import { BlogMessage, CommonMessage } from "../../../common/enums/message.enum"; +import { AdminMessage, BlogMessage, CommonMessage } from "../../../common/enums/message.enum"; import { CategoryListSearchQueryDto } from "../../danak-services/DTO/category-search-query.dto"; import { UsersService } from "../../users/providers/users.service"; import { BlogCommentQueryDto } from "../DTO/blog-comment-query.dto"; @@ -56,7 +56,9 @@ export class BlogsService { //*********************************** */ async deleteCategory(id: string, userId: string) { - console.log(userId); + const isSuperAdmin = await this.usersService.isSuperAdmin(userId); + if (!isSuperAdmin) throw new BadRequestException(AdminMessage.NOT_ALLOWED); + const category = await this.blogCategoriesRepository.findOneBy({ id }); if (!category) throw new BadRequestException(BlogMessage.CATEGORY_NOT_FOUND); @@ -159,7 +161,10 @@ export class BlogsService { } //*********************************** */ - async deleteBlog(id: string) { + async deleteBlog(id: string, userId: string) { + const isSuperAdmin = await this.usersService.isSuperAdmin(userId); + if (!isSuperAdmin) throw new BadRequestException(AdminMessage.NOT_ALLOWED); + const blog = await this.blogsRepository.findOneBy({ id }); if (!blog) throw new BadRequestException(BlogMessage.BLOG_NOT_FOUND); diff --git a/src/modules/users/providers/users.service.ts b/src/modules/users/providers/users.service.ts index 5ec0bdd..eaeaaa1 100755 --- a/src/modules/users/providers/users.service.ts +++ b/src/modules/users/providers/users.service.ts @@ -346,6 +346,7 @@ export class UsersService { const superAdmin = await this.userRepository.findOne({ where: { roles: { name: RoleEnum.SUPER_ADMIN } }, relations: { roles: true } }); return superAdmin; } + /************************************************************ */ async isSuperAdmin(adminId: string) { const user = await this.userRepository.findOne({ where: { id: adminId }, relations: { roles: true } });