Class: Rodauth::Rails::Generators::ViewsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/rodauth/views_generator.rb

Constant Summary collapse

VIEWS =
{
  login: %w[
    _field _field_error _login_field _login_display _password_field
    _submit _login_form _login_form_footer _login_form_header login
    multi_phase_login
  ],
  create_account: %w[
    _field _field_error _login_field _login_confirm_field
    _password_field _password_confirm_field _submit create_account
  ],
  logout: %w[
    _submit logout
  ],
  reset_password: %w[
    _field _field_error _login_field _login_hidden_field
    _password_field _password_confirm_field _submit
    reset_password_request reset_password
  ],
  remember: %w[
    _submit remember
  ],
  change_login: %w[
    _field _field_error _login_field _login_confirm_field
    _password_field _submit change_login
  ],
  change_password: %w[
    _field _field_error _password_field _new_password_field
    _password_confirm_field _submit change_password
  ],
  close_account: %w[
    _field _field_error _password_field _submit close_account
  ],
  email_auth: %w[
    _login_hidden_field _submit _email_auth_request_form email_auth
  ],
  verify_account: %w[
    _field _field_error _login_hidden_field _login_field _submit
    verify_account_resend verify_account
  ],
  lockout: %w[
    _login_hidden_field _submit unlock_account_request unlock_account
  ],
  active_sessions: %w[
    _global_logout_field
  ],
  two_factor_base: %w[
    _field _field_error _password_field _submit
    two_factor_manage two_factor_auth two_factor_disable
  ],
  otp: %w[
    _field _field_error _otp_auth_code_field _password_field _submit
    otp_setup otp_auth otp_disable
  ],
  sms_codes: %w[
    _field _field_error _sms_code_field _sms_phone_field
    _password_field _submit
    sms_setup sms_confirm sms_auth sms_request sms_disable
  ],
  recovery_codes: %w[
    _field _field_error _recovery_code_field _recovery_codes_form
    recovery_codes add_recovery_codes recovery_auth
  ],
  webauthn: %w[
    _field _field_error _login_hidden_field _password_field _submit
    webauthn_setup webauthn_auth webauthn_remove
  ]
}
DEPENDENCIES =
{
  active_sessions: :logout,
  otp:             :two_factor_base,
  sms_codes:       :two_factor_base,
  recovery_codes:  :two_factor_base,
  webauthn:        :two_factor_base,
}

Instance Method Summary collapse

Instance Method Details

#create_viewsObject



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/generators/rodauth/views_generator.rb', line 101

def create_views
  if options[:all]
    features = VIEWS.keys
  else
    features = (options[:features] || self.features).map(&:to_sym)
  end

  views = features.inject([]) do |list, feature|
    list |= VIEWS[feature] || []
    list |= VIEWS[DEPENDENCIES[feature]] || []
  end

  views.each do |view|
    template "app/views/rodauth/#{view}.html.erb",
      "app/views/#{options[:directory].underscore}/#{view}.html.erb"
  end
end