rodauth-rails 0.17.1 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +27 -17
  4. data/lib/generators/rodauth/install_generator.rb +1 -1
  5. data/lib/generators/rodauth/templates/app/views/rodauth/_email_auth_request_form.html.erb +7 -4
  6. data/lib/generators/rodauth/templates/app/views/rodauth/_login_form.html.erb +26 -9
  7. data/lib/generators/rodauth/templates/app/views/rodauth/_login_form_footer.html.erb +7 -6
  8. data/lib/generators/rodauth/templates/app/views/rodauth/_login_form_header.html.erb +3 -3
  9. data/lib/generators/rodauth/templates/app/views/rodauth/add_recovery_codes.html.erb +7 -5
  10. data/lib/generators/rodauth/templates/app/views/rodauth/change_login.html.erb +29 -6
  11. data/lib/generators/rodauth/templates/app/views/rodauth/change_password.html.erb +29 -6
  12. data/lib/generators/rodauth/templates/app/views/rodauth/close_account.html.erb +15 -4
  13. data/lib/generators/rodauth/templates/app/views/rodauth/confirm_password.html.erb +13 -4
  14. data/lib/generators/rodauth/templates/app/views/rodauth/create_account.html.erb +37 -7
  15. data/lib/generators/rodauth/templates/app/views/rodauth/email_auth.html.erb +7 -3
  16. data/lib/generators/rodauth/templates/app/views/rodauth/login.html.erb +5 -3
  17. data/lib/generators/rodauth/templates/app/views/rodauth/logout.html.erb +16 -4
  18. data/lib/generators/rodauth/templates/app/views/rodauth/multi_phase_login.html.erb +5 -3
  19. data/lib/generators/rodauth/templates/app/views/rodauth/otp_auth.html.erb +17 -4
  20. data/lib/generators/rodauth/templates/app/views/rodauth/otp_disable.html.erb +15 -4
  21. data/lib/generators/rodauth/templates/app/views/rodauth/otp_setup.html.erb +30 -10
  22. data/lib/generators/rodauth/templates/app/views/rodauth/recovery_auth.html.erb +13 -4
  23. data/lib/generators/rodauth/templates/app/views/rodauth/recovery_codes.html.erb +15 -1
  24. data/lib/generators/rodauth/templates/app/views/rodauth/remember.html.erb +14 -9
  25. data/lib/generators/rodauth/templates/app/views/rodauth/reset_password.html.erb +21 -5
  26. data/lib/generators/rodauth/templates/app/views/rodauth/reset_password_request.html.erb +19 -9
  27. data/lib/generators/rodauth/templates/app/views/rodauth/sms_auth.html.erb +17 -4
  28. data/lib/generators/rodauth/templates/app/views/rodauth/sms_confirm.html.erb +17 -4
  29. data/lib/generators/rodauth/templates/app/views/rodauth/sms_disable.html.erb +15 -4
  30. data/lib/generators/rodauth/templates/app/views/rodauth/sms_request.html.erb +7 -3
  31. data/lib/generators/rodauth/templates/app/views/rodauth/sms_setup.html.erb +25 -5
  32. data/lib/generators/rodauth/templates/app/views/rodauth/two_factor_auth.html.erb +5 -3
  33. data/lib/generators/rodauth/templates/app/views/rodauth/two_factor_disable.html.erb +15 -4
  34. data/lib/generators/rodauth/templates/app/views/rodauth/two_factor_manage.html.erb +17 -15
  35. data/lib/generators/rodauth/templates/app/views/rodauth/unlock_account.html.erb +17 -5
  36. data/lib/generators/rodauth/templates/app/views/rodauth/unlock_account_request.html.erb +11 -5
  37. data/lib/generators/rodauth/templates/app/views/rodauth/verify_account.html.erb +23 -5
  38. data/lib/generators/rodauth/templates/app/views/rodauth/verify_account_resend.html.erb +19 -9
  39. data/lib/generators/rodauth/templates/app/views/rodauth/verify_login_change.html.erb +7 -3
  40. data/lib/generators/rodauth/templates/app/views/rodauth/webauthn_auth.html.erb +13 -9
  41. data/lib/generators/rodauth/templates/app/views/rodauth/webauthn_remove.html.erb +21 -9
  42. data/lib/generators/rodauth/templates/app/views/rodauth/webauthn_setup.html.erb +21 -9
  43. data/lib/generators/rodauth/templates/app/views/rodauth_mailer/email_auth.text.erb +1 -1
  44. data/lib/generators/rodauth/templates/app/views/rodauth_mailer/reset_password.text.erb +1 -1
  45. data/lib/generators/rodauth/templates/app/views/rodauth_mailer/unlock_account.text.erb +1 -1
  46. data/lib/generators/rodauth/templates/app/views/rodauth_mailer/verify_account.text.erb +1 -1
  47. data/lib/generators/rodauth/templates/app/views/rodauth_mailer/verify_login_change.text.erb +3 -3
  48. data/lib/generators/rodauth/views_generator.rb +55 -93
  49. data/lib/rodauth/rails/app.rb +4 -0
  50. data/lib/rodauth/rails/feature/render.rb +1 -1
  51. data/lib/rodauth/rails/railtie.rb +4 -2
  52. data/lib/rodauth/rails/version.rb +1 -1
  53. data/lib/rodauth/rails.rb +8 -7
  54. metadata +2 -18
  55. data/lib/generators/rodauth/templates/app/views/rodauth/_field.html.erb +0 -10
  56. data/lib/generators/rodauth/templates/app/views/rodauth/_field_error.html.erb +0 -3
  57. data/lib/generators/rodauth/templates/app/views/rodauth/_global_logout_field.html.erb +0 -6
  58. data/lib/generators/rodauth/templates/app/views/rodauth/_login_confirm_field.html.erb +0 -4
  59. data/lib/generators/rodauth/templates/app/views/rodauth/_login_display.html.erb +0 -4
  60. data/lib/generators/rodauth/templates/app/views/rodauth/_login_field.html.erb +0 -4
  61. data/lib/generators/rodauth/templates/app/views/rodauth/_login_hidden_field.html.erb +0 -1
  62. data/lib/generators/rodauth/templates/app/views/rodauth/_new_password_field.html.erb +0 -4
  63. data/lib/generators/rodauth/templates/app/views/rodauth/_otp_auth_code_field.html.erb +0 -8
  64. data/lib/generators/rodauth/templates/app/views/rodauth/_password_confirm_field.html.erb +0 -4
  65. data/lib/generators/rodauth/templates/app/views/rodauth/_password_field.html.erb +0 -4
  66. data/lib/generators/rodauth/templates/app/views/rodauth/_recovery_code_field.html.erb +0 -4
  67. data/lib/generators/rodauth/templates/app/views/rodauth/_recovery_codes_form.html.erb +0 -6
  68. data/lib/generators/rodauth/templates/app/views/rodauth/_sms_code_field.html.erb +0 -8
  69. data/lib/generators/rodauth/templates/app/views/rodauth/_sms_phone_field.html.erb +0 -8
  70. data/lib/generators/rodauth/templates/app/views/rodauth/_submit.html.erb +0 -3
