Не работает Policy в Laravel
У меня в базе данных есть пользователи и клетки. У пользователей есть много клеток. Но т.к. у меня реализована система ролей(роль работника и администратора), то работнику нельзя получать все клетки, а только те, за которыми он закреплён. Я написал такую Policy:
public function viewAny(User $user)
{
return false;
}
/**
* Determine whether the user can view the model.
*
* @param \App\Models\User $user
* @param \App\Models\Cell $cell
* @return mixed
*/
public function view(User $user, Cell $cell)
{
return $user->id == $cell->user_id;
} // view.
Но авторизованный работник всё также может получить доступ ко всем клеткам в БД, политика почему-то не работает. Вот на всякий случай код из routes/api.php
Route::middleware('auth:api')->group(function (){
// Маршрутизация для админа.
Route::middleware('role:admin')->group(function (){
Route::apiResource('users', UsersController::class);
}); // group.
// Маршрутизация для работников.
Route::middleware('role:employee')->group(function (){
Route::apiResource('cells', CellsController::class);
}); // group
// Общая маршрутизация для авторизованых пользователей.
Route::get('current_user', [CurrentUserController::class, 'getUser']);
Route::get('current_user/role', [CurrentUserController::class, 'getRole']);
Route::get('current_user/cells', [CurrentUserController::class, 'getCells']);}); // group.
Я пишу REST API и авторизация у меня идёт по полю api_token у user