【发布时间】:2020-03-29 09:02:06
【问题描述】:
我有一个画廊政策和一个照片政策、一个画廊控制器和一个照片控制器。
它是这样工作的:
user-> hasMany galleries -> hasMany photos
我确实有一个使用照片控制器的照片上传页面(带有 dropzone)。
网址是这样的:/gallery/3/upload
只有当用户是画廊 3 的所有者时,我才想限制对这个页面的访问。但是这个页面使用 PhotoPolicy,它使用了 Photo 模型,而不是 Gallery 模型。
如何使用 GalleryPolicy 而不是 PhotoPolicy 授权此页面?还是我必须从 GalleryPolicy 复制 view 方法并将其也包含在 PhotoPolicy 中?
编辑:
我不明白这个...
在我的照片政策中:
public function view(User $user, Photo $photo)
{
return false;
}
在我的照片控制器中:
$this->authorize('view', $photo);
在我的 AuthenticationServiceProvider 中:
protected $policies = [
\App\Gallery::class => \App\Policies\GalleryPolicy::class,
\App\Photo::class => \App\Policies\PhotoPolicy::class,
];
结果:页面加载正常..即使返回为假..为什么?
【问题讨论】: