ldc-boutique-cnc-sable/app/Policies/Frontend/OrderPolicy.php

40 lines
781 B
PHP

<?php
declare(strict_types=1);
namespace App\Policies\Frontend;
use App\Dto\OrderDto;
use App\Models\Customer;
use App\Models\Order;
use App\Models\User;
use App\Services\OrderService;
class OrderPolicy
{
public function __construct(
private readonly OrderService $orderService
) {
}
public function viewAnyOwn(null | User | Customer $user): bool
{
if ($user instanceof User) {
return false;
}
return true;
}
public function viewOwn(null | User | Customer $user, Order | OrderDto $order): bool
{
if ($user === null || $user instanceof User) {
return false;
}
return $this->orderService->isOrderOwnedBy(
$order,
$user,
);
}
}