plutonium 0.12.13 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Appraisals +11 -0
- data/README.md +4 -0
- data/Rakefile +9 -5
- data/app/assets/plutonium.css +1 -1
- data/app/views/application/_flash.html.erb +1 -1
- data/app/views/application/_flash_toasts.html.erb +1 -1
- data/app/views/application/_resource_sidebar.html.erb +1 -1
- data/app/views/components/form/form_component.html.erb +1 -2
- data/app/views/components/interactive_action_form/interactive_action_form_component.html.erb +1 -1
- data/app/views/components/resource_header/resource_header_component.html.erb +3 -3
- data/app/views/components/resource_header/resource_header_component.rb +1 -1
- data/app/views/components/sidebar/sidebar_component.html.erb +1 -6
- data/app/views/components/sidebar/sidebar_component.rb +11 -3
- data/app/views/layouts/resource.html.erb +1 -1
- data/app/views/layouts/rodauth.html.erb +7 -8
- data/app/views/resource/_interactive_resource_action_form.html.erb +4 -4
- data/app/views/rodauth/_email_auth_request_form.html.erb +2 -2
- data/app/views/rodauth/_login_form.html.erb +24 -18
- data/app/views/rodauth/_login_form_footer.html.erb +1 -1
- data/app/views/rodauth/change_login.html.erb +20 -11
- data/app/views/rodauth/change_password.html.erb +11 -11
- data/app/views/rodauth/close_account.html.erb +4 -4
- data/app/views/rodauth/create_account.html.erb +44 -18
- data/app/views/rodauth/email_auth.html.erb +2 -2
- data/app/views/rodauth/login.html.erb +3 -5
- data/app/views/rodauth/logout.html.erb +7 -4
- data/app/views/rodauth/otp_auth.html.erb +5 -6
- data/app/views/rodauth/otp_disable.html.erb +4 -5
- data/app/views/rodauth/otp_setup.html.erb +8 -8
- data/app/views/rodauth/recovery_auth.html.erb +5 -5
- data/app/views/rodauth/recovery_codes.html.erb +5 -5
- data/app/views/rodauth/remember.html.erb +2 -2
- data/app/views/rodauth/reset_password.html.erb +8 -8
- data/app/views/rodauth/reset_password_request.html.erb +14 -10
- data/app/views/rodauth/sms_auth.html.erb +4 -4
- data/app/views/rodauth/sms_confirm.html.erb +4 -4
- data/app/views/rodauth/sms_disable.html.erb +5 -5
- data/app/views/rodauth/sms_request.html.erb +2 -2
- data/app/views/rodauth/sms_setup.html.erb +7 -7
- data/app/views/rodauth/two_factor_disable.html.erb +4 -4
- data/app/views/rodauth/unlock_account.html.erb +8 -10
- data/app/views/rodauth/unlock_account_request.html.erb +5 -7
- data/app/views/rodauth/verify_account.html.erb +8 -8
- data/app/views/rodauth/verify_account_resend.html.erb +13 -10
- data/app/views/rodauth/verify_login_change.html.erb +2 -2
- data/app/views/rodauth/webauthn_auth.html.erb +2 -2
- data/app/views/rodauth/webauthn_remove.html.erb +5 -5
- data/app/views/rodauth/webauthn_setup.html.erb +5 -5
- data/config.ru +9 -0
- data/gemfiles/rails_7.gemfile +13 -0
- data/gemfiles/rails_7.gemfile.lock +335 -0
- data/lib/generators/pu/rodauth/install_generator.rb +0 -5
- data/lib/generators/pu/rodauth/migration/active_record/audit_logging.erb +2 -2
- data/lib/generators/pu/rodauth/migration_generator.rb +30 -51
- data/lib/generators/pu/rodauth/templates/app/mailers/rodauth_mailer.rb.tt +1 -0
- data/lib/generators/pu/rodauth/templates/app/models/account.rb.tt +0 -8
- data/lib/generators/pu/rodauth/templates/app/rodauth/rodauth_plugin.rb.tt +8 -2
- data/lib/generators/pu/rodauth/templates/db/migrate/create_rodauth.rb.tt +0 -8
- data/lib/plutonium/auth/rodauth.rb +3 -1
- data/lib/plutonium/core/controllers/base.rb +29 -19
- data/lib/plutonium/core/fields/inputs/date_time_input.rb +1 -1
- data/lib/plutonium/helpers/display_helper.rb +6 -4
- data/lib/plutonium/helpers/form_helper.rb +18 -7
- data/lib/plutonium/pkg/app.rb +4 -0
- data/lib/plutonium/rodauth/controller_methods.rb +1 -0
- data/lib/plutonium/version.rb +1 -1
- data/lib/plutonium.rb +40 -29
- data/sig/plutonium.rbs +10 -2
- metadata +118 -21
- data/lib/generators/pu/rodauth/migration/sequel/account_expiration.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/active_sessions.erb +0 -8
- data/lib/generators/pu/rodauth/migration/sequel/audit_logging.erb +0 -17
- data/lib/generators/pu/rodauth/migration/sequel/base.erb +0 -25
- data/lib/generators/pu/rodauth/migration/sequel/disallow_password_reuse.erb +0 -6
- data/lib/generators/pu/rodauth/migration/sequel/email_auth.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/jwt_refresh.erb +0 -8
- data/lib/generators/pu/rodauth/migration/sequel/lockout.erb +0 -11
- data/lib/generators/pu/rodauth/migration/sequel/otp.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/password_expiration.erb +0 -5
- data/lib/generators/pu/rodauth/migration/sequel/recovery_codes.erb +0 -6
- data/lib/generators/pu/rodauth/migration/sequel/remember.erb +0 -6
- data/lib/generators/pu/rodauth/migration/sequel/reset_password.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/separate_passwords.erb +0 -6
- data/lib/generators/pu/rodauth/migration/sequel/single_session.erb +0 -5
- data/lib/generators/pu/rodauth/migration/sequel/sms_codes.erb +0 -8
- data/lib/generators/pu/rodauth/migration/sequel/verify_account.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/verify_login_change.erb +0 -7
- data/lib/generators/pu/rodauth/migration/sequel/webauthn.erb +0 -13
@@ -1,24 +1,30 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
<h1 class="text-lg font-bold leading-tight tracking-tight text-gray-900 md:text-xl dark:text-white">
|
2
|
+
Sign in to your account
|
3
|
+
</h1>
|
4
|
+
<%= form_with url: rodauth.login_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
5
|
+
<div>
|
6
|
+
<%= form.label "login", rodauth.login_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
7
|
+
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
8
|
+
id: "login", autocomplete: rodauth.login_field_autocomplete_value,
|
9
|
+
required: true,
|
10
|
+
placeholder: "jane@acme.inc",
|
11
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login_error_message" } if rodauth.field_error(rodauth.login_param)) %>
|
12
|
+
<% unless rodauth.skip_login_field_on_login? %>
|
13
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.login_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "login_error_message") if rodauth.field_error(rodauth.login_param) %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
14
16
|
|
15
17
|
<% unless rodauth.skip_password_field_on_login? %>
|
16
|
-
<div
|
17
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
18
|
-
<%= form.password_field rodauth.password_param, value: "",
|
19
|
-
|
18
|
+
<div>
|
19
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
20
|
+
<%= form.password_field rodauth.password_param, value: "",
|
21
|
+
id: "password",
|
22
|
+
autocomplete: rodauth.password_field_autocomplete_value,
|
23
|
+
required: true,
|
24
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
25
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
20
26
|
</div>
|
21
27
|
<% end %>
|
22
28
|
|
23
|
-
<%= form.submit rodauth.login_button, class: "w-full
|
29
|
+
<%= form.submit rodauth.login_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
24
30
|
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% unless rodauth.login_form_footer_links.empty? %>
|
2
2
|
<ul>
|
3
3
|
<% rodauth.login_form_footer_links.sort.each do |_, link, text| %>
|
4
|
-
<li><%= link_to text, link, class: "text-
|
4
|
+
<li><%= link_to text, link, class: "text-primary-600 rounded-sm text-sm hover:underline hover:text-primary-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-600 dark:text-primary-300 dark:hover:text-primary-400 dark:focus-visible:ring-2 dark:focus-visible:ring-primary-300" %></li>
|
5
5
|
<% end %>
|
6
6
|
</ul>
|
7
7
|
<% end %>
|
@@ -1,25 +1,34 @@
|
|
1
|
-
<%= form_with url: rodauth.change_login_path, method: :post, data: { turbo: false }, class: "
|
2
|
-
<div
|
3
|
-
<%= form.label "login", rodauth.login_label, class: "block text-sm font-semibold" %>
|
4
|
-
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
1
|
+
<%= form_with url: rodauth.change_login_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<div>
|
3
|
+
<%= form.label "login", rodauth.login_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
4
|
+
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
5
|
+
id: "login",
|
6
|
+
autocomplete: "email",
|
7
|
+
required: true,
|
8
|
+
placeholder: "jane@acme.inc",
|
9
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login_error_message" } if rodauth.field_error(rodauth.login_param)) %>
|
5
10
|
<%= content_tag(:span, rodauth.field_error(rodauth.login_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "login_error_message") if rodauth.field_error(rodauth.login_param) %>
|
6
11
|
</div>
|
7
12
|
|
8
13
|
<% if rodauth.require_login_confirmation? %>
|
9
|
-
<div
|
10
|
-
<%= form.label "login-confirm", rodauth.login_confirm_label, class: "block text-sm font-semibold" %>
|
11
|
-
<%= form.email_field rodauth.login_confirm_param, value: params[rodauth.login_confirm_param],
|
14
|
+
<div>
|
15
|
+
<%= form.label "login-confirm", rodauth.login_confirm_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
16
|
+
<%= form.email_field rodauth.login_confirm_param, value: params[rodauth.login_confirm_param],
|
17
|
+
id: "login-confirm", autocomplete: "email",
|
18
|
+
required: true,
|
19
|
+
placeholder: "jane@acme.inc",
|
20
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login-confirm_error_message" } if rodauth.field_error(rodauth.login_confirm_param)) %>
|
12
21
|
<%= content_tag(:span, rodauth.field_error(rodauth.login_confirm_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "login-confirm_error_message") if rodauth.field_error(rodauth.login_confirm_param) %>
|
13
22
|
</div>
|
14
23
|
<% end %>
|
15
24
|
|
16
25
|
<% if rodauth.change_login_requires_password? %>
|
17
|
-
<div
|
18
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
19
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
26
|
+
<div>
|
27
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
28
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
20
29
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
21
30
|
</div>
|
22
31
|
<% end %>
|
23
32
|
|
24
|
-
<%= form.submit rodauth.change_login_button, class: "w-full
|
33
|
+
<%= form.submit rodauth.change_login_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
25
34
|
<% end %>
|
@@ -1,25 +1,25 @@
|
|
1
|
-
<%= form_with url: rodauth.change_password_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.change_password_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<% if rodauth.change_password_requires_password? %>
|
3
|
-
<div
|
4
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
5
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
3
|
+
<div>
|
4
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
5
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
6
6
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
7
7
|
</div>
|
8
8
|
<% end %>
|
9
9
|
|
10
|
-
<div
|
11
|
-
<%= form.label "new-password", rodauth.new_password_label, class: "block text-sm font-semibold" %>
|
12
|
-
<%= form.password_field rodauth.new_password_param, value: "", id: "new-password", autocomplete: "new-password", required: true, class: "
|
10
|
+
<div>
|
11
|
+
<%= form.label "new-password", rodauth.new_password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
12
|
+
<%= form.password_field rodauth.new_password_param, value: "", id: "new-password", autocomplete: "new-password", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.new_password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "new-password_error_message" } if rodauth.field_error(rodauth.new_password_param)) %>
|
13
13
|
<%= content_tag(:span, rodauth.field_error(rodauth.new_password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "new-password_error_message") if rodauth.field_error(rodauth.new_password_param) %>
|
14
14
|
</div>
|
15
15
|
|
16
16
|
<% if rodauth.require_password_confirmation? %>
|
17
|
-
<div
|
18
|
-
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block text-sm font-semibold" %>
|
19
|
-
<%= form.password_field rodauth.password_confirm_param, value: "", id: "password-confirm", autocomplete: "new-password", required: true, class: "
|
17
|
+
<div>
|
18
|
+
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
19
|
+
<%= form.password_field rodauth.password_confirm_param, value: "", id: "password-confirm", autocomplete: "new-password", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password-confirm_error_message" } if rodauth.field_error(rodauth.password_confirm_param)) %>
|
20
20
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_confirm_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password-confirm_error_message") if rodauth.field_error(rodauth.password_confirm_param) %>
|
21
21
|
</div>
|
22
22
|
<% end %>
|
23
23
|
|
24
|
-
<%= form.submit rodauth.change_password_button, class: "w-full
|
24
|
+
<%= form.submit rodauth.change_password_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
25
25
|
<% end %>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<%= form_with url: rodauth.close_account_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.close_account_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<% if rodauth.close_account_requires_password? %>
|
3
|
-
<div
|
4
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
5
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
3
|
+
<div>
|
4
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
5
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
6
6
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
7
7
|
</div>
|
8
8
|
<% end %>
|
@@ -1,33 +1,59 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
<h1 class="text-lg font-bold leading-tight tracking-tight text-gray-900 md:text-xl dark:text-white">
|
2
|
+
Create an account
|
3
|
+
</h1>
|
4
|
+
<%= form_with url: rodauth.create_account_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
5
|
+
<div>
|
6
|
+
<%= form.label "login", rodauth.login_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
7
|
+
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
8
|
+
id: "login",
|
9
|
+
autocomplete: "email",
|
10
|
+
required: true,
|
11
|
+
placeholder: "jane@acme.inc",
|
12
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login_error_message" } if rodauth.field_error(rodauth.login_param)) %>
|
13
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.login_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "login_error_message") if rodauth.field_error(rodauth.login_param) %>
|
6
14
|
</div>
|
7
15
|
|
8
16
|
<% if rodauth.require_login_confirmation? %>
|
9
|
-
<div
|
10
|
-
<%= form.label "login-confirm", rodauth.login_confirm_label, class: "block text-sm font-semibold" %>
|
11
|
-
<%= form.email_field rodauth.login_confirm_param, value: params[rodauth.login_confirm_param],
|
12
|
-
|
17
|
+
<div>
|
18
|
+
<%= form.label "login-confirm", rodauth.login_confirm_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
19
|
+
<%= form.email_field rodauth.login_confirm_param, value: params[rodauth.login_confirm_param],
|
20
|
+
id: "login-confirm",
|
21
|
+
autocomplete: "email",
|
22
|
+
required: true,
|
23
|
+
placeholder: "jane@acme.inc",
|
24
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login-confirm_error_message" } if rodauth.field_error(rodauth.login_confirm_param)) %>
|
25
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.login_confirm_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "login-confirm_error_message") if rodauth.field_error(rodauth.login_confirm_param) %>
|
13
26
|
</div>
|
14
27
|
<% end %>
|
15
28
|
|
16
29
|
<% if rodauth.create_account_set_password? %>
|
17
|
-
<div
|
18
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
19
|
-
<%= form.password_field rodauth.password_param, value: "",
|
20
|
-
|
30
|
+
<div>
|
31
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
32
|
+
<%= form.password_field rodauth.password_param, value: "",
|
33
|
+
id: "password",
|
34
|
+
autocomplete: rodauth.password_field_autocomplete_value,
|
35
|
+
required: true,
|
36
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
37
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
21
38
|
</div>
|
22
39
|
|
23
40
|
<% if rodauth.require_password_confirmation? %>
|
24
|
-
<div
|
25
|
-
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block text-sm font-semibold" %>
|
26
|
-
<%= form.password_field rodauth.password_confirm_param, value: "",
|
27
|
-
|
41
|
+
<div>
|
42
|
+
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
43
|
+
<%= form.password_field rodauth.password_confirm_param, value: "",
|
44
|
+
id: "password-confirm",
|
45
|
+
autocomplete: "new-password",
|
46
|
+
required: true,
|
47
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password-confirm_error_message" } if rodauth.field_error(rodauth.password_confirm_param)) %>
|
48
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.password_confirm_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "password-confirm_error_message") if rodauth.field_error(rodauth.password_confirm_param) %>
|
28
49
|
</div>
|
29
50
|
<% end %>
|
30
51
|
<% end %>
|
31
52
|
|
32
|
-
<%= form.submit rodauth.create_account_button, class: "w-full
|
53
|
+
<%= form.submit rodauth.create_account_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
33
54
|
<% end %>
|
55
|
+
|
56
|
+
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">
|
57
|
+
Already have an account?
|
58
|
+
<%= link_to "Login", rodauth.login_path, class: "text-primary-600 rounded-sm text-sm hover:underline hover:text-primary-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-600 dark:text-primary-300 dark:hover:text-primary-400 dark:focus-visible:ring-2 dark:focus-visible:ring-primary-300" %>
|
59
|
+
</p>
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%= form_with url: rodauth.email_auth_path, method: :post, data: { turbo: false }, class: "
|
2
|
-
<%= form.submit rodauth.login_button, class: "w-full
|
1
|
+
<%= form_with url: rodauth.email_auth_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<%= form.submit rodauth.login_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
3
3
|
<% end %>
|
@@ -1,10 +1,13 @@
|
|
1
|
-
|
1
|
+
<h1 class="text-lg font-bold leading-tight tracking-tight text-gray-900 md:text-xl dark:text-white">
|
2
|
+
Log out of your session
|
3
|
+
</h1>
|
4
|
+
<%= form_with url: rodauth.logout_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
5
|
<% if rodauth.features.include?(:active_sessions) %>
|
3
6
|
<div class="mb-6 flex items-center space-x-2">
|
4
|
-
<%= form.check_box rodauth.global_logout_param, id: "global-logout", class: "
|
5
|
-
<%= form.label "global-logout", rodauth.global_logout_label, class: "text-sm" %>
|
7
|
+
<%= form.check_box rodauth.global_logout_param, id: "global-logout", class: "w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600", include_hidden: false %>
|
8
|
+
<%= form.label "global-logout", rodauth.global_logout_label, class: "ms-2 text-sm font-medium text-gray-900 dark:text-gray-300" %>
|
6
9
|
</div>
|
7
10
|
<% end %>
|
8
11
|
|
9
|
-
<%= form.submit rodauth.logout_button, class: "w-full
|
12
|
+
<%= form.submit rodauth.logout_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
10
13
|
<% end %>
|
@@ -1,9 +1,8 @@
|
|
1
|
-
<%= form_with url: rodauth.otp_auth_path, method: :post, data: { turbo: false }, class: "
|
2
|
-
<div
|
3
|
-
<%= form.label "otp-auth-code", rodauth.otp_auth_label, class: "block text-sm font-semibold" %>
|
4
|
-
<%= form.text_field rodauth.otp_auth_param, value: "", id: "otp-auth-code", autocomplete: "off", inputmode: "numeric", required: true, class: "
|
1
|
+
<%= form_with url: rodauth.otp_auth_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<div>
|
3
|
+
<%= form.label "otp-auth-code", rodauth.otp_auth_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
4
|
+
<%= form.text_field rodauth.otp_auth_param, value: "", id: "otp-auth-code", autocomplete: "off", inputmode: "numeric", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.otp_auth_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "otp-auth-code_error_message" } if rodauth.field_error(rodauth.otp_auth_param)) %>
|
5
5
|
<%= content_tag(:span, rodauth.field_error(rodauth.otp_auth_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "otp-auth-code_error_message") if rodauth.field_error(rodauth.otp_auth_param) %>
|
6
6
|
</div>
|
7
|
-
|
8
|
-
<%= form.submit rodauth.otp_auth_button, class: "w-full px-8 py-3 cursor-pointer font-semibold text-sm rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-600 dark:bg-emerald-400 dark:hover:bg-emerald-500 dark:text-gray-900 dark:focus:ring-emerald-400 dark:focus:ring-offset-current" %>
|
7
|
+
<%= form.submit rodauth.otp_auth_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
9
8
|
<% end %>
|
@@ -1,11 +1,10 @@
|
|
1
|
-
<%= form_with url: rodauth.otp_disable_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.otp_disable_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<% if rodauth.two_factor_modifications_require_password? %>
|
3
|
-
<div
|
4
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
5
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
3
|
+
<div>
|
4
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
5
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
6
6
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
7
7
|
</div>
|
8
8
|
<% end %>
|
9
|
-
|
10
9
|
<%= form.submit rodauth.otp_disable_button, class: "w-full px-8 py-3 cursor-pointer font-semibold text-sm rounded-md bg-yellow-300 hover:bg-yellow-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-yellow-300 dark:bg-violet-400 dark:hover:bg-violet-500 dark:text-gray-900 dark:focus:ring-violet-400 dark:focus:ring-offset-current" %>
|
11
10
|
<% end %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= form_with url: rodauth.otp_setup_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.otp_setup_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<%= form.hidden_field rodauth.otp_setup_param, value: rodauth.otp_user_key, id: "otp-key" %>
|
3
3
|
<%= form.hidden_field rodauth.otp_setup_raw_param, value: rodauth.otp_key, id: "otp-hmac-secret" if rodauth.otp_keys_use_hmac? %>
|
4
4
|
|
@@ -16,19 +16,19 @@
|
|
16
16
|
<dd><%= rodauth.otp_provisioning_uri %></dd>
|
17
17
|
</dl>
|
18
18
|
|
19
|
-
<div
|
20
|
-
<%= form.label "otp-auth-code", rodauth.otp_auth_label, class: "block text-sm font-semibold" %>
|
21
|
-
<%= form.text_field rodauth.otp_auth_param, value: "", id: "otp-auth-code", autocomplete: "off", inputmode: "numeric", required: true, class: "
|
19
|
+
<div>
|
20
|
+
<%= form.label "otp-auth-code", rodauth.otp_auth_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
21
|
+
<%= form.text_field rodauth.otp_auth_param, value: "", id: "otp-auth-code", autocomplete: "off", inputmode: "numeric", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.otp_auth_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }" , aria: ({ invalid: true, describedby: "otp-auth-code_error_message" } if rodauth.field_error(rodauth.otp_auth_param)) %>
|
22
22
|
<%= content_tag(:span, rodauth.field_error(rodauth.otp_auth_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "otp-auth-code_error_message") if rodauth.field_error(rodauth.otp_auth_param) %>
|
23
23
|
</div>
|
24
24
|
|
25
25
|
<% if rodauth.two_factor_modifications_require_password? %>
|
26
|
-
<div
|
27
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
28
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
26
|
+
<div>
|
27
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
28
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
29
29
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
30
30
|
</div>
|
31
31
|
<% end %>
|
32
32
|
|
33
|
-
<%= form.submit rodauth.otp_setup_button, class: "w-full
|
33
|
+
<%= form.submit rodauth.otp_setup_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
34
34
|
<% end %>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<%=
|
2
|
-
<div
|
3
|
-
<%= form.label "recovery-code", rodauth.recovery_codes_label, class: "block text-sm font-semibold" %>
|
4
|
-
<%= form.text_field rodauth.recovery_codes_param, value: "", id: "recovery-code", autocomplete: "off", required: true, class: "
|
1
|
+
<%= resource_form_with url: rodauth.recovery_auth_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<div>
|
3
|
+
<%= form.label "recovery-code", rodauth.recovery_codes_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
4
|
+
<%= form.text_field rodauth.recovery_codes_param, value: "", id: "recovery-code", autocomplete: "off", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.recovery_codes_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "recovery-code_error_message" } if rodauth.field_error(rodauth.recovery_codes_param)) %>
|
5
5
|
<%= content_tag(:span, rodauth.field_error(rodauth.recovery_codes_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "recovery-code_error_message") if rodauth.field_error(rodauth.recovery_codes_param) %>
|
6
6
|
</div>
|
7
7
|
|
8
|
-
<%= form.submit rodauth.recovery_auth_button, class: "w-full
|
8
|
+
<%= form.submit rodauth.recovery_auth_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
9
9
|
<% end %>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<%= form_with url: rodauth.recovery_codes_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.recovery_codes_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<% if rodauth.two_factor_modifications_require_password? %>
|
3
|
-
<div
|
4
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
5
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
3
|
+
<div>
|
4
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
5
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
6
6
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
7
7
|
</div>
|
8
8
|
<% end %>
|
9
9
|
|
10
|
-
<%= form.submit rodauth.recovery_codes_button || rodauth.view_recovery_codes_button, name: (rodauth.add_recovery_codes_param if rodauth.recovery_codes_button), class: "w-full
|
10
|
+
<%= form.submit rodauth.recovery_codes_button || rodauth.view_recovery_codes_button, name: (rodauth.add_recovery_codes_param if rodauth.recovery_codes_button), class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
11
11
|
<% end %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= form_with url: rodauth.remember_path, method: :post, data: { turbo: false }, class: "
|
1
|
+
<%= form_with url: rodauth.remember_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
2
|
<fieldset class="mb-6 space-y-2">
|
3
3
|
<div class="flex items-center space-x-2">
|
4
4
|
<%= form.radio_button rodauth.remember_param, rodauth.remember_remember_param_value, id: "remember-remember", class: "dark:bg-gray-900 dark:border-gray-600 dark:checked:bg-current dark:checked:border-current dark:checked:text-emerald-400 dark:focus:ring-emerald-400 dark:focus:ring-offset-gray-900" %>
|
@@ -14,5 +14,5 @@
|
|
14
14
|
</div>
|
15
15
|
</fieldset>
|
16
16
|
|
17
|
-
<%= form.submit rodauth.remember_button, class: "w-full
|
17
|
+
<%= form.submit rodauth.remember_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
18
18
|
<% end %>
|
@@ -1,17 +1,17 @@
|
|
1
|
-
<%= form_with url: rodauth.reset_password_path, method: :post, data: { turbo: false }, class: "
|
2
|
-
<div
|
3
|
-
<%= form.label "password", rodauth.password_label, class: "block text-sm font-semibold" %>
|
4
|
-
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "
|
1
|
+
<%= form_with url: rodauth.reset_password_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<div>
|
3
|
+
<%= form.label "password", rodauth.password_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
4
|
+
<%= form.password_field rodauth.password_param, value: "", id: "password", autocomplete: rodauth.password_field_autocomplete_value, required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password_error_message" } if rodauth.field_error(rodauth.password_param)) %>
|
5
5
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password_error_message") if rodauth.field_error(rodauth.password_param) %>
|
6
6
|
</div>
|
7
7
|
|
8
8
|
<% if rodauth.require_password_confirmation? %>
|
9
|
-
<div
|
10
|
-
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block text-sm font-semibold" %>
|
11
|
-
<%= form.password_field rodauth.password_confirm_param, value: "", id: "password-confirm", autocomplete: "new-password", required: true, class: "
|
9
|
+
<div>
|
10
|
+
<%= form.label "password-confirm", rodauth.password_confirm_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
11
|
+
<%= form.password_field rodauth.password_confirm_param, value: "", id: "password-confirm", autocomplete: "new-password", required: true, class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.password_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "password-confirm_error_message" } if rodauth.field_error(rodauth.password_confirm_param)) %>
|
12
12
|
<%= content_tag(:span, rodauth.field_error(rodauth.password_confirm_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "password-confirm_error_message") if rodauth.field_error(rodauth.password_confirm_param) %>
|
13
13
|
</div>
|
14
14
|
<% end %>
|
15
15
|
|
16
|
-
<%= form.submit rodauth.reset_password_button, class: "w-full
|
16
|
+
<%= form.submit rodauth.reset_password_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
17
17
|
<% end %>
|
@@ -1,17 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
<div class="mb-4 text-sm text-gray-500 dark:text-gray-400">
|
2
|
+
<%== rodauth.reset_password_explanatory_text %>
|
3
|
+
</div>
|
4
|
+
<%= form_with url: rodauth.reset_password_request_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
6
5
|
<% if params[rodauth.login_param] && !rodauth.field_error(rodauth.login_param) %>
|
7
6
|
<%= form.hidden_field rodauth.login_param, value: params[rodauth.login_param] %>
|
8
7
|
<% else %>
|
9
|
-
<div
|
10
|
-
<%= form.label "login", rodauth.login_label, class: "block text-sm font-semibold" %>
|
11
|
-
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
12
|
-
|
8
|
+
<div>
|
9
|
+
<%= form.label "login", rodauth.login_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
10
|
+
<%= form.email_field rodauth.login_param, value: params[rodauth.login_param],
|
11
|
+
id: "login",
|
12
|
+
autocomplete: "email",
|
13
|
+
required: true,
|
14
|
+
placeholder: "jane@acme.inc",
|
15
|
+
class: "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth.field_error(rodauth.login_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "login_error_message" } if rodauth.field_error(rodauth.login_param)) %>
|
16
|
+
<%= content_tag(:span, rodauth.field_error(rodauth.login_param), class: "block mt-1 text-red-600 text-sm dark:text-red-400", id: "login_error_message") if rodauth.field_error(rodauth.login_param) %>
|
13
17
|
</div>
|
14
18
|
<% end %>
|
15
19
|
|
16
|
-
<%= form.submit rodauth.reset_password_request_button, class: "w-full
|
20
|
+
<%= form.submit rodauth.reset_password_request_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
17
21
|
<% end %>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<%= form_with url: rodauth.sms_auth_path, method: :post, data: { turbo: false }, class: "
|
2
|
-
<div
|
3
|
-
<%= form.label "sms-code", rodauth.sms_code_label, class: "block text-sm font-semibold" %>
|
1
|
+
<%= form_with url: rodauth.sms_auth_path, method: :post, data: { turbo: false }, class: "space-y-4" do |form| %>
|
2
|
+
<div>
|
3
|
+
<%= form.label "sms-code", rodauth.sms_code_label, class: "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %>
|
4
4
|
<%= form.text_field rodauth.sms_code_param, value: "", id: "sms-code", autocomplete: "one-time-code", inputmode: "numeric", required: true, class: "mt-2 text-sm w-1/2 px-3 py-2 border rounded-md dark:bg-gray-900 dark:text-gray-100 dark:focus:bg-gray-800 #{rodauth.field_error(rodauth.sms_code_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400" }", aria: ({ invalid: true, describedby: "sms-code_error_message" } if rodauth.field_error(rodauth.sms_code_param)) %>
|
5
5
|
<%= content_tag(:span, rodauth.field_error(rodauth.sms_code_param), class: "block mt-1 text-red-600 text-xs dark:text-red-400", id: "sms-code_error_message") if rodauth.field_error(rodauth.sms_code_param) %>
|
6
6
|
</div>
|
7
7
|
|
8
|
-
<%= form.submit rodauth.sms_auth_button, class: "w-full
|
8
|
+
<%= form.submit rodauth.sms_auth_button, class: "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-semibold rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %>
|
9
9
|
<% end %>
|