@@ -101,7 +101,7 class UsersController < ApplicationController | |||||
101 | @user.safe_attributes = params[:user] |
|
101 | @user.safe_attributes = params[:user] | |
102 | @user.admin = params[:user][:admin] || false |
|
102 | @user.admin = params[:user][:admin] || false | |
103 | @user.login = params[:user][:login] |
|
103 | @user.login = params[:user][:login] | |
104 | @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id |
|
104 | @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation] unless @user.auth_source_id | |
105 |
|
105 | |||
106 | # TODO: Similar to My#account |
|
106 | # TODO: Similar to My#account | |
107 | @user.mail_notification = params[:notification_option] || 'only_my_events' |
|
107 | @user.mail_notification = params[:notification_option] || 'only_my_events' | |
@@ -127,6 +127,8 class UsersController < ApplicationController | |||||
127 | else |
|
127 | else | |
128 | @auth_sources = AuthSource.find(:all) |
|
128 | @auth_sources = AuthSource.find(:all) | |
129 | @notification_option = @user.mail_notification |
|
129 | @notification_option = @user.mail_notification | |
|
130 | # Clear password input | |||
|
131 | @user.password = @user.password_confirmation = nil | |||
130 |
|
132 | |||
131 | respond_to do |format| |
|
133 | respond_to do |format| | |
132 | format.html { render :action => 'new' } |
|
134 | format.html { render :action => 'new' } | |
@@ -152,8 +154,8 class UsersController < ApplicationController | |||||
152 |
|
154 | |||
153 | @user.admin = params[:user][:admin] if params[:user][:admin] |
|
155 | @user.admin = params[:user][:admin] if params[:user][:admin] | |
154 | @user.login = params[:user][:login] if params[:user][:login] |
|
156 | @user.login = params[:user][:login] if params[:user][:login] | |
155 | if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) |
|
157 | if params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) | |
156 | @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] |
|
158 | @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation] | |
157 | end |
|
159 | end | |
158 | @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids] |
|
160 | @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids] | |
159 | @user.safe_attributes = params[:user] |
|
161 | @user.safe_attributes = params[:user] | |
@@ -170,8 +172,8 class UsersController < ApplicationController | |||||
170 |
|
172 | |||
171 | if was_activated |
|
173 | if was_activated | |
172 | Mailer.deliver_account_activated(@user) |
|
174 | Mailer.deliver_account_activated(@user) | |
173 | elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil? |
|
175 | elsif @user.active? && params[:send_information] && !params[:user][:password].blank? && @user.auth_source_id.nil? | |
174 | Mailer.deliver_account_information(@user, params[:password]) |
|
176 | Mailer.deliver_account_information(@user, params[:user][:password]) | |
175 | end |
|
177 | end | |
176 |
|
178 | |||
177 | respond_to do |format| |
|
179 | respond_to do |format| | |
@@ -184,6 +186,8 class UsersController < ApplicationController | |||||
184 | else |
|
186 | else | |
185 | @auth_sources = AuthSource.find(:all) |
|
187 | @auth_sources = AuthSource.find(:all) | |
186 | @membership ||= Member.new |
|
188 | @membership ||= Member.new | |
|
189 | # Clear password input | |||
|
190 | @user.password = @user.password_confirmation = nil | |||
187 |
|
191 | |||
188 | respond_to do |format| |
|
192 | respond_to do |format| | |
189 | format.html { render :action => :edit } |
|
193 | format.html { render :action => :edit } |
@@ -25,11 +25,9 | |||||
25 | <p><%= f.select :auth_source_id, ([[l(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }), {}, :onchange => "if (this.value=='') {Element.show('password_fields');} else {Element.hide('password_fields');}" %></p> |
|
25 | <p><%= f.select :auth_source_id, ([[l(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }), {}, :onchange => "if (this.value=='') {Element.show('password_fields');} else {Element.hide('password_fields');}" %></p> | |
26 | <% end %> |
|
26 | <% end %> | |
27 | <div id="password_fields" style="<%= 'display:none;' if @user.auth_source %>"> |
|
27 | <div id="password_fields" style="<%= 'display:none;' if @user.auth_source %>"> | |
28 | <p><label for="password"><%=l(:field_password)%><span class="required"> *</span></label> |
|
28 | <p><%= f.password_field :password, :required => true, :size => 25 %><br /> | |
29 | <%= password_field_tag 'password', nil, :size => 25 %><br /> |
|
|||
30 | <em><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p> |
|
29 | <em><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p> | |
31 | <p><label for="password_confirmation"><%=l(:field_password_confirmation)%><span class="required"> *</span></label> |
|
30 | <p><%= f.password_field :password_confirmation, :required => true, :size => 25 %></p> | |
32 | <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p> |
|
|||
33 | </div> |
|
31 | </div> | |
34 | </div> |
|
32 | </div> | |
35 |
|
33 |
@@ -152,6 +152,11 class UsersControllerTest < ActionController::TestCase | |||||
152 | user = User.last |
|
152 | user = User.last | |
153 | assert_equal 'none', user.mail_notification |
|
153 | assert_equal 'none', user.mail_notification | |
154 | end |
|
154 | end | |
|
155 | ||||
|
156 | should 'set the password' do | |||
|
157 | user = User.first(:order => 'id DESC') | |||
|
158 | assert user.check_password?('test') | |||
|
159 | end | |||
155 | end |
|
160 | end | |
156 |
|
161 | |||
157 | context "when unsuccessful" do |
|
162 | context "when unsuccessful" do | |
@@ -194,13 +199,13 class UsersControllerTest < ActionController::TestCase | |||||
194 | assert mail.body.include?(ll('fr', :notice_account_activated)) |
|
199 | assert mail.body.include?(ll('fr', :notice_account_activated)) | |
195 | end |
|
200 | end | |
196 |
|
201 | |||
197 | def test_updat_with_password_change_should_send_a_notification |
|
202 | def test_update_with_password_change_should_send_a_notification | |
198 | ActionMailer::Base.deliveries.clear |
|
203 | ActionMailer::Base.deliveries.clear | |
199 | Setting.bcc_recipients = '1' |
|
204 | Setting.bcc_recipients = '1' | |
200 |
|
205 | |||
|
206 | put :update, :id => 2, :user => {:password => 'newpass', :password_confirmation => 'newpass'}, :send_information => '1' | |||
201 | u = User.find(2) |
|
207 | u = User.find(2) | |
202 | put :update, :id => u.id, :user => {}, :password => 'newpass', :password_confirmation => 'newpass', :send_information => '1' |
|
208 | assert u.check_password?('newpass') | |
203 | assert_equal User.hash_password('newpass'), u.reload.hashed_password |
|
|||
204 |
|
209 | |||
205 | mail = ActionMailer::Base.deliveries.last |
|
210 | mail = ActionMailer::Base.deliveries.last | |
206 | assert_not_nil mail |
|
211 | assert_not_nil mail | |
@@ -214,10 +219,10 class UsersControllerTest < ActionController::TestCase | |||||
214 | u.auth_source = AuthSource.find(1) |
|
219 | u.auth_source = AuthSource.find(1) | |
215 | u.save! |
|
220 | u.save! | |
216 |
|
221 | |||
217 |
put :update, :id => u.id, :user => {:auth_source_id => '' |
|
222 | put :update, :id => u.id, :user => {:auth_source_id => '', :password => 'newpass'}, :password_confirmation => 'newpass' | |
218 |
|
223 | |||
219 | assert_equal nil, u.reload.auth_source |
|
224 | assert_equal nil, u.reload.auth_source | |
220 | assert_equal User.hash_password('newpass'), u.reload.hashed_password |
|
225 | assert u.check_password?('newpass') | |
221 | end |
|
226 | end | |
222 |
|
227 | |||
223 | def test_edit_membership |
|
228 | def test_edit_membership |
@@ -54,13 +54,13 class ApiTest::UsersTest < ActionController::IntegrationTest | |||||
54 | context "POST /users" do |
|
54 | context "POST /users" do | |
55 | context "with valid parameters" do |
|
55 | context "with valid parameters" do | |
56 | setup do |
|
56 | setup do | |
57 | @parameters = {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net'}} |
|
57 | @parameters = {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret'}} | |
58 | end |
|
58 | end | |
59 |
|
59 | |||
60 | context ".xml" do |
|
60 | context ".xml" do | |
61 | should_allow_api_authentication(:post, |
|
61 | should_allow_api_authentication(:post, | |
62 | '/users.xml', |
|
62 | '/users.xml', | |
63 | {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net'}}, |
|
63 | {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret'}}, | |
64 | {:success_code => :created}) |
|
64 | {:success_code => :created}) | |
65 |
|
65 | |||
66 | should "create a user with the attributes" do |
|
66 | should "create a user with the attributes" do | |
@@ -74,6 +74,7 class ApiTest::UsersTest < ActionController::IntegrationTest | |||||
74 | assert_equal 'Lastname', user.lastname |
|
74 | assert_equal 'Lastname', user.lastname | |
75 | assert_equal 'foo@example.net', user.mail |
|
75 | assert_equal 'foo@example.net', user.mail | |
76 | assert !user.admin? |
|
76 | assert !user.admin? | |
|
77 | assert user.check_password?('secret') | |||
77 |
|
78 | |||
78 | assert_response :created |
|
79 | assert_response :created | |
79 | assert_equal 'application/xml', @response.content_type |
|
80 | assert_equal 'application/xml', @response.content_type |
General Comments 0
You need to be logged in to leave comments.
Login now