2011-09-14 10 views
2

私は編集ページを持つ簡単なユーザーモデルを持っています。現在、あなたは電子メールとパスワードを変更することができます(パスワード確認あり)。しかし、その情報を変更する前にパスワードをもう一度入力する必要はありません。ソーサリーを使用してユーザー情報を変更するためのパスワードが必要です

自分のプロファイルのみを編集できるようにするには、以前のフィルタと同様にログインする必要があるフィルタがあります。しかし、公共のコンピュータの場合は、パスワードを入力することでユーザーを再認証したいと考えています。

私はsorceryを使用して私の認証を取り戻しています。私はこれをどうやってやりますか?私がログインした後にパスワードをチェックするための任意の方法が表示されません。以下は、私の現在の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 

答えて

関連する問題