##// 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 @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 => ''}, :password => 'newpass', :password_confirmation => 'newpass'
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