如果在博客应用程序中使用Pundit进行授权,为用户和管理员设计具有不同用户表的身份验证,如何在以下情况下实施帖子策略:
- 用户可以更新自己的帖子
- 管理员可以更新任何人的帖子
在我在网上看到的示例中,似乎没有处理多个用户表(如管理员和用户)的规定。
拥有特定于各自表的用户策略和管理员策略很简单,但是PostPolicy如何实现如下功能:
def initialize(COULD BE A USER OR ADMIN, scope)
@user = USER OR ADMIN
@scope = scope
end
def update?
return true if user is either resource.user or ANY ADMIN
end
因为它们
在不同的表中,我假设用户和管理员也在不同的类中,你可以使用is_a?
来检查。
def update?
@user == resource.user || @user.is_a?(Admin)
end