@@ -7,12 +7,8 @@ module Rodauth
7
7
  source_root "#{__dir__}/templates"
8
8
  namespace "rodauth:views"
9
9
 
10
- argument :features, optional: true, type: :array,
11
- desc: "Rodauth features to generate views for (login, create_account, reset_password, verify_account etc.)",
12
- default: %w[login logout create_account verify_account reset_password change_password change_login verify_login_change close_account]
13
-
14
- class_option :features, type: :array,
15
- desc: "[DEPRECATED] Rodauth features to generate views for (login, create_account, reset_password, verify_account etc.)"
10
+ argument :selected_features, optional: true, type: :array,
11
+ desc: "Rodauth features to generate views for (login, create_account, reset_password, verify_account etc.)"
16
12
 
17
13
  class_option :all, aliases: "-a", type: :boolean,
18
14
  desc: "Generates views for all Rodauth features",
@@ -23,99 +19,57 @@ module Rodauth
23
19
  default: nil
24
20
 
25
21
  VIEWS = {
26
- login: %w[
27
- _field _field_error _login_field _login_display _password_field
28
- _submit _login_form _login_form_footer _login_form_header login
29
- multi_phase_login
30
- ],
31
- create_account: %w[
32
- _field _field_error _login_field _login_confirm_field
33
- _password_field _password_confirm_field _submit create_account
34
- ],
35
- logout: %w[
36
- _submit logout
37
- ],
38
- reset_password: %w[
39
- _field _field_error _login_field _login_hidden_field
40
- _password_field _password_confirm_field _submit
41
- reset_password_request reset_password
42
- ],
43
- remember: %w[
44
- _submit remember
45
- ],
46
- change_login: %w[
47
- _field _field_error _login_field _login_confirm_field
48
- _password_field _submit change_login
49
- ],
50
- change_password: %w[
51
- _field _field_error _password_field _new_password_field
52
- _password_confirm_field _submit change_password
53
- ],
54
- close_account: %w[
55
- _field _field_error _password_field _submit close_account
56
- ],
57
- email_auth: %w[
58
- _login_hidden_field _submit _email_auth_request_form email_auth
59
- ],
60
- verify_account: %w[
61
- _field _field_error _login_hidden_field _login_field _submit
62
- verify_account_resend verify_account
63
- ],
64
- verify_login_change: %w[
65
- _submit verify_login_change
66
- ],
67
- lockout: %w[
68
- _login_hidden_field _submit unlock_account_request unlock_account
69
- ],
70
- active_sessions: %w[
71
- _global_logout_field
72
- ],
73
- two_factor_base: %w[
74
- _field _field_error _password_field _submit
75
- two_factor_manage two_factor_auth two_factor_disable
76
- ],
77
- otp: %w[
78
- _field _field_error _otp_auth_code_field _password_field _submit
79
- otp_setup otp_auth otp_disable
80
- ],
81
- sms_codes: %w[
82
- _field _field_error _sms_code_field _sms_phone_field
83
- _password_field _submit
84
- sms_setup sms_confirm sms_auth sms_request sms_disable
85
- ],
86
- recovery_codes: %w[
87
- _field _field_error _recovery_code_field _recovery_codes_form
88
- recovery_codes add_recovery_codes recovery_auth
89
- ],
90
- webauthn: %w[
91
- _field _field_error _login_hidden_field _password_field _submit
92
- webauthn_setup webauthn_auth webauthn_remove
93
- ]
22
+ login: %w[_login_form _login_form_footer _login_form_header login multi_phase_login],
23
+ create_account: %w[create_account],
24
+ logout: %w[logout],
25
+ reset_password: %w[reset_password_request reset_password],
26
+ remember: %w[remember],
27
+ change_login: %w[change_login],
28
+ change_password: %w[change_password],
29
+ close_account: %w[close_account],
30
+ email_auth: %w[_email_auth_request_form email_auth],
31
+ verify_account: %w[verify_account_resend verify_account],
32
+ verify_login_change: %w[verify_login_change],
33
+ lockout: %w[unlock_account_request unlock_account],
34
+ two_factor_base: %w[two_factor_manage two_factor_auth two_factor_disable],
35
+ otp: %w[otp_setup otp_auth otp_disable],
36
+ sms_codes: %w[sms_setup sms_confirm sms_auth sms_request sms_disable],
37
+ recovery_codes: %w[recovery_codes add_recovery_codes recovery_auth],
38
+ webauthn: %w[webauthn_setup webauthn_auth webauthn_remove],
94
39
  }
