X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/1f8df781be6788a43e0a76a9874366930473f64c..c446ca287b7dfa79cf1722ffe950f9a38e4f74d3:/app/controllers/accounts_controller.rb?ds=sidebyside diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 63da1293f..e2a82c20e 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -11,15 +11,11 @@ class AccountsController < ApplicationController before_action :check_database_readable before_action :check_database_writable, :only => [:update] - before_action :allow_thirdparty_images, :only => [:edit, :update] - def edit - @tokens = current_user.oauth_tokens.authorized - - append_content_security_policy_directives( - :form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org] - ) + allow_thirdparty_images :only => [:show, :update] + allow_social_login :only => [:show, :update] + def show if errors = session.delete(:user_errors) errors.each do |attribute, error| current_user.errors.add(attribute, error) @@ -29,22 +25,16 @@ class AccountsController < ApplicationController end def update - @tokens = current_user.oauth_tokens.authorized - - append_content_security_policy_directives( - :form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org] - ) - user_params = params.require(:user).permit(:display_name, :new_email, :pass_crypt, :pass_crypt_confirmation, :auth_provider) if params[:user][:auth_provider].blank? || (params[:user][:auth_provider] == current_user.auth_provider && params[:user][:auth_uid] == current_user.auth_uid) update_user(current_user, user_params) - if current_user.errors.count.zero? - redirect_to edit_account_path + if current_user.errors.empty? + redirect_to account_path else - render :edit + render :show end else session[:new_user_settings] = user_params.to_h @@ -53,12 +43,16 @@ class AccountsController < ApplicationController end def destroy - current_user.soft_destroy! + if current_user.deletion_allowed? + current_user.soft_destroy! - session.delete(:user) - session_expires_automatically + session.delete(:user) + session_expires_automatically - flash[:notice] = t ".success" - redirect_to root_path + flash[:notice] = t ".success" + redirect_to root_path + else + head :bad_request + end end end