需要有关自定义验证的帮助

时间:2011-07-26 05:08:00

标签: ruby-on-rails

嘿伙计们,我感谢railscasts.com创建了一些自定义身份验证,但我有点卡住,因为我需要限制用户编辑其他用户的个人资料。

这是我的authenticate_user和current_user方法:

private

def current_user
  @current_user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
end

def authenticate_user!
  if current_user.nil?
    redirect_to login_url, :alert => "You must first log in to access this page"
  end
end

这是我的 UsersController 中的before_filter:

before_filter :authenticate_user!, :only => [:edit, :update, :destroy]`

编辑:由于alock27修复了它。

我必须编辑我的users_controller并修改编辑操作,如下所示:

@user = User.find(params[:id]    
redirect_to root_url unless current_user == @user    

2 个答案:

答案 0 :(得分:1)

我想你想要这个:

Adding security on routes in Rails

您需要找到User by:id并检查current_user = @user

答案 1 :(得分:1)

您不必提供编辑,更新和销毁的ID:您已经拥有current_user。 编辑@user = User.find(id)而不是编辑current_user。因此,您的身份验证功能可确保用户只编辑自己的配置文件。