]> git.openstreetmap.org Git - rails.git/blob - app/controllers/accounts_controller.rb
Add frozen_string_literal comments to ruby files
[rails.git] / app / controllers / accounts_controller.rb
1 # frozen_string_literal: true
2
3 class AccountsController < ApplicationController
4   include SessionMethods
5   include UserMethods
6
7   layout :site_layout
8
9   before_action :authorize_web
10   before_action :set_locale
11
12   authorize_resource :class => false
13
14   before_action :check_database_readable
15   before_action :check_database_writable, :only => [:update]
16
17   allow_thirdparty_images :only => [:show, :update]
18   allow_social_login :only => [:show, :update]
19
20   def show
21     if errors = session.delete(:user_errors)
22       errors.each do |attribute, error|
23         current_user.errors.add(attribute, error)
24       end
25     end
26     @title = t ".title"
27   end
28
29   def update
30     user_params = params.expect(:user => [:display_name, :new_email, :pass_crypt, :pass_crypt_confirmation, :auth_provider])
31
32     if params[:user][:auth_provider].blank? ||
33        params[:user][:auth_provider] == current_user.auth_provider
34       update_user(current_user, user_params)
35       if current_user.errors.empty?
36         redirect_to account_path
37       else
38         render :show
39       end
40     else
41       session[:new_user_settings] = user_params.to_h
42       redirect_to auth_url(params[:user][:auth_provider]), :status => :temporary_redirect
43     end
44   end
45
46   def destroy
47     if current_user.deletion_allowed?
48       current_user.soft_destroy!
49
50       session.delete(:user)
51       session_expires_automatically
52
53       flash[:notice] = t ".success"
54       redirect_to root_path
55     else
56       head :bad_request
57     end
58   end
59 end