Class: RailsBase::UserSettingsController

Inherits:
RailsBaseApplicationController show all
Includes:
UserSettingsHelper
Defined in:
app/controllers/rails_base/user_settings_controller.rb

Constant Summary

Constants included from UserSettingsHelper

RailsBase::UserSettingsHelper::CONFIRM_PASSWORD_FLOW, RailsBase::UserSettingsHelper::DATUM_LENGTH, RailsBase::UserSettingsHelper::DATUM_REASON, RailsBase::UserSettingsHelper::DATUM_TTL

Constants included from CaptureReferenceHelper

CaptureReferenceHelper::CAPTURE_ACTION_NAME, CaptureReferenceHelper::CAPTURE_CONTROLLER_PATH, CaptureReferenceHelper::CAPTURE_REFERRED_PATH

Constants included from AppearanceHelper

AppearanceHelper::APPEARANCE_MODE_ACTUAL_COOKIE, AppearanceHelper::APPEARANCE_MODE_COOKIE, AppearanceHelper::APPEARANCE_TEXT_CLASS, AppearanceHelper::VIEWPORT_EXTRA_LARGE, AppearanceHelper::VIEWPORT_EXTRA_SMALL, AppearanceHelper::VIEWPORT_LARGE, AppearanceHelper::VIEWPORT_MEDIUM, AppearanceHelper::VIEWPORT_MOBILE_MAX, AppearanceHelper::VIEWPORT_SIZES, AppearanceHelper::VIEWPORT_SMALL

Constants included from ApplicationHelper

ApplicationHelper::TIMEZONE_OFFSET_COOKIE, ApplicationHelper::TIMEZONE_SESSION_NAME

Instance Method Summary collapse

Methods included from UserSettingsHelper

#datum

Methods inherited from RailsBaseApplicationController

#admin_impersonation_session?, #admin_reset_impersonation_session!, #admin_user?, #capture_admin_action, #is_timeout_error?, #populate_admin_actions, #set_time_zone

Methods included from CaptureReferenceHelper

#authenticate_user!, #capture_and_clear_reference_redirect!, #capture_clear_reference_from_sesssion!, #capture_reference, #redirect_from_reference, #reference_redirect, #skip_capture_reference!, #skip_capture_reference?, #use_capture_reference?

Methods included from AppearanceHelper

#appearance_mode_drop_down, #appearance_text_class, #footer_mode_case, #force_sticky_mode!

Methods included from ApplicationHelper

#admin_reset_session!, #browser, #is_mobile?, #is_safari?, #mfa_fallback?

Instance Method Details

#confirm_passwordObject

POST user/settings/confirm/password/:reason



50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/rails_base/user_settings_controller.rb', line 50

def confirm_password
  authenticate = RailsBase::Authentication::AuthenticateUser.call(email: current_user.email, current_user: current_user, password: params[:user][:password])

  if authenticate.failure?
    render json: { msg: authenticate.message }, status: 418
  else
    html = render_to_string partial: CONFIRM_PASSWORD_FLOW[params[:reason].to_sym]
    render json: { html: html, datum: datum.data }
  end
end

#destroy_userObject

POST user/settings/destroy



62
63
64
65
66
67
68
69
70
# File 'app/controllers/rails_base/user_settings_controller.rb', line 62

def destroy_user
  destroy = RailsBase::Authentication::DestroyUser.call(data: params[:data], current_user: current_user)

  if destroy.failure?
    redirect_to RailsBase.url_routes., alert: destroy.message
  else
    redirect_to RailsBase.url_routes.authenticated_root_path, notice: I18n.t('user_setting.destroy_user.soft')
  end
end

#edit_nameObject

POST user/settings/edit/name



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/rails_base/user_settings_controller.rb', line 13

def edit_name
  result = NameChange.call(
    first_name: params[:user][:first_name],
    last_name: params[:user][:last_name],
    current_user: current_user
  )

  if result.failure?
    flash[:alert] = result.message
  else
    @_admin_action_struct = RailsBase::AdminStruct.new(result.original_name, result.name_change)
    flash[:notice] = "Name change succesful to #{result.name_change}"
  end

  redirect_to RailsBase.url_routes.
end

#edit_passwordObject

POST user/settings/edit/password expected ajax POST



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/controllers/rails_base/user_settings_controller.rb', line 32

def edit_password
  # current user is method and we will loose context if we are succesful in changing password
  # store current user in current context
  user = current_user
  result = RailsBase::Authentication::ModifyPassword.call(password: params[:user][:password], password_confirmation: params[:user][:password_confirmation], current_user: current_user, flow: :user_settings)

  if result.failure?
    redirect_to RailsBase.url_routes., alert: result.message
    return
  end

  # password was changed so authentication will fail. Re-signin user
  sign_out(current_user)
  (user.reload)
  redirect_to RailsBase.url_routes., notice: 'Succesfully changed password'
end

#indexObject

GET user/settings



9
10
# File 'app/controllers/rails_base/user_settings_controller.rb', line 9

def index
end