33 lines
837 B
PHP
33 lines
837 B
PHP
<?php
|
|
|
|
namespace App\Livewire\Concerns;
|
|
|
|
use App\Models\Customer;
|
|
|
|
/**
|
|
* Resolves the customer behind the signed-in portal user.
|
|
*
|
|
* Operator accounts (admins) have no Customer, so customer-scoped actions must
|
|
* NOT silently no-op — that reads as a dead button. requireCustomer() surfaces
|
|
* an explicit message instead and returns null so the caller can bail.
|
|
*/
|
|
trait ResolvesCustomer
|
|
{
|
|
protected function customer(): ?Customer
|
|
{
|
|
return Customer::forUser(auth()->user());
|
|
}
|
|
|
|
/** Same as customer(), but tells the user why nothing happened. */
|
|
protected function requireCustomer(): ?Customer
|
|
{
|
|
$customer = $this->customer();
|
|
|
|
if ($customer === null) {
|
|
$this->dispatch('notify', message: __('dashboard.no_customer_action'));
|
|
}
|
|
|
|
return $customer;
|
|
}
|
|
}
|