php-commerce/View/Modal/Web/CheckoutCancel.php
Snider df167eb423
Some checks failed
CI / PHP 8.3 (pull_request) Failing after 3s
CI / PHP 8.4 (pull_request) Failing after 3s
fix(dx): add declare(strict_types=1) and fix PSR-12 compliance
Added missing strict_types declarations to 65 PHP files and ran
Laravel Pint to fix PSR-12 violations (ordered imports, unary
operator spacing, brace positioning, fully qualified strict types).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 09:08:03 +00:00

57 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Core\Mod\Commerce\View\Modal\Web;
use Core\Mod\Commerce\Models\Order;
use Core\Tenant\Models\User;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\Layout;
use Livewire\Component;
#[Layout('shared::layouts.checkout')]
class CheckoutCancel extends Component
{
public ?Order $order = null;
public string $orderNumber = '';
public function mount(?string $order = null): void
{
if ($order) {
$this->orderNumber = $order;
$foundOrder = Order::where('order_number', $order)->first();
// Verify ownership before exposing order details
if ($foundOrder && $this->authorizeOrder($foundOrder)) {
$this->order = $foundOrder;
}
}
}
/**
* Verify the current user is authorised to view this order.
*/
protected function authorizeOrder(Order $order): bool
{
$user = Auth::user();
if (! $user instanceof User) {
return false;
}
$workspace = $user->defaultHostWorkspace();
if (! $workspace) {
return false;
}
return $order->workspace_id === $workspace->id;
}
public function render()
{
return view('commerce::web.checkout.checkout-cancel');
}
}