95
40
 
96
41
  DEPENDENCIES = {
97
- active_sessions: :logout,
98
- otp: :two_factor_base,
99
- sms_codes: :two_factor_base,
100
- recovery_codes: :two_factor_base,
101
- webauthn: :two_factor_base,
42
+ otp: :two_factor_base,
43
+ sms_codes: :two_factor_base,
44
+ recovery_codes: :two_factor_base,
45
+ webauthn: :two_factor_base,
102
46
  }
103
47
 
104
48
  def create_views
105
- if options[:all]
106
- features = VIEWS.keys
107
- else
108
- features = (options[:features] || self.features).map(&:to_sym)
109
- end
110
-
111
49
  views = features.inject([]) do |list, feature|
112
50
  list |= VIEWS[feature] || []
113
51
  list |= VIEWS[DEPENDENCIES[feature]] || []
114
52
  end
115
53
 
116
54
  views.each do |view|
117
- template "app/views/rodauth/#{view}.html.erb",
118
- "app/views/#{directory}/#{view}.html.erb"
55
+ copy_file "app/views/rodauth/#{view}.html.erb", "app/views/#{directory}/#{view}.html.erb" do |content|
56
+ content = content.gsub("rodauth.", "rodauth(:#{configuration_name}).") if configuration_name
57
+ content = content.gsub("rodauth/", "#{directory}/")
58
+ content = form_helpers_compatibility(content) if ActionView.version < Gem::Version.new("5.1")
59
+ content
60
+ end
61
+ end
62
+ end
63
+
64
+ private
65
+
66
+ def features
67
+ if options[:all]
68
+ VIEWS.keys
69
+ elsif selected_features
70
+ selected_features.map(&:to_sym)
71
+ else
72
+ rodauth_configuration.features
119
73
  end
