【发布时间】:2020-11-25 16:33:02
【问题描述】:
场景是我希望能够独立于其他用户来管理员工用户类型。只有员工才能看到员工资源并与之交互,其他用户类型不得访问它。
所以我有App\Nova\User 和App\Nova\Staff 资源,它们的$model 属性指向App\Models\User 模型。这很好用,可以完成我需要做的所有事情。
我现在遇到的问题是权限问题。我也在一些地方使用了 Laravel 的策略,并且想在这里做同样的事情,但是我不知道如何专门为 Staff 资源制定策略,因为它引用了 User 模型? 我基本上不希望非员工用户能够查看任何内容,或对员工执行任何 CRUD 操作。我相信我可以从侧边栏中隐藏员工,但我的理解是用户仍然可以通过 URL 访问它。
我知道我可以创建一个扩展 User 模型的 Staff 模型,然后我的 Nova 资源可以指向那个新的 Staff 模型,但我遇到了问题,因为在使用 @987654325 之前,我最初是这样设置它的@ 用于用户角色/权限。
我还想为其他一些用户类型创建资源,以便可以独立管理它们,即使它们都在同一个用户表中。我最终会得到像员工这样的超级管理员,另一种用户类型的客户管理员可以看到他们客户中的所有用户,所以他们可能会看到“员工”资源,就像上面一样,只有客户管理员应该能够看到这一点,当然也只能在其中看到自己的员工。
这是我第一次使用 Nova,非常感谢任何帮助。
【问题讨论】:
标签: laravel laravel-nova