permission

This commit is contained in:
2026-02-04 20:43:28 +03:30
parent 14eeba4cfd
commit d4ae03fa4f
24 changed files with 175 additions and 110 deletions
+21 -3
View File
@@ -30,8 +30,9 @@ import { AdminService } from 'src/modules/admin/providers/admin.service';
import { OrderItem } from '../entities/order-item.entity';
import { UpdateOrderAsAdminDto } from '../dto/update-order.dto';
import { CreatePrintFormDto } from '../dto/create-print-form.dto';
import { Product } from 'src/modules/product/entities/product.entity';
import { FindOrderItemsDto } from '../dto/find-order-items.dto';
import { PermissionService } from 'src/modules/roles/providers/permissions.service';
import { PermissionEnum } from 'src/common/enums/permission.enum';
@Injectable()
@@ -51,6 +52,7 @@ export class OrderService {
private readonly eventEmitter: EventEmitter2,
private readonly adminRepository: AdminRepository,
private readonly paymentRepository: PaymentRepository,
private readonly permissionService: PermissionService,
) { }
async createOrderAsAdmin(adminId: string, dto: CreateOrderAsAdminDto) {
@@ -83,6 +85,7 @@ export class OrderService {
// return updateOrder
}
//TODO : clean
async updateOrderAsAdmin2(orderId: string, dto: UpdateOrderAsAdminDto) {
const order = await this.findOrderOrFail(orderId)
@@ -291,8 +294,23 @@ export class OrderService {
return orders
}
async findInvoicedOrdersAsAdmin(dto: FindOrdersDto) {
const orders = await this.orderRepository.findAllPaginated({ ...dto, isInvoiced: true, })
async findInvoicedOrdersAsAdmin(adminId: string, dto: FindOrdersDto) {
const canSeeAll = await this.adminService.hasPermission(adminId, PermissionEnum.VIEW_All_INVOICED_ORDERS)
let canSeeAsigned = false
if (!canSeeAll) {
canSeeAsigned = await this.adminService.hasPermission(adminId, PermissionEnum.VIEW_MY_ASSIGNED_INVOICED_REQUESTS)
}
if (!canSeeAsigned && !canSeeAll) {
throw new BadRequestException("You dont have Permission")
}
let designerId = canSeeAll ? undefined : adminId
const orders = await this.orderRepository.findAllPaginated({ ...dto, isInvoiced: true, designerId })
return orders
}