Я реализую роли и разрешения для проекта и использую политики, но у меня возникает проблема, когда я хочу разрешить или запретить создание новых записей в таблице пациентов, очень простые вещи. У меня есть это в моем PatientPolicy
// Only the users with root or admin roles can create patients;
public function create(User $user){
return ($user->hasRole('root') || $user->hasRole('admin'));
}
// only the patient creator can edit the patient and see the edit button
public function update(User $user, Patient $patient){
return $user->id == $patient->user_id;
}
AuthServiceProvider
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
'App\Patient' => 'App\Policies\PatientPolicy'
];
Контроллер пациента
public function edit(Patient $patient){
if(Gate::denies('update', $patient)){
abort(403, 'No esta autorizado de estar aqui');
}
return view('patients.edit', compact('patient'));
}
public function create(){
if(Gate::denies('create')){
abort(403, 'Usted no esta autorizado para crear pacientes');
}
return view('patients.create');
}
и в моих взглядах
@can('create')
<li class="header">PROCESOS</li>
<li><a href="/paciente/create"><i class="fa fa-book"></i> <span>Apertura de Historia Clínica</span></a></li>
@endcan
Проблема в том, что политика создания всегда возвращает false даже для тех пользователей, которым должно быть разрешено выполнять действие, однако политика редактирования работает отлично. Я что-то упускаю?