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:
Jaakko Kantojärvi 2013-01-30 22:14:34 +02:00
parent 04186e9797
commit ba65f2910b
5 changed files with 34 additions and 25 deletions

View file

@ -51,7 +51,9 @@ class ProfilesController < ApplicationController
end end
def update_username def update_username
if @user.can_change_username?
@user.update_attributes(username: params[:user][:username]) @user.update_attributes(username: params[:user][:username])
end
respond_to do |format| respond_to do |format|
format.js format.js

View file

@ -234,6 +234,10 @@ class User < ActiveRecord::Base
keys.count == 0 keys.count == 0
end end
def can_change_username?
Gitlab.config.gitlab.username_changing_enabled
end
def can_create_project? def can_create_project?
projects_limit > personal_projects.count projects_limit > personal_projects.count
end end

View file

@ -53,6 +53,7 @@
- if current_user.can_change_username?
%fieldset.update-username %fieldset.update-username
%legend %legend
Username Username

View file

@ -35,6 +35,7 @@ production: &base
## Project settings ## Project settings
default_projects_limit: 10 default_projects_limit: 10
# signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled. # 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
gravatar: gravatar:

View file

@ -57,6 +57,7 @@ Settings.gitlab['support_email'] ||= Settings.gitlab.email_from
Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url)
Settings.gitlab['user'] ||= 'git' Settings.gitlab['user'] ||= 'git'
Settings.gitlab['signup_enabled'] ||= false Settings.gitlab['signup_enabled'] ||= false
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
# #
# Gravatar # Gravatar