У меня есть простая пользовательская модель со страницей редактирования. В настоящее время вы можете изменить свой адрес электронной почты и пароль (с подтверждением пароля), но в настоящее время я не требую, чтобы вы вводили пароль еще раз, прежде чем изменять какую-либо эту информацию.
У меня есть фильтр до, который требует, чтобы вы вошли в систему, а также фильтр до, чтобы вы могли редактировать только свой собственный профиль. Однако в случае общедоступных компьютеров я хотел бы повторно аутентифицировать пользователя, заставив его ввести свой пароль.
Я использую волшебство для подтверждения своей аутентификации. Как бы я поступил так? Я не вижу методов для проверки пароля после входа в систему. Ниже приведен мой текущий users_controller
class UsersController < ApplicationController
before_filter :require_login, :only => [ :edit, :update ]
before_filter :correct_user, :only => [ :edit, :update ]
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_url, :notice => "Signed up!"
login_user(@user)
else
render :new
end
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "Profile updated."
redirect_to root_url
else
render 'edit'
end
end
private
def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user == @user
end
end