Extended UsersController#update method for changing password with minimal specs, added form to view and locales (en).
This commit is contained in:
parent
5b408ecca3
commit
602382e24e
4 changed files with 46 additions and 2 deletions
|
|
@ -53,6 +53,13 @@ class UsersController < ApplicationController
|
||||||
unless u[:a_ids] == ["home"]
|
unless u[:a_ids] == ["home"]
|
||||||
@user.aspects.where(:id => u[:a_ids]).update_all(:open => true)
|
@user.aspects.where(:id => u[:a_ids]).update_all(:open => true)
|
||||||
end
|
end
|
||||||
|
elsif u[:email]
|
||||||
|
@user.unconfirmed_email = u[:email]
|
||||||
|
if @user.save
|
||||||
|
flash[:notice] = I18n.t 'users.update.unconfirmed_email_changed'
|
||||||
|
else
|
||||||
|
flash[:error] = I18n.t 'users.update.unconfirmed_email_not_changed'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,15 @@
|
||||||
.span-5.last
|
.span-5.last
|
||||||
%h3
|
%h3
|
||||||
= t('.your_email')
|
= t('.your_email')
|
||||||
%p
|
= form_for 'user', :url => user_path, :html => { :method => :put } do |f|
|
||||||
= current_user.email
|
= f.error_messages
|
||||||
|
%p
|
||||||
|
= f.text_field :email, :value => @user.unconfirmed_email || @user.email
|
||||||
|
= f.submit t('.change_email')
|
||||||
|
%br
|
||||||
|
- if @user.unconfirmed_email.present?
|
||||||
|
%p= t('.email_awaiting_confirmation', :email => @user.email, :unconfirmed_email => @user.unconfirmed_email)
|
||||||
|
%br
|
||||||
|
|
||||||
%br
|
%br
|
||||||
%br
|
%br
|
||||||
|
|
|
||||||
|
|
@ -688,6 +688,7 @@ en:
|
||||||
close_account: "Close Account"
|
close_account: "Close Account"
|
||||||
change_language: "Change Language"
|
change_language: "Change Language"
|
||||||
change_password: "Change Password"
|
change_password: "Change Password"
|
||||||
|
change_email: "Change E-Mail"
|
||||||
new_password: "New Password"
|
new_password: "New Password"
|
||||||
current_password: "Current password"
|
current_password: "Current password"
|
||||||
download_xml: "download my xml"
|
download_xml: "download my xml"
|
||||||
|
|
@ -703,6 +704,7 @@ en:
|
||||||
private_message: "...you receive a private message?"
|
private_message: "...you receive a private message?"
|
||||||
liked: "...someone likes your post?"
|
liked: "...someone likes your post?"
|
||||||
change: "Change"
|
change: "Change"
|
||||||
|
email_awaiting_confirmation: "We have sent you an activation link to %{unconfirmed_email}. Till you follow this link and activate the new address, we will continue to use your original address %{email}."
|
||||||
destroy: "Account successfully closed."
|
destroy: "Account successfully closed."
|
||||||
getting_started:
|
getting_started:
|
||||||
welcome: "Welcome to Diaspora!"
|
welcome: "Welcome to Diaspora!"
|
||||||
|
|
@ -726,6 +728,8 @@ en:
|
||||||
language_changed: "Language Changed"
|
language_changed: "Language Changed"
|
||||||
language_not_changed: "Language Change Failed"
|
language_not_changed: "Language Change Failed"
|
||||||
email_notifications_changed: "Email notifications changed"
|
email_notifications_changed: "Email notifications changed"
|
||||||
|
unconfirmed_email_changed: "E-Mail Changed. Needs activation."
|
||||||
|
unconfirmed_email_not_changed: "E-Mail Change Failed"
|
||||||
public:
|
public:
|
||||||
does_not_exist: "User %{username} does not exist!"
|
does_not_exist: "User %{username} does not exist!"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,32 @@ describe UsersController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'email' do
|
||||||
|
it 'allow the user to change his (unconfirmed) email' do
|
||||||
|
put(:update, :id => @user.id, :user => { :email => "my@newemail.com"})
|
||||||
|
@user.reload
|
||||||
|
@user.unconfirmed_email.should eql("my@newemail.com")
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'informs the user about success' do
|
||||||
|
put(:update, :id => @user.id, :user => { :email => "my@newemail.com"})
|
||||||
|
request.flash[:notice].should eql(I18n.t('users.update.unconfirmed_email_changed'))
|
||||||
|
request.flash[:error].should be_blank
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'informs the user about failure' do
|
||||||
|
put(:update, :id => @user.id, :user => { :email => "my@newemailcom"})
|
||||||
|
request.flash[:error].should eql(I18n.t('users.update.unconfirmed_email_not_changed'))
|
||||||
|
request.flash[:notice].should be_blank
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'allow the user to change his (unconfirmed) email to blank (= abort confirmation)' do
|
||||||
|
put(:update, :id => @user.id, :user => { :email => ""})
|
||||||
|
@user.reload
|
||||||
|
@user.unconfirmed_email.should eql(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'email settings' do
|
describe 'email settings' do
|
||||||
it 'lets the user turn off mail' do
|
it 'lets the user turn off mail' do
|
||||||
par = {:id => @user.id, :user => {:email_preferences => {'mentioned' => 'true'}}}
|
par = {:id => @user.id, :user => {:email_preferences => {'mentioned' => 'true'}}}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue