fix superadmin bug
Build and Deploy Docker Images / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-07-25 10:34:06 +03:30
parent 9e28dfd628
commit 7996617cf0
3 changed files with 8 additions and 6 deletions
@@ -33,6 +33,7 @@ import { TicketStatus } from "../enums/ticket-status.enum";
import { TicketCategoryRepository } from "../repositories/tickets-category.repository"; import { TicketCategoryRepository } from "../repositories/tickets-category.repository";
import { TicketMessagesRepository } from "../repositories/tickets-message.repository"; import { TicketMessagesRepository } from "../repositories/tickets-message.repository";
import { TicketsRepository } from "../repositories/tickets.repository"; import { TicketsRepository } from "../repositories/tickets.repository";
import { PermissionEnum } from "../../users/enums/permission.enum";
@Injectable() @Injectable()
export class TicketsService implements OnModuleInit { export class TicketsService implements OnModuleInit {
@@ -326,10 +327,10 @@ export class TicketsService implements OnModuleInit {
return { tickets, count, paginate: true }; return { tickets, count, paginate: true };
} }
//******************************** */ //******************************** */
async getTicketForAdmin(queryDto: SearchTicketQueryDto, adminId: string) { async getTicketForAdmin(queryDto: SearchTicketQueryDto, adminPermissions: PermissionEnum[],adminId: string) {
const isSuperAdmin = await this.usersService.isSuperAdmin(adminId); const canSeeAllTickets = adminPermissions.includes(PermissionEnum.TICKETS_READ);
const [tickets, count] = await this.ticketsRepository.findTicketsListForAdmin(queryDto, adminId, isSuperAdmin); const [tickets, count] = await this.ticketsRepository.findTicketsListForAdmin(queryDto, adminId, canSeeAllTickets);
return { tickets, count, paginate: true }; return { tickets, count, paginate: true };
} }
+3 -3
View File
@@ -15,6 +15,7 @@ import { PermissionsDec } from "../../common/decorators/permission.decorator";
import { IUserIpAndHeaders, UserDec, UserIpAndHeaders } from "../../common/decorators/user.decorator"; import { IUserIpAndHeaders, UserDec, UserIpAndHeaders } from "../../common/decorators/user.decorator";
import { ParamDto } from "../../common/DTO/param.dto"; import { ParamDto } from "../../common/DTO/param.dto";
import { PermissionEnum } from "../users/enums/permission.enum"; import { PermissionEnum } from "../users/enums/permission.enum";
import { ITokenPayload } from "../auth/interfaces/IToken-payload";
@Controller("tickets") @Controller("tickets")
@ApiTags("Tickets") @ApiTags("Tickets")
@AuthGuards() @AuthGuards()
@@ -88,10 +89,9 @@ export class TicketsController {
@ApiOperation({ summary: "Get all tickets ==> admin route" }) @ApiOperation({ summary: "Get all tickets ==> admin route" })
@AdminRoute() @AdminRoute()
@PermissionsDec(PermissionEnum.TICKETS_READ)
@Get("admin") @Get("admin")
getAllTickets(@Query() queryDto: SearchTicketQueryDto, @UserDec("id") adminId: string) { getAllTickets(@Query() queryDto: SearchTicketQueryDto, @UserDec() admin: ITokenPayload) {
return this.ticketsService.getTicketForAdmin(queryDto, adminId); return this.ticketsService.getTicketForAdmin(queryDto, admin.permissions, admin.id);
} }
@ApiOperation({ summary: "create ticket messages" }) @ApiOperation({ summary: "create ticket messages" })
@@ -359,6 +359,7 @@ export class UsersService {
async isSuperAdmin(adminId: string) { async isSuperAdmin(adminId: string) {
const user = await this.userRepository.findOne({ where: { id: adminId }, relations: { roles: true } }); const user = await this.userRepository.findOne({ where: { id: adminId }, relations: { roles: true } });
if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND); if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND);
console.log("user.roles", user.roles.map((role) => role.name));
return user.roles.some((role) => role.name === RoleEnum.SUPER_ADMIN); return user.roles.some((role) => role.name === RoleEnum.SUPER_ADMIN);
} }