40 lines
781 B
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,
|
|
);
|
|
}
|
|
}
|