【发布时间】:2010-10-19 08:05:41
【问题描述】:
我在我的 Rails 应用程序中使用了 Devise,但我不知道现在如何锁定它,因此用户只能在用户表和属于用户的表中编辑他们自己的记录。
我在这里缺少什么?这是在控制器还是模型中完成?
【问题讨论】:
标签: ruby-on-rails authentication devise
我在我的 Rails 应用程序中使用了 Devise,但我不知道现在如何锁定它,因此用户只能在用户表和属于用户的表中编辑他们自己的记录。
我在这里缺少什么?这是在控制器还是模型中完成?
【问题讨论】:
标签: ruby-on-rails authentication devise
我会在 application_controller 中为 current_user 创建一个助手,并删除 User.find 的使用
创建授权的最简单方法是使用布尔标志(管理员真/假)。对于其他简单的解决方案是 cancan,如 Yannis 或 easy_roles KISS 所提到的,建议开始使用。您可以像这样实现编辑操作
def edit
if current_user.is_admin?
User.find(params[:id])
else
current_user
end
end
application_controller.rb
def current_user
UserSession.find
end
要限制用户的访问,就像用户拥有自己的任务一样,请执行此操作。
def index
@tasks = current_user.tasks
end
【讨论】:
Devise 是一种身份验证解决方案。您现在需要一个授权系统。看看 Ryan Bates CanCan (github, railscasts)。
【讨论】: