summaryrefslogtreecommitdiff
path: root/app/controllers/admin
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-08-31 12:42:51 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-08-31 12:42:51 +0000
commita768e1b7048c17d4dde8ee086c7ff7dc2b43762e (patch)
tree6b26299905d37b61a011622ceab8bc6801ca0a2d /app/controllers/admin
parentbf4ec606a56238326bf4930c59d0ca82dd281cb7 (diff)
parent0ffa4772c21ee1c1ea8ea889a74a4c4b6b2f25db (diff)
downloadgitlab-ce-a768e1b7048c17d4dde8ee086c7ff7dc2b43762e.tar.gz
Merge branch '28938-password-change-workflow-for-admins' into 'master'
Changes the password change workflow for admins. Closes #28938 See merge request !13901
Diffstat (limited to 'app/controllers/admin')
-rw-r--r--app/controllers/admin/users_controller.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
index fa1bc72560e..a99563b7100 100644
--- a/app/controllers/admin/users_controller.rb
+++ b/app/controllers/admin/users_controller.rb
@@ -117,11 +117,14 @@ class Admin::UsersController < Admin::ApplicationController
user_params_with_pass = user_params.dup
if params[:user][:password].present?
- user_params_with_pass.merge!(
+ password_params = {
password: params[:user][:password],
- password_confirmation: params[:user][:password_confirmation],
- password_expires_at: Time.now
- )
+ password_confirmation: params[:user][:password_confirmation]
+ }
+
+ password_params[:password_expires_at] = Time.now unless changing_own_password?
+
+ user_params_with_pass.merge!(password_params)
end
respond_to do |format|
@@ -167,6 +170,10 @@ class Admin::UsersController < Admin::ApplicationController
protected
+ def changing_own_password?
+ user == current_user
+ end
+
def user
@user ||= User.find_by!(username: params[:id])
end