Hej,
mam trzy encje:
user: id, customer_id
customer: id......
location: id, customer_id
i teraz chciałbym pozwolić na edycję tylko swoich lokalizacji.
class UserPolicy
{
use HandlesAuthorization;
public function locationAccess(User $user, $locationId)
{
$userLocations = $user->customer->locations;
if ($user->hasAnyRole([User::ROLE_ADMINISTRATOR])) {
return true;
}
die($locationId); // tutaj mam pusto gdy nie jestem adminem
return $userLocations->contains('id', $locationId);
}
}
wywołanie w kontrolerze
$this->authorize('locationAccess', [Location::class, $locationRequest->id]);
zarejestrowalem tak
Location::class => UserPolicy::class
wg mnie nie potrzebuję przekazywać modelu. Pytanie jak przekazać id edytowanej lokalizacji do polityki?