katalyst-koi 5.3.1 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -12
  3. data/app/assets/builds/katalyst/koi.esm.js +9 -19
  4. data/app/assets/builds/katalyst/koi.js +9 -19
  5. data/app/assets/builds/katalyst/koi.min.js +1 -1
  6. data/app/assets/builds/katalyst/koi.min.js.map +1 -1
  7. data/app/assets/stylesheets/koi/blocks/index.css +1 -0
  8. data/app/assets/stylesheets/koi/{login.css → blocks/roadblock.css} +8 -5
  9. data/app/controllers/admin/admin_users_controller.rb +3 -2
  10. data/app/controllers/admin/credentials_controller.rb +33 -51
  11. data/app/controllers/admin/device_authorizations_controller.rb +58 -0
  12. data/app/controllers/admin/device_tokens_controller.rb +18 -0
  13. data/app/controllers/admin/otps_controller.rb +6 -16
  14. data/app/controllers/admin/profiles_controller.rb +33 -0
  15. data/app/controllers/admin/sessions_controller.rb +12 -6
  16. data/app/controllers/admin/tokens_controller.rb +6 -2
  17. data/app/controllers/concerns/koi/controller/has_admin_users.rb +8 -11
  18. data/app/controllers/concerns/koi/controller/has_webauthn.rb +54 -9
  19. data/app/controllers/concerns/koi/controller.rb +7 -0
  20. data/app/javascript/koi/controllers/webauthn_authentication_controller.js +1 -1
  21. data/app/javascript/koi/controllers/webauthn_registration_controller.js +8 -18
  22. data/app/jobs/admin/device_authorizations_cleanup_job.rb +9 -0
  23. data/app/models/admin/credential.rb +4 -0
  24. data/app/models/admin/device_authorization.rb +113 -0
  25. data/app/models/admin/user.rb +1 -0
  26. data/app/models/koi/current.rb +8 -0
  27. data/app/views/admin/admin_users/edit.html.erb +3 -1
  28. data/app/views/admin/admin_users/show.html.erb +3 -0
  29. data/app/views/admin/credentials/_credentials.html.erb +8 -5
  30. data/app/views/admin/credentials/new.html.erb +32 -41
  31. data/app/views/admin/credentials/show.html.erb +19 -0
  32. data/app/views/admin/device_authorizations/show.html.erb +38 -0
  33. data/app/views/admin/otps/_form.html.erb +1 -1
  34. data/app/views/admin/{admin_users/_form.html+self.erb → profiles/_form.html.erb} +1 -1
  35. data/app/views/admin/{admin_users/edit.html+self.erb → profiles/edit.html.erb} +0 -1
  36. data/app/views/admin/{admin_users/show.html+self.erb → profiles/show.html.erb} +15 -10
  37. data/app/views/admin/sessions/new.html.erb +26 -27
  38. data/app/views/admin/sessions/otp.html.erb +13 -5
  39. data/app/views/admin/sessions/password.html.erb +16 -8
  40. data/app/views/admin/tokens/show.html.erb +12 -8
  41. data/app/views/layouts/koi/_application_navigation.html.erb +13 -9
  42. data/app/views/layouts/koi/application.html.erb +19 -10
  43. data/config/locales/koi.en.yml +0 -1
  44. data/config/routes.rb +17 -9
  45. data/db/migrate/20260413014834_create_admin_device_authorizations.rb +20 -0
  46. data/lib/generators/koi/helpers/resource_helpers.rb +1 -1
  47. data/lib/koi/config.rb +2 -1
  48. data/lib/koi/engine.rb +1 -0
  49. data/lib/koi/middleware/admin_authentication.rb +54 -10
  50. data/spec/factories/admin_device_authorizations.rb +29 -0
  51. metadata +30 -10
  52. data/app/views/admin/credentials/_credentials.html+self.erb +0 -12
  53. data/app/views/admin/credentials/create.turbo_stream.erb +0 -5
  54. data/app/views/admin/credentials/destroy.turbo_stream.erb +0 -5
  55. data/app/views/layouts/koi/login.html.erb +0 -50
@@ -1,50 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
-
6
- <!-- title -->
7
- <title><%= Koi.config.admin_name %></title>
8
-
9
- <!-- meta -->
10
- <%= csrf_meta_tags %>
11
- <%= csp_meta_tag %>
12
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=0.6667">
13
- <meta name="robots" content="noindex,nofollow">
14
- <%= Koi::Release.meta_tags(self) %>
15
-
16
- <meta name="turbo-refresh-method" content="morph">
17
- <meta name="turbo-refresh-scroll" content="preserve">
18
- <%= yield :head %>
19
-
20
- <!-- fonts -->
21
- <%= preload_link_tag("koi/inter-variable-v4-1.woff2") %>
22
- <%= preload_link_tag("koi/inter-variable-v4-1-italic.woff2") %>
23
- <%= preload_link_tag("koi/inconsolata-v37-latin-regular.woff2") %>
24
-
25
- <!-- icons -->
26
- <%= favicon_link_tag("koi/logo.svg") %>
27
-
28
- <!-- styles -->
29
- <%= stylesheet_link_tag(path_to_stylesheet("koi/login.css"), "data-turbo-track": "reload") %>
30
- <%= stylesheet_link_tag(Koi.config.admin_stylesheet, "data-turbo-track": "reload") %>
31
-
32
- <!-- scripts -->
33
- <%= javascript_importmap_tags(Koi.config.admin_javascript_entry_point) %>
34
- </head>
35
- <body>
36
- <main class="cover" data-centered>
37
- <div class="login | modal">
38
- <div class="wrapper flow">
39
- <header>
40
- <icon aria-hidden="true" class="icon" data-icon="koi">&nbsp;</icon>
41
- <h1>Koi</h1>
42
- <h2 class="site-name"><%= URI.parse(root_url).host %></h2>
43
- </header>
44
-
45
- <%= yield %>
46
- </div>
47
- </div>
48
- </main>
49
- </body>
50
- </html>