【发布时间】:2021-03-05 14:53:01
【问题描述】:
我有以下问题:
如果用户(非管理员)通过链接直接访问资源(例如我的资源文档),则可以查看该资源。
我已经修改了 indexquery,这样他们就无法在索引视图上看到资源,但是当他们尝试通过 url 直接访问它时,他们也应该得到 403。
我已经为我的文档资源创建了一个策略,并且我知道我必须以某种方式修改视图功能。
public function view(User $user, User $model){
return true;
// return canViewOwn($user);
}
我尝试在文档模型中创建自定义函数,如下所示:
public function canViewOwn($user){
// This should test whether the current requested resource has the same user Id
// as the currently logged in user
if($user->id == auth()->user()->id) {
return true;
}
}
我的资源有一个 BelongsTo 字段,它接受用户 ID,但我不知道如何在资源模型函数中检查它。
最终,用户应该只能看到自己或他创建的资源(通过 belongsTo 字段链接)。
感谢您的帮助,谢谢!
【问题讨论】:
标签: laravel laravel-nova laravel-authorization