我设法通过以下方式检查控制器的身份验证用户:
before_filter :authenticate_user!, only: [:new, :edit]
我怎样才能让只有权限'admin'和'editor'的用户编辑和创建内容?
我想要一些像:
before_filter :current_user.rights == 'editor', only: [:new, :edit]
在db的列“权限”
中检查当前登录用户的值btw我正在使用设计,只有1个用户注册表。有一个用户权限的复选框(因为'type'不允许,我不想改变它)。
答案 0 :(得分:2)
您可以添加其他before_filter
before_filter :authorize_admin, :only => [...]
def authorize_admin
unless currenct_user.admin? # Add your logic here
redirect_to(root_path, :notice => 'You are not authorized') and return
end
end
如果有多个用户角色和权限,您可以尝试CanCan gem
答案 1 :(得分:1)
在这里使用cancan gem,你可以找到很好的文档https://github.com/ryanb/cancan 在为用户定义能力
之后,只有一行会为您完成load_and_authorize_resource
您可以选择仅将方法作为参数传递,但
除外