2017-01-23 47 views
0

如果在博客应用程序中使用Pundit进行授权,请为用户和管理员使用不同用户表进行设计,如何实现邮政策略:使用Pundit for Rails 5使用两个不同的用户表进行授权(用户和管理员)

  • 用户可以更新自己的帖子
  • 管理员可以更新任何人的帖子

在我已经在网上看到的例子,似乎没有要处理多个用户表这样的规定作为管理员和用户。

有一个UserPolicy和AdminPolicy特定于各自的表很简单,但如何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 

回答

1

因为它们是在不同的表,我假设用户和管理员是也可以在不同的课程中使用is_a?进行检查。

def update? 
    @user == resource.user || @user.is_a?(Admin) 
end 
相关问题