diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index cbac7613e597d3ec30c36508c59651225693e458..b7ee75619cb50428ee12327cfee4e9480e2163ab 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -1,6 +1,17 @@ class RegistrationsController < Devise::RegistrationsController before_filter :signup_enabled? + def destroy + if current_user.owned_projects.count > 0 + redirect_to account_profile_path, alert: "Remove projects and groups before removing account." and return + end + current_user.destroy + + respond_to do |format| + format.html { redirect_to new_user_session_path, notice: "Account successfully removed." } + end + end + private def signup_enabled? diff --git a/app/views/profiles/account.html.haml b/app/views/profiles/account.html.haml index 2ad000b815bd86cf36e85478b511e87c98adaa00..9f81fc8127ee4ab10ed821fbdf39ed6b0f0f58af 100644 --- a/app/views/profiles/account.html.haml +++ b/app/views/profiles/account.html.haml @@ -77,4 +77,10 @@ .input = f.submit 'Save username', class: "btn btn-save" - +- if Gitlab.config.gitlab.signup_enabled + %fieldset.update-username + %legend + 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" \ No newline at end of file