Add option to disable username changing
This option allows to disable users from changing their username. This is very usefull in environments using strong internal authentication methods like ldap, pam or shibboleth. You can allow users to change theyr username in these environments, but then new users (users loging in first time) is blocked from gitlab is her username exists.
This commit is contained in:
parent
04186e9797
commit
ba65f2910b
5 changed files with 34 additions and 25 deletions
|
@ -51,7 +51,9 @@ class ProfilesController < ApplicationController
|
|||
end
|
||||
|
||||
def update_username
|
||||
@user.update_attributes(username: params[:user][:username])
|
||||
if @user.can_change_username?
|
||||
@user.update_attributes(username: params[:user][:username])
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
|
|
|
@ -234,6 +234,10 @@ class User < ActiveRecord::Base
|
|||
keys.count == 0
|
||||
end
|
||||
|
||||
def can_change_username?
|
||||
Gitlab.config.gitlab.username_changing_enabled
|
||||
end
|
||||
|
||||
def can_create_project?
|
||||
projects_limit > personal_projects.count
|
||||
end
|
||||
|
|
|
@ -53,29 +53,30 @@
|
|||
|
||||
|
||||
|
||||
%fieldset.update-username
|
||||
%legend
|
||||
Username
|
||||
%small.cred.pull-right
|
||||
Changing your username can have unintended side effects!
|
||||
= form_for @user, url: update_username_profile_path, method: :put, remote: true do |f|
|
||||
.padded
|
||||
= f.label :username
|
||||
.input
|
||||
= f.text_field :username, required: true
|
||||
|
||||
%span.loading-gif.hide= image_tag "ajax_loader.gif"
|
||||
%span.update-success.cgreen.hide
|
||||
%i.icon-ok
|
||||
Saved
|
||||
%span.update-failed.cred.hide
|
||||
%i.icon-remove
|
||||
Failed
|
||||
%ul.cred
|
||||
%li It will change web url for personal projects.
|
||||
%li It will change the git path to repositories for personal projects.
|
||||
.input
|
||||
= f.submit 'Save username', class: "btn btn-save"
|
||||
- if current_user.can_change_username?
|
||||
%fieldset.update-username
|
||||
%legend
|
||||
Username
|
||||
%small.cred.pull-right
|
||||
Changing your username can have unintended side effects!
|
||||
= form_for @user, url: update_username_profile_path, method: :put, remote: true do |f|
|
||||
.padded
|
||||
= f.label :username
|
||||
.input
|
||||
= f.text_field :username, required: true
|
||||
|
||||
%span.loading-gif.hide= image_tag "ajax_loader.gif"
|
||||
%span.update-success.cgreen.hide
|
||||
%i.icon-ok
|
||||
Saved
|
||||
%span.update-failed.cred.hide
|
||||
%i.icon-remove
|
||||
Failed
|
||||
%ul.cred
|
||||
%li It will change web url for personal projects.
|
||||
%li It will change the git path to repositories for personal projects.
|
||||
.input
|
||||
= f.submit 'Save username', class: "btn btn-save"
|
||||
|
||||
- if Gitlab.config.gitlab.signup_enabled
|
||||
%fieldset.remove-account
|
||||
|
@ -83,4 +84,4 @@
|
|||
Remove account
|
||||
%small.cred.pull-right
|
||||
Before removing the account you must remove all projects!
|
||||
= link_to 'Delete account', user_registration_path, confirm: "REMOVE #{current_user.name}? Are you sure?", method: :delete, class: "btn btn-remove delete-key btn-small pull-right"
|
||||
= link_to 'Delete account', user_registration_path, confirm: "REMOVE #{current_user.name}? Are you sure?", method: :delete, class: "btn btn-remove delete-key btn-small pull-right"
|
||||
|
|
|
@ -35,6 +35,7 @@ production: &base
|
|||
## Project settings
|
||||
default_projects_limit: 10
|
||||
# signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled.
|
||||
# username_changing_enabled: false # default: true - User can change her username/namespace
|
||||
|
||||
## Gravatar
|
||||
gravatar:
|
||||
|
|
|
@ -57,6 +57,7 @@ Settings.gitlab['support_email'] ||= Settings.gitlab.email_from
|
|||
Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url)
|
||||
Settings.gitlab['user'] ||= 'git'
|
||||
Settings.gitlab['signup_enabled'] ||= false
|
||||
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
|
||||
|
||||
#
|
||||
# Gravatar
|
||||
|
|
Loading…
Reference in a new issue