php-commerce/View/Modal/Web/CheckoutCancel.php
Claude 082be5ad90
Some checks failed
CI / tests (push) Failing after 1m25s
chore: fix pint code style and add test config
Add phpunit.xml and tests/Pest.php for standalone test execution.
Apply Laravel Pint formatting fixes across all source files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 03:50:05 +00:00

55 lines
1.3 KiB
PHP

<?php
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');
}
}