Class: RailsBase::Users::RegistrationsController

Inherits:
Devise::RegistrationsController
  • Object
show all
Includes:
RailsBase::UserFieldValidators
Defined in:
app/controllers/rails_base/users/registrations_controller.rb

Instance Method Summary collapse

Methods included from RailsBase::UserFieldValidators

included, #validate_complement?, #validate_full_name?, #validate_name?, #validate_password?

Instance Method Details

#createObject

POST /users/create



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/controllers/rails_base/users/registrations_controller.rb', line 17

def create
  # Finds the resource by email and updates tha attributes ... or creates new resource
  resource = (User.find_by_email(params[:user][:email])) || User.new
  if resource.encrypted_password.present?
    @email = params[:user][:email]
    redirect_to RailsBase.url_routes.new_user_session_path, notice: 'Credentials exist. Please login or click forgot Password'
    return
  end

  user_form_validation = validate_complement?(user_params: params[:user])

  unless user_form_validation[:status]
    resource.assign_attributes(.except(:password, :password_confirmation))
    @resource = resource
    @resource_name = resource_name
    @alert_errors = user_form_validation[:errors]
    flash[:error] = @alert_errors.values.join('</br>')
    render :new, notice: "Failure shit"
    return
  end

  resource.admin = RailsBase.config.admin.default_admin_type
  resource.assign_attributes()

  if resource.save
    resource.reload
    (resource_name, resource)
    sign_out(resource)

    email_verification = RailsBase::Authentication::SendVerificationEmail.call(user: resource, reason: RailsBase::Authentication::Constants::SVE_LOGIN_REASON)
    if email_verification.failure?
      redirect_to RailsBase.url_routes.new_user_session_path, alert: email_verification.message
      return
    end
    session[:mfa_randomized_token] = nil
    session[:mfa_randomized_token] =
      RailsBase::Authentication::MfaSetEncryptToken.call(purpose: RailsBase::Authentication::Constants::SSOVE_PURPOSE, user: resource, expires_at: Time.zone.now + 20.minutes).encrypted_val
    redirect_to RailsBase.url_routes.auth_static_path, notice: "Check email for verification email."
  else
    flash[:error] = resource.errors.messages
    email = params[:email] if !resource.errors.details.keys.include?(:email)
    @resource = resource
    @resource_name = resource_name
    render :new, notice: 'Unknown failure. Please try again'
  end
end

#editObject

GET /resource/edit



65
66
67
# File 'app/controllers/rails_base/users/registrations_controller.rb', line 65

def edit
  raise
end

#newObject

GET /resource/sign_up



9
10
11
12
13
14
# File 'app/controllers/rails_base/users/registrations_controller.rb', line 9

def new
  # super
  @resource = User.new
  @resource_name = :user
  render template: 'rails_base/devise/registrations/new'
end

#updateObject

PUT /resource



70
71
72
# File 'app/controllers/rails_base/users/registrations_controller.rb', line 70

def update
  raise
end