##// END OF EJS Templates
Moves password param to user hash param so that it can be set using the User API....
Jean-Philippe Lang -
r4379:cde02954c845
parent child
Show More
@@ -101,7 +101,7 class UsersController < ApplicationController
101 101 @user.safe_attributes = params[:user]
102 102 @user.admin = params[:user][:admin] || false
103 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 106 # TODO: Similar to My#account
107 107 @user.mail_notification = params[:notification_option] || 'only_my_events'
@@ -127,6 +127,8 class UsersController < ApplicationController
127 127 else
128 128 @auth_sources = AuthSource.find(:all)
129 129 @notification_option = @user.mail_notification
130 # Clear password input
131 @user.password = @user.password_confirmation = nil
130 132
131 133 respond_to do |format|
132 134 format.html { render :action => 'new' }
@@ -152,8 +154,8 class UsersController < ApplicationController
152 154
153 155 @user.admin = params[:user][:admin] if params[:user][:admin]
154 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?)
156 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation]
157 if params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
158 @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation]
157 159 end
158 160 @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids]
159 161 @user.safe_attributes = params[:user]
@@ -170,8 +172,8 class UsersController < ApplicationController
170 172
171 173 if was_activated
172 174 Mailer.deliver_account_activated(@user)
173 elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil?
174 Mailer.deliver_account_information(@user, params[:password])
175 elsif @user.active? && params[:send_information] && !params[:user][:password].blank? && @user.auth_source_id.nil?
176 Mailer.deliver_account_information(@user, params[:user][:password])
175 177 end
176 178
177 179 respond_to do |format|
@@ -184,6 +186,8 class UsersController < ApplicationController
184 186 else
185 187 @auth_sources = AuthSource.find(:all)
186 188 @membership ||= Member.new
189 # Clear password input
190 @user.password = @user.password_confirmation = nil
187 191
188 192 respond_to do |format|
189 193 format.html { render :action => :edit }
@@ -25,11 +25,9
25 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 26 <% end %>
27 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>
29 <%= password_field_tag 'password', nil, :size => 25 %><br />
28 <p><%= f.password_field :password, :required => true, :size => 25 %><br />
30 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>
32 <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p>
30 <p><%= f.password_field :password_confirmation, :required => true, :size => 25 %></p>
33 31 </div>
34 32 </div>
35 33
@@ -152,6 +152,11 class UsersControllerTest < ActionController::TestCase
152 152 user = User.last
153 153 assert_equal 'none', user.mail_notification
154 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 160 end
156 161
157 162 context "when unsuccessful" do
@@ -194,13 +199,13 class UsersControllerTest < ActionController::TestCase
194 199 assert mail.body.include?(ll('fr', :notice_account_activated))
195 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 203 ActionMailer::Base.deliveries.clear
199 204 Setting.bcc_recipients = '1'
200 205
206 put :update, :id => 2, :user => {:password => 'newpass', :password_confirmation => 'newpass'}, :send_information => '1'
201 207 u = User.find(2)
202 put :update, :id => u.id, :user => {}, :password => 'newpass', :password_confirmation => 'newpass', :send_information => '1'
203 assert_equal User.hash_password('newpass'), u.reload.hashed_password
208 assert u.check_password?('newpass')
204 209
205 210 mail = ActionMailer::Base.deliveries.last
206 211 assert_not_nil mail
@@ -214,10 +219,10 class UsersControllerTest < ActionController::TestCase
214 219 u.auth_source = AuthSource.find(1)
215 220 u.save!
216 221
217 put :update, :id => u.id, :user => {:auth_source_id => ''}, :password => 'newpass', :password_confirmation => 'newpass'
222 put :update, :id => u.id, :user => {:auth_source_id => '', :password => 'newpass'}, :password_confirmation => 'newpass'
218 223
219 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 226 end
222 227
223 228 def test_edit_membership
@@ -54,13 +54,13 class ApiTest::UsersTest < ActionController::IntegrationTest
54 54 context "POST /users" do
55 55 context "with valid parameters" do
56 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 58 end
59 59
60 60 context ".xml" do
61 61 should_allow_api_authentication(:post,
62 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 64 {:success_code => :created})
65 65
66 66 should "create a user with the attributes" do
@@ -74,6 +74,7 class ApiTest::UsersTest < ActionController::IntegrationTest
74 74 assert_equal 'Lastname', user.lastname
75 75 assert_equal 'foo@example.net', user.mail
76 76 assert !user.admin?
77 assert user.check_password?('secret')
77 78
78 79 assert_response :created
79 80 assert_equal 'application/xml', @response.content_type
General Comments 0
You need to be logged in to leave comments. Login now