Сценарий такой: я хочу иметь возможность управлять типами сотрудников-пользователей независимо от других пользователей. Только сотрудники должны иметь возможность видеть и взаимодействовать с кадровым ресурсом, и никакой другой тип пользователей не должен иметь к нему доступа.
Итак, у меня есть ресурсы App\Nova\User
и App\Nova\Staff
, и оба из них имеют свои $model
свойство, указывающее на модель App\Models\User
. Это отлично работает и делает все, что мне нужно.
Проблема, с которой я столкнулся, связана с разрешениями. Я также иногда использую политики Laravel и хотел бы сделать то же самое здесь, но я не знаю, как создать политику специально для ресурса Staff, потому что он ссылается на модель User? По сути, я не хочу, чтобы внештатные пользователи могли просматривать какие-либо или выполнять какие-либо операции CRUD с персоналом. Я считаю, что могу скрыть персонал на боковой панели, но я понимаю, что пользователь все еще может получить к нему доступ по URL-адресу.
Я знаю, что могу создать модель персонала, которая расширяет модель пользователя, и тогда мой ресурс Nova может указывать к этой новой модели персонала, но у меня были проблемы с ней, так как я ее изначально настроил, до использования spatie/laravel-permissions
для ролей / разрешений пользователей.
У меня есть несколько других типов пользователей, которых я бы любят создавать ресурсы для них, чтобы ими можно было управлять независимо, даже если они все находятся в одной таблице пользователей. В итоге у меня будет что-то вроде суперадминистратора, с другим пользовательским типом администратора клиента, который может видеть всех пользователей своего клиента, поэтому они могут видеть ресурс `` Сотрудник '', и, как указано выше, только администраторы клиентов должны быть в состоянии видеть это, и, конечно же, видеть в нем только своих сотрудников.
Я впервые использую Nova, поэтому любая помощь приветствуется.