From d0355fdd43760958dbc1b4bf2dc64469dad2eb8d Mon Sep 17 00:00:00 2001 From: mblog Date: Mon, 13 Dec 2010 22:14:25 +0100 Subject: [PATCH] Feature #348: Change Email --- app/controllers/users_controller.rb | 8 ++++++++ app/models/user.rb | 2 +- app/views/users/edit.html.haml | 8 ++++++-- config/locales/diaspora/en.yml | 3 +++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 7a45d186c..27ba92eeb 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -21,6 +21,7 @@ class UsersController < ApplicationController params[:user].delete(:password) if params[:user][:password].blank? params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank? params[:user].delete(:language) if params[:user][:language].blank? + params[:user].delete(:email) if params[:user][:email].blank? # change email notifications if params[:user][:disable_mail] @@ -39,6 +40,13 @@ class UsersController < ApplicationController else flash[:error] = I18n.t 'users.update.language_not_changed' end + # change email + elsif params[:user][:email] + if @user.update_attributes(:email => params[:user][:email]) + flash[:notice] = I18n.t 'users.update.email_changed' + else + flash[:error] = I18n.t 'users.update.email_not_changed' + end end redirect_to edit_user_path(@user) diff --git a/app/models/user.rb b/app/models/user.rb index b5496f47d..46eb94392 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -61,7 +61,7 @@ class User person.save if person end - attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail + attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail, :email def strip_and_downcase_username if username.present? diff --git a/app/views/users/edit.html.haml b/app/views/users/edit.html.haml index 3a813eb82..887b8ad29 100644 --- a/app/views/users/edit.html.haml +++ b/app/views/users/edit.html.haml @@ -37,8 +37,12 @@ .span-8.last %h3 = t('.your_email') - %p - = current_user.email + = form_for @user do |f| + = f.error_messages + %p + = f.label :email, current_user.email + = f.text_field :email + = f.submit t('.change_email') %br %br diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index 4f42bb261..ab7567534 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -176,6 +176,7 @@ en: close_account: "Close Account" change_language: "Change Language" change_password: "Change Password" + change_email: "Change Email" new_password: "New Password" download_xml: "download my xml" download_photos: "download my photos" @@ -220,6 +221,8 @@ en: language_changed: "Language Changed" language_not_changed: "Language Change Failed" email_notifications_changed: "Language Change Failed" + email_changed: "Email Changed" + email_not_changed: "Email Change Failed" public: does_not_exist: "User %{username} does not exist!" comments: