【问题标题】:Rails 4 Authentication model with roles带有角色的 Rails 4 身份验证模型
【发布时间】:2015-05-16 17:54:14
【问题描述】:

我是 Rails 世界的初学者,所以希望我能在这里找到答案。 我正在处理的项目必须具有角色的用户授权,对于简单用户和管理员。拥有管理员权限,我希望能够为简单用户重置密码或为他们添加角色。

我试图将 Devise 与 cancancan gems 一起应用,但不幸的是,无法使其工作,我不确定这是否可能。所以我的问题是你会推荐哪些宝石有这样的行为。还是从头开始更简单?

感谢您的回答。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 devise ruby-on-rails-4.2 cancancan


    【解决方案1】:

    听起来您会从 Rolify Gem 中受益:https://github.com/RolifyCommunity/rolify。我很确定 CanCan 是基于角色的访问控制。我猜您已经看过这个 RailsCast:http://railscasts.com/episodes/192-authorization-with-cancan,但您缺少的部分似乎是 Rolify。这是一个很棒的宝石,而且非常易于使用。

    【讨论】:

      【解决方案2】:

      我已将 Pundit 与 Devise 一起使用

      This is the repo to the application

      添加 gem 和 bundle。运行rails g pundit:install 它将生成一个包含 application_policy.rb 文件的策略文件夹。在那里您可以定义操作的条件。假设您要确保用户的角色是管理员以查看应用程序索引 def index? user.role == "admin" end 如果您想为不同的资源创建策略,请说帖子。您必须在策略文件夹中创建一个 post_policy.rb 文件

      【讨论】:

      • 我仍然觉得 OP 完全缺少 Rolify 或类似的解决方案。
      • 你是对的。 OP 在使用 can can 或 pundit 之前必须先设置角色。
      猜你喜欢
      • 2020-11-20
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 2016-09-23
      • 2013-12-26
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      相关资源
      最近更新 更多