Commit e049e187809a31ff908d49e5ff70828a12623b04
Exists in
master
and in
4 other branches
Merge pull request #2991 from raphendyr/username_change_disablation
Add option to disable username changing
Showing
5 changed files
with
34 additions
and
25 deletions
Show diff stats
app/controllers/profiles_controller.rb
| @@ -51,7 +51,9 @@ class ProfilesController < ApplicationController | @@ -51,7 +51,9 @@ class ProfilesController < ApplicationController | ||
| 51 | end | 51 | end |
| 52 | 52 | ||
| 53 | def update_username | 53 | def update_username |
| 54 | - @user.update_attributes(username: params[:user][:username]) | 54 | + if @user.can_change_username? |
| 55 | + @user.update_attributes(username: params[:user][:username]) | ||
| 56 | + end | ||
| 55 | 57 | ||
| 56 | respond_to do |format| | 58 | respond_to do |format| |
| 57 | format.js | 59 | format.js |
app/models/user.rb
| @@ -234,6 +234,10 @@ class User < ActiveRecord::Base | @@ -234,6 +234,10 @@ class User < ActiveRecord::Base | ||
| 234 | keys.count == 0 | 234 | keys.count == 0 |
| 235 | end | 235 | end |
| 236 | 236 | ||
| 237 | + def can_change_username? | ||
| 238 | + Gitlab.config.gitlab.username_changing_enabled | ||
| 239 | + end | ||
| 240 | + | ||
| 237 | def can_create_project? | 241 | def can_create_project? |
| 238 | projects_limit > owned_projects.count | 242 | projects_limit > owned_projects.count |
| 239 | end | 243 | end |
app/views/profiles/account.html.haml
| @@ -53,29 +53,30 @@ | @@ -53,29 +53,30 @@ | ||
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | 55 | ||
| 56 | -%fieldset.update-username | ||
| 57 | - %legend | ||
| 58 | - Username | ||
| 59 | - %small.cred.pull-right | ||
| 60 | - Changing your username can have unintended side effects! | ||
| 61 | - = form_for @user, url: update_username_profile_path, method: :put, remote: true do |f| | ||
| 62 | - .padded | ||
| 63 | - = f.label :username | ||
| 64 | - .input | ||
| 65 | - = f.text_field :username, required: true | ||
| 66 | - | ||
| 67 | - %span.loading-gif.hide= image_tag "ajax_loader.gif" | ||
| 68 | - %span.update-success.cgreen.hide | ||
| 69 | - %i.icon-ok | ||
| 70 | - Saved | ||
| 71 | - %span.update-failed.cred.hide | ||
| 72 | - %i.icon-remove | ||
| 73 | - Failed | ||
| 74 | - %ul.cred | ||
| 75 | - %li It will change web url for personal projects. | ||
| 76 | - %li It will change the git path to repositories for personal projects. | ||
| 77 | - .input | ||
| 78 | - = f.submit 'Save username', class: "btn btn-save" | 56 | +- if current_user.can_change_username? |
| 57 | + %fieldset.update-username | ||
| 58 | + %legend | ||
| 59 | + Username | ||
| 60 | + %small.cred.pull-right | ||
| 61 | + Changing your username can have unintended side effects! | ||
| 62 | + = form_for @user, url: update_username_profile_path, method: :put, remote: true do |f| | ||
| 63 | + .padded | ||
| 64 | + = f.label :username | ||
| 65 | + .input | ||
| 66 | + = f.text_field :username, required: true | ||
| 67 | + | ||
| 68 | + %span.loading-gif.hide= image_tag "ajax_loader.gif" | ||
| 69 | + %span.update-success.cgreen.hide | ||
| 70 | + %i.icon-ok | ||
| 71 | + Saved | ||
| 72 | + %span.update-failed.cred.hide | ||
| 73 | + %i.icon-remove | ||
| 74 | + Failed | ||
| 75 | + %ul.cred | ||
| 76 | + %li It will change web url for personal projects. | ||
| 77 | + %li It will change the git path to repositories for personal projects. | ||
| 78 | + .input | ||
| 79 | + = f.submit 'Save username', class: "btn btn-save" | ||
| 79 | 80 | ||
| 80 | - if Gitlab.config.gitlab.signup_enabled | 81 | - if Gitlab.config.gitlab.signup_enabled |
| 81 | %fieldset.remove-account | 82 | %fieldset.remove-account |
| @@ -83,4 +84,4 @@ | @@ -83,4 +84,4 @@ | ||
| 83 | Remove account | 84 | Remove account |
| 84 | %small.cred.pull-right | 85 | %small.cred.pull-right |
| 85 | Before removing the account you must remove all projects! | 86 | Before removing the account you must remove all projects! |
| 86 | - = 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" | ||
| 87 | \ No newline at end of file | 87 | \ No newline at end of file |
| 88 | + = 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" |
config/gitlab.yml.example
| @@ -35,6 +35,7 @@ production: &base | @@ -35,6 +35,7 @@ production: &base | ||
| 35 | ## Project settings | 35 | ## Project settings |
| 36 | default_projects_limit: 10 | 36 | default_projects_limit: 10 |
| 37 | # signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled. | 37 | # signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled. |
| 38 | + # username_changing_enabled: false # default: true - User can change her username/namespace | ||
| 38 | 39 | ||
| 39 | ## Gravatar | 40 | ## Gravatar |
| 40 | gravatar: | 41 | gravatar: |
config/initializers/1_settings.rb
| @@ -57,6 +57,7 @@ Settings.gitlab['support_email'] ||= Settings.gitlab.email_from | @@ -57,6 +57,7 @@ Settings.gitlab['support_email'] ||= Settings.gitlab.email_from | ||
| 57 | Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) | 57 | Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) |
| 58 | Settings.gitlab['user'] ||= 'git' | 58 | Settings.gitlab['user'] ||= 'git' |
| 59 | Settings.gitlab['signup_enabled'] ||= false | 59 | Settings.gitlab['signup_enabled'] ||= false |
| 60 | +Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil? | ||
| 60 | 61 | ||
| 61 | # | 62 | # |
| 62 | # Gravatar | 63 | # Gravatar |