From 96004b327028d7abe4d51c370daa18e413526eb8 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 16:26:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/my_controller.rb | 36 ++++++++++++++++++++++++-------- app/services/users_service.rb | 15 +++++++++++++ 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index 308cb62ca..88c59f9d7 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -179,17 +179,35 @@ class MyController < ApplicationController return end if request.post? - if @user.check_password?(params[:password]) - @user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] - - if @user.save - flash.now[:notice] = l(:notice_account_password_updated) - redirect_to my_account_url - end - else - flash.now[:error] = l(:notice_account_wrong_password) + us = UsersService.new + @user = us.change_password params.merge(:current_user_id => @user.id) + if @user.errors.full_messages.count <= 0 + flash.now[:notice] = l(:notice_account_password_updated) + redirect_to my_account_url end end + rescue Exception => e + if e.message == 'wrong password' + flash.now[:error] = l(:notice_account_wrong_password) + end + # @user = User.current + # unless @user.change_password_allowed? + # flash.now[:error] = l(:notice_can_t_change_password) + # redirect_to my_account_url + # return + # end + # if request.post? + # if @user.check_password?(params[:password]) + # @user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] + # + # if @user.save + # flash.now[:notice] = l(:notice_account_password_updated) + # redirect_to my_account_url + # end + # else + # flash.now[:error] = l(:notice_account_wrong_password) + # end + # end end # Create a new feeds key diff --git a/app/services/users_service.rb b/app/services/users_service.rb index b6e831e32..9587427b5 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -111,4 +111,19 @@ class UsersService User.watched_by(@user.id) end + #修改密码 + def change_password params + @current_user = User.find(params[:current_user_id]) + if @current_user.check_password?(params[:password]) + @current_user.password, @current_user.password_confirmation = params[:new_password], params[:new_password_confirmation] + @current_user.save + #raise @current_user.errors.full_message + #return @current_user + + else + raise 'wrong password' + end + @current_user + end + end