120
74
  end
121
75
 
@@ -127,19 +81,27 @@ module Rodauth
127
81
  controller.controller_path
128
82
  end
129
83
 
130
- def rodauth
131
- "rodauth#{"(:#{configuration_name})" if configuration_name}"
84
+ def controller
85
+ rodauth_configuration.allocate.rails_controller
132
86
  end
133
87
 
134
- def controller
135
- rodauth = Rodauth::Rails.app.rodauth(configuration_name)
136
- fail ArgumentError, "unknown rodauth configuration: #{configuration_name.inspect}" unless rodauth
137
- rodauth.allocate.rails_controller
88
+ def rodauth_configuration
89
+ Rodauth::Rails.app.rodauth!(configuration_name)
138
90
  end
139
91
 
140
92
  def configuration_name
141
93
  options[:name]&.to_sym
142
94
  end
95
+
96
+ # We need to use the *_tag helpers on versions lower than Rails 5.1.
97
+ def form_helpers_compatibility(content)
98
+ content
99
+ .gsub(/form_with url: (.+) do \|form\|/, 'form_tag \1 do')
100
+ .gsub(/form\.(label|submit)/, '\1_tag')
101
+ .gsub(/form\.(email|password|text|telephone|hidden)_field (\S+), value:/, '\1_field_tag \2,')
102
+ .gsub(/form\.radio_button (\S+), (\S+),/, 'radio_button_tag \1, \2, false,')
103
+ .gsub(/form\.check_box (\S+), (.+) /, 'check_box_tag \1, "t", false, \2 ')
104
+ end
143
105
  end
144
106
  end
145
107
  end
@@ -43,6 +43,10 @@ module Rodauth
43
43
  def rails_request
44
44
  ActionDispatch::Request.new(env)
45
45
  end
46
+
47
+ def self.rodauth!(name)
48
+ rodauth(name) or fail ArgumentError, "unknown rodauth configuration: #{name.inspect}"
49
+ end
46
50
  end
47
51
  end
48
52
  end
@@ -10,7 +10,7 @@ module Rodauth
10
10
  # template, otherwise falls back to Rodauth's template.
11
11
  def view(page, *)
12
12
  rails_render(action: page.tr("-", "_"), layout: true) ||
13
- rails_render(html: super.html_safe, layout: true)
13
+ rails_render(html: super.html_safe, layout: true, formats: :html)
14
14
  end
15
15
 
16
16
  # Renders templates without layout. First tries to render a user-defined
@@ -6,8 +6,10 @@ require "rails"
6
6
  module Rodauth
7
7
  module Rails
8
8
  class Railtie < ::Rails::Railtie
9
- initializer "rodauth.middleware" do |app|
10
- app.middleware.use Rodauth::Rails::Middleware if Rodauth::Rails.middleware?
9
+ initializer "rodauth.middleware", after: :load_config_initializers do |app|
10
+ if Rodauth::Rails.middleware?
11
+ app.middleware.use Rodauth::Rails::Middleware
12
+ end
11
13
  end
12
14
 
13
15
  initializer "rodauth.controller" do
@@ -1,5 +1,5 @@
1
1
  module Rodauth
2
2
  module Rails
3
- VERSION = "0.17.1"
3
+ VERSION = "0.18.0"
4
4
  end
5
5
  end
data/lib/rodauth/rails.rb CHANGED
@@ -18,11 +18,7 @@ module Rodauth
18
18
 
19
19
  class << self
20
20
  def rodauth(name = nil, query: nil, form: nil, account: nil, **options)
21
- auth_class = app.rodauth(name)
22
-
23
- unless auth_class
24
- fail ArgumentError, "undefined rodauth configuration: #{name.inspect}"
25
- end
21
+ auth_class = app.rodauth!(name)
26
22
 
27
23
  LOCK.synchronize do
28
24
  unless auth_class.features.include?(:internal_request)
@@ -41,13 +37,18 @@ module Rodauth
41
37
  end
42
38
 
43
39
  auth_class.internal_request_eval(options) do
44
- @account = account.attributes.symbolize_keys if account
40
+ if defined?(ActiveRecord::Base) && account.is_a?(ActiveRecord::Base)
41
+ @account = account.attributes.symbolize_keys
42
+ elsif defined?(Sequel::Model) && account.is_a?(Sequel::Model)
43
+ @account = account.values
44
+ end
45
+
45
46
  self
46
47
  end
47
48
  end
48
49
 
49
50
  def model(name = nil, **options)
50
- Rodauth::Rails::Model.new(app.rodauth(name), **options)
51
+ Rodauth::Rails::Model.new(app.rodauth!(name), **options)
51
52
  end
52
53
 
53
54
  # routing constraint that requires authentication
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rodauth-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.1
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janko Marohnić
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-20 00:00:00.000000000 Z
11
+ date: 2021-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -178,25 +178,9 @@ files:
178
178
  - lib/generators/rodauth/templates/app/mailers/rodauth_mailer.rb
179
179
  - lib/generators/rodauth/templates/app/models/account.rb
180
180
  - lib/generators/rodauth/templates/app/views/rodauth/_email_auth_request_form.html.erb
181
- - lib/generators/rodauth/templates/app/views/rodauth/_field.html.erb
182
- - lib/generators/rodauth/templates/app/views/rodauth/_field_error.html.erb
183
- - lib/generators/rodauth/templates/app/views/rodauth/_global_logout_field.html.erb
184
- - lib/generators/rodauth/templates/app/views/rodauth/_login_confirm_field.html.erb
185
- - lib/generators/rodauth/templates/app/views/rodauth/_login_display.html.erb
186
- - lib/generators/rodauth/templates/app/views/rodauth/_login_field.html.erb
187
181
  - lib/generators/rodauth/templates/app/views/rodauth/_login_form.html.erb
188
182
  - lib/generators/rodauth/templates/app/views/rodauth/_login_form_footer.html.erb
189
183
  - lib/generators/rodauth/templates/app/views/rodauth/_login_form_header.html.erb
190
- - lib/generators/rodauth/templates/app/views/rodauth/_login_hidden_field.html.erb
191
- - lib/generators/rodauth/templates/app/views/rodauth/_new_password_field.html.erb
192
- - lib/generators/rodauth/templates/app/views/rodauth/_otp_auth_code_field.html.erb
193
- - lib/generators/rodauth/templates/app/views/rodauth/_password_confirm_field.html.erb
194
- - lib/generators/rodauth/templates/app/views/rodauth/_password_field.html.erb
195
- - lib/generators/rodauth/templates/app/views/rodauth/_recovery_code_field.html.erb
196
- - lib/generators/rodauth/templates/app/views/rodauth/_recovery_codes_form.html.erb
197
- - lib/generators/rodauth/templates/app/views/rodauth/_sms_code_field.html.erb
198
- - lib/generators/rodauth/templates/app/views/rodauth/_sms_phone_field.html.erb
199
- - lib/generators/rodauth/templates/app/views/rodauth/_submit.html.erb
200
184
  - lib/generators/rodauth/templates/app/views/rodauth/add_recovery_codes.html.erb
201
185
  - lib/generators/rodauth/templates/app/views/rodauth/change_login.html.erb
202
186
  - lib/generators/rodauth/templates/app/views/rodauth/change_password.html.erb
@@ -1,10 +0,0 @@
1
- <%%= text_field_tag name, local_assigns[:value] || params[name],
2
- type: local_assigns[:type] || "text",
3
- id: local_assigns[:id],
4
- autocomplete: local_assigns[:autocomplete],
5
- inputmode: local_assigns[:inputmode],
6
- required: local_assigns[:required] != false,
7
- class: "#{local_assigns[:class] || "form-control"} #{"is-invalid" if <%= rodauth %>.field_error(name)}",
8
- aria: ({ invalid: "true", describedby: "#{name}_error_message" } if <%= rodauth %>.field_error(name)) %>
9
-
10
- <%%= render "field_error", name: name unless local_assigns[:skip_error_message] %>
@@ -1,3 +0,0 @@
1
- <%% if <%= rodauth %>.field_error(name) %>
2
- <div class="invalid-feedback" id="<%%= name %>_error_message"><%%= <%= rodauth %>.field_error(name) %></div>
3
- <%% end %>
@@ -1,6 +0,0 @@
1
- <div class="form-group mb-3">
2
- <div class="form-check">
3
- <%%= check_box_tag <%= rodauth %>.global_logout_param, "t", false, id: "global-logout", class: "form-check-input" %>
4
- <%%= label_tag "global-logout", "Logout all Logged In Sessons?", class: "form-check-label" %>
5
- </div>
6
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "login-confirm", "Confirm Login", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.login_confirm_param, id: "login-confirm", type: :email, autocomplete: "email" %>
4
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "login", "Login", class: "form-label" %>
3
- <%%= email_field_tag <%= rodauth %>.login_param, params[<%= rodauth %>.login_param], id: "login", readonly: true, class: "form-control-plaintext" %>
4
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "login", "Login", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.login_param, id: "login", type: :email, autocomplete: "email" %>
4
- </div>
@@ -1 +0,0 @@
1
- <%%= hidden_field_tag <%= rodauth %>.login_param, params[<%= rodauth %>.login_param] %>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "new-password", "New Password", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.new_password_param, id: "new-password", type: "password", value: "", autocomplete: "new-password" %>
4
- </div>
@@ -1,8 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "otp-auth-code", "Authentication Code", class: "form-label" %>
3
- <div class="row">
4
- <div class="col-sm-3">
5
- <%%= render "field", name: <%= rodauth %>.otp_auth_param, id: "otp-auth-code", value: "", autocomplete: "off", inputmode: "numeric" %>
6
- </div>
7
- </div>
8
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "password-confirm", "Confirm Password", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.password_confirm_param, id: "password-confirm", type: :password, value: "", autocomplete: "new-password" %>
4
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "password", "Password", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.password_param, id: "password", type: :password, value: "", autocomplete: <%= rodauth %>.password_field_autocomplete_value %>
4
- </div>
@@ -1,4 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "recovery_code", "Recovery Code", class: "form-label" %>
3
- <%%= render "field", name: <%= rodauth %>.recovery_codes_param, id: "recovery_code", value: "", autocomplete: "off" %>
4
- </div>
@@ -1,6 +0,0 @@
1
- <%%= form_tag <%= rodauth %>.recovery_codes_path, method: :post, data: { turbo: false } do %>
2
- <%%= render "password_field" if <%= rodauth %>.two_factor_modifications_require_password? %>
3
- <%%= render "submit",
4
- value: <%= rodauth %>.recovery_codes_button || "View Authentication Recovery Codes",
5
- name: (<%= rodauth %>.add_recovery_codes_param if <%= rodauth %>.recovery_codes_button) %>
6
- <%% end %>
@@ -1,8 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "sms-code", "SMS Code", class: "form-label" %>
3
- <div class="row">
4
- <div class="col-sm-3">
5
- <%%= render "field", name: <%= rodauth %>.sms_code_param, id: "sms-code", value: "", autocomplete: "one-time-code", inputmode: "numeric" %>
6
- </div>
7
- </div>
8
- </div>
@@ -1,8 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= label_tag "sms-phone", "Phone Number", class: "form-label" %>
3
- <div class="row">
4
- <div class="col-sm-3">
5
- <%%= render "field", name: <%= rodauth %>.sms_phone_param, id: "sms-phone", type: :tel, autocomplete: "tel" %>
6
- </div>
7
- </div>
8
- </div>
@@ -1,3 +0,0 @@
1
- <div class="form-group mb-3">
2
- <%%= submit_tag local_assigns[:value], name: local_assigns[:name], class: local_assigns[:class] || "btn btn-primary" %>
3
- </div>