我正在设计一个简单的博客系统,我是一个铁杆新手。
我想在我的应用程序中添加一个角色+授权系统,所以我期待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之间,这是一个易于实现的最佳解决方案(可以,不能)?
答案 0 :(得分:1)
Rolify定义“角色”,正如您所说,管理员,编辑等。
CanCan(Authority)允许将某些访问权限连接到这些角色,这些访问权限通常绑定到您的(CRUD和自定义)操作。这样,您可以指定编辑器可以写入,而普通用户只能读取。换句话说,您定义角色 - 动作 - 和模型/对象之间的关系。 (您也可以将读数限制为某些对象,例如只限作者自己创建的文档)
根据您在问题中的描述,我建议同时使用Rolify和CanCan。我已经在几个项目中将Rolify与CanCan结合使用。他们是你所描述的那种项目的好团队!