我有一个JSON API设置,我想让用户只为自己创建地址。
在文档中,它显示在创建资源时,策略中没有要检查的请求。
关系验证也只适用于更新,而不是创建,所以我不太明白我怎么能说“只有授权用户创建一个地址,如果关系是他们自己的用户ID”以类似的方式更新方法。
策略示例:
class AddressPolicy
{
use HandlesAuthorization;
public function update(User $requestingUser, Address $address): bool
{
// User may update their own address if they do not have permission to edit all addresses
return $requestingUser->is($address->user) || $requestingUser->can('edit addresses');
}
public function create(User $requestingUser): bool
{
// Check if requestingUser is creating an address for themselves?
return $requestingUser->can('create addresses');
}
}
我能看到的唯一选项是为此创建一个custom controller action,但感觉应该可以通过策略验证或类似方法来完成。
1条答案
按热度按时间ql3eal8s1#
将创建方法更新为以下内容: