单独滚动或我需要CanCan / Authority

时间:2014-01-11 03:00:16

标签: ruby-on-rails

我正在设计一个简单的博客系统,我是一个铁杆新手。

我想在我的应用程序中添加一个角色+授权系统,所以我期待CanCan,Rolify或Authority的某些组合。

此时我已经使用命名空间将adminpanel与前端分开了,我创建了一个简单的角色magamenent:在我的admin_controller中,我检查角色并授权访问。

class AdminController < ApplicationController
  layout 'admin/application'
  before_action :require_logged_admin

  protected

    def require_logged_admin
      unless signed_in? && current_user.can_access_admin?
        flash[:error] = "Only admins can access this section"
        redirect_to root_path
      end
    end
end

我只需要管理员(管理员/编辑)的几个角色和注册用户的几个角色(可以评论,不能评论):我可以只使用Rolify还是需要添加授权系统?在CanCan和Authority之间,这是一个易于实现的最佳解决方案(可以,不能)?

1 个答案:

答案 0 :(得分:1)

Rolify定义“角色”,正如您所说,管理员,编辑等。

CanCan(Authority)允许将某些访问权限连接到这些角色,这些访问权限通常绑定到您的(CRUD和自定义)操作。这样,您可以指定编辑器可以写入,而普通用户只能读取。换句话说,您定义角色 - 动作 - 和模型/对象之间的关系。 (您也可以将读数限制为某些对象,例如只限作者自己创建的文档)

根据您在问题中的描述,我建议同时使用Rolify和CanCan。我已经在几个项目中将Rolify与CanCan结合使用。他们是你所描述的那种项目的好团队!