不知道如果你还在工作,否则什么你究竟要完成的,而是绕过去处理用户的角色与权威人士的好办法正在与色器件来处理用户配置文件,并创建一个管理员帐户。管理员可以将特定用户的角色更改为您拥有的任何角色(即用户,贵宾,主持人,编辑者,管理员等)。天空是你希望你的应用有多种角色的复杂程度的限制。在用户模型中的使用“枚举”,将有助于引导你的角色选择:
class User < ActiveRecord::Base
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
这种方式,你可以设置一个新用户的默认角色是一个普通用户,然后管理员可以更新用户新用户应该扮演的角色。如果您想要一个更复杂的应用程序与多个公司/组,可以将其应用于多租户应用程序。然后评论家的政策和范围将起作用,以确定谁有权在您的应用中执行某些操作。例如:
- 管理员可以看到用户
- 管理员可以更改用户的角色
- 管理员和编辑器可以创建,编辑列表,删除,更新博客文章
- 普通用户无法看到用户
- 普通用户不能更改自己的角色
- 普通用户无法看到(或修改)其他用户的个人资料
- 的一般负责的列表Ÿ用户可以看到(和编辑)自己的用户配置文件
- 普通用户不能编辑,删除或更新的博客文章
- 一个普通的用户可以看到发布的博客文章
一个很好的资源要开始使用示例应用程序,请遵循Rails-devise-pundit示例应用程序,该示例应用程序将引导您使用用户角色设置相当好的事物。如果您更直观,则可以按照此YouTube视频进行操作:Rails Authorization with Pundit。如果您还想在创建用户角色时使用rspec进行测试,则该视频非常棒。
希望这个操纵你的,你要完成什么样的正确方向。