Может 'создать политику для модели пользователя.
Я создал Политику, подобную этой
php artisan make:policy UserPolicy --model=User
Получил UserPolicy.php с действиями CRUD.
Затем внутри AuthServiceProvider.php я добавил
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];
Но ничего не происходит. Как я понимаю, сгенерированная модель Policy for User по умолчанию возвращает false при каждом действии, я даже явно добавил это в класс UserPolicy:
public function create(User $user)
{
return false;
}
Еще можно создать пользователя.
Позже мне нужно будет проверить, пытается ли пользователь редактировать свой пост или нет. Для пользователей без прав администратора все должно быть запрещено, кроме редактирования собственного профиля (модели).
Я, должно быть, упускаю что-то очевидное.
UPDATE:
Если я поставлю
$this->authorize('create', $user);
В методе создания UsersController он вызывает метод создания политики, поэтому он обнаруживает, что что-то не так с
...
use App\Policies\UserPolicy;
use App\User;
...
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];
внутри AuthServiceProvider.