katalyst-koi 4.15.1 → 4.17.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.
- checksums.yaml +4 -4
- data/app/assets/builds/koi/admin.css +1 -1
- data/app/assets/stylesheets/koi/components/_query.scss +4 -3
- data/app/assets/stylesheets/koi/layouts/_header.scss +18 -20
- data/app/assets/stylesheets/koi/pages/_login.scss +1 -1
- data/app/assets/stylesheets/koi/themes/_govuk.scss +37 -33
- data/app/assets/stylesheets/koi/utils/_typography.scss +20 -2
- data/app/controllers/admin/admin_users_controller.rb +1 -1
- data/app/controllers/admin/credentials_controller.rb +1 -1
- data/app/controllers/admin/otps_controller.rb +1 -1
- data/app/controllers/admin/sessions_controller.rb +2 -29
- data/app/controllers/admin/tokens_controller.rb +18 -44
- data/app/controllers/admin/url_rewrites_controller.rb +1 -1
- data/app/controllers/admin/well_knowns_controller.rb +71 -0
- data/app/controllers/concerns/koi/controller/has_webauthn.rb +6 -5
- data/app/controllers/concerns/koi/controller/records_authentication.rb +35 -0
- data/app/controllers/well_knowns_controller.rb +15 -0
- data/app/models/admin/user.rb +2 -0
- data/app/models/well_known.rb +25 -0
- data/app/views/admin/sessions/password.html.erb +3 -0
- data/app/views/admin/tokens/create.turbo_stream.erb +2 -0
- data/app/views/admin/tokens/show.html.erb +3 -1
- data/app/views/admin/well_knowns/_fields.html.erb +6 -0
- data/app/views/admin/well_knowns/edit.html.erb +12 -0
- data/app/views/admin/well_knowns/index.html.erb +15 -0
- data/app/views/admin/well_knowns/new.html.erb +11 -0
- data/app/views/admin/well_knowns/show.html.erb +19 -0
- data/config/routes.rb +4 -1
- data/db/migrate/20250204060748_create_well_knowns.rb +14 -0
- data/lib/generators/koi/admin_controller/templates/controller.rb.tt +2 -2
- data/lib/generators/koi/admin_route/admin_route_generator.rb +2 -1
- data/lib/generators/koi/admin_route/templates/initializer.rb.tt +1 -0
- data/spec/factories/well_knowns.rb +10 -0
- metadata +16 -10
- data/app/controllers/concerns/koi/controller/json_web_token.rb +0 -22
@@ -0,0 +1,11 @@
|
|
1
|
+
<% content_for :header do %>
|
2
|
+
<%= render(Koi::Header::NewComponent.new(model: WellKnown)) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= form_with(model: well_known, url: admin_well_knowns_path) do |form| %>
|
6
|
+
<%= render "fields", form: %>
|
7
|
+
|
8
|
+
<div class="actions">
|
9
|
+
<%= form.admin_save %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% content_for :header do %>
|
2
|
+
<%= render(Koi::Header::ShowComponent.new(resource: well_known)) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<h2>Summary</h2>
|
6
|
+
|
7
|
+
<%= summary_table_with(model: well_known) do |row| %>
|
8
|
+
<% row.link :name %>
|
9
|
+
<% row.text :purpose %>
|
10
|
+
<% row.text :content_type %>
|
11
|
+
<% row.text :content %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="actions">
|
15
|
+
<%= button_to "Delete", admin_well_known_path(well_known),
|
16
|
+
class: "button button--secondary",
|
17
|
+
method: :delete,
|
18
|
+
form: { data: { turbo_confirm: "Are you sure?" } } %>
|
19
|
+
</div>
|
data/config/routes.rb
CHANGED
@@ -7,7 +7,6 @@ Rails.application.routes.draw do
|
|
7
7
|
resources :tokens, param: :token, only: %i[show update], token: /[^\/]+/
|
8
8
|
end
|
9
9
|
|
10
|
-
resources :url_rewrites
|
11
10
|
resources :admin_users do
|
12
11
|
resources :credentials, only: %i[new create destroy]
|
13
12
|
resource :otp, only: %i[new create destroy]
|
@@ -19,6 +18,8 @@ Rails.application.routes.draw do
|
|
19
18
|
|
20
19
|
resource :cache, only: %i[destroy]
|
21
20
|
resource :dashboard, only: %i[show]
|
21
|
+
resources :well_knowns
|
22
|
+
resources :url_rewrites
|
22
23
|
|
23
24
|
root to: redirect("admin/dashboard")
|
24
25
|
end
|
@@ -28,4 +29,6 @@ Rails.application.routes.draw do
|
|
28
29
|
mount Katalyst::Navigation::Engine, at: "navigation"
|
29
30
|
mount Flipper::UI.app(Flipper) => "flipper" if Object.const_defined?("Flipper::UI")
|
30
31
|
end
|
32
|
+
|
33
|
+
resources :well_knowns, path: ".well-known", param: :name, only: %i[show], name: /[^\/]+/
|
31
34
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateWellKnowns < ActiveRecord::Migration[8.0]
|
4
|
+
def change
|
5
|
+
create_table :well_knowns do |t|
|
6
|
+
t.string :name, index: { unique: true }
|
7
|
+
t.string :purpose
|
8
|
+
t.string :content_type
|
9
|
+
t.string :content
|
10
|
+
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -50,9 +50,9 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
50
50
|
# Only allow a list of trusted parameters through.
|
51
51
|
def <%= "#{singular_table_name}_params" %>
|
52
52
|
<%- if attributes_names.empty? -%>
|
53
|
-
params.
|
53
|
+
params.expect(<%= singular_table_name %>: [])
|
54
54
|
<%- else -%>
|
55
|
-
params.
|
55
|
+
params.expect(<%= singular_table_name %>: [<%= permitted_params %>])
|
56
56
|
<%- end -%>
|
57
57
|
end
|
58
58
|
|
@@ -27,7 +27,8 @@ module Koi
|
|
27
27
|
|
28
28
|
def add_navigation
|
29
29
|
gsub_file("config/initializers/koi.rb", /Koi::Menu.modules = ({}|{\n(?:\s+.*\n)*})\n/) do |match|
|
30
|
-
|
30
|
+
# Safe because we know that this only called during code generation
|
31
|
+
config = eval(match) # rubocop:disable Security/Eval
|
31
32
|
label = [*regular_class_path.map(&:humanize), human_name.pluralize].join(" ")
|
32
33
|
path = "/admin#{route_url}"
|
33
34
|
config[label] = path
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katalyst-koi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katalyst Interactive
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-02-27 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rails
|
@@ -114,14 +113,14 @@ dependencies:
|
|
114
113
|
requirements:
|
115
114
|
- - ">="
|
116
115
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
116
|
+
version: 3.4.0
|
118
117
|
type: :runtime
|
119
118
|
prerelease: false
|
120
119
|
version_requirements: !ruby/object:Gem::Requirement
|
121
120
|
requirements:
|
122
121
|
- - ">="
|
123
122
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
123
|
+
version: 3.4.0
|
125
124
|
- !ruby/object:Gem::Dependency
|
126
125
|
name: katalyst-govuk-formbuilder
|
127
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,7 +233,6 @@ dependencies:
|
|
234
233
|
- - ">="
|
235
234
|
- !ruby/object:Gem::Version
|
236
235
|
version: '3.5'
|
237
|
-
description:
|
238
236
|
email:
|
239
237
|
- developers@katalyst.com.au
|
240
238
|
executables: []
|
@@ -375,11 +373,13 @@ files:
|
|
375
373
|
- app/controllers/admin/sessions_controller.rb
|
376
374
|
- app/controllers/admin/tokens_controller.rb
|
377
375
|
- app/controllers/admin/url_rewrites_controller.rb
|
376
|
+
- app/controllers/admin/well_knowns_controller.rb
|
378
377
|
- app/controllers/concerns/koi/controller/has_admin_users.rb
|
379
378
|
- app/controllers/concerns/koi/controller/has_attachments.rb
|
380
379
|
- app/controllers/concerns/koi/controller/has_webauthn.rb
|
381
380
|
- app/controllers/concerns/koi/controller/is_admin_controller.rb
|
382
|
-
- app/controllers/concerns/koi/controller/
|
381
|
+
- app/controllers/concerns/koi/controller/records_authentication.rb
|
382
|
+
- app/controllers/well_knowns_controller.rb
|
383
383
|
- app/helpers/koi/application_helper.rb
|
384
384
|
- app/helpers/koi/date_helper.rb
|
385
385
|
- app/helpers/koi/definition_list_helper.rb
|
@@ -394,6 +394,7 @@ files:
|
|
394
394
|
- app/models/concerns/koi/model/archivable.rb
|
395
395
|
- app/models/concerns/koi/model/otp.rb
|
396
396
|
- app/models/url_rewrite.rb
|
397
|
+
- app/models/well_known.rb
|
397
398
|
- app/views/admin/admin_users/_fields.html+self.erb
|
398
399
|
- app/views/admin/admin_users/_fields.html.erb
|
399
400
|
- app/views/admin/admin_users/archived.html.erb
|
@@ -425,6 +426,11 @@ files:
|
|
425
426
|
- app/views/admin/url_rewrites/index.html.erb
|
426
427
|
- app/views/admin/url_rewrites/new.html.erb
|
427
428
|
- app/views/admin/url_rewrites/show.html.erb
|
429
|
+
- app/views/admin/well_knowns/_fields.html.erb
|
430
|
+
- app/views/admin/well_knowns/edit.html.erb
|
431
|
+
- app/views/admin/well_knowns/index.html.erb
|
432
|
+
- app/views/admin/well_knowns/new.html.erb
|
433
|
+
- app/views/admin/well_knowns/show.html.erb
|
428
434
|
- app/views/katalyst/content/asides/_aside.html+form.erb
|
429
435
|
- app/views/katalyst/content/columns/_column.html+form.erb
|
430
436
|
- app/views/katalyst/content/contents/_content.html+form.erb
|
@@ -465,6 +471,7 @@ files:
|
|
465
471
|
- db/migrate/20230602033610_add_archived_to_admin_users.rb
|
466
472
|
- db/migrate/20231211005214_add_status_code_to_url_rewrites.rb
|
467
473
|
- db/migrate/20241214060913_add_otp_secret_to_admin_users.rb
|
474
|
+
- db/migrate/20250204060748_create_well_knowns.rb
|
468
475
|
- db/seeds.rb
|
469
476
|
- lib/generators/koi/active_record/active_record_generator.rb
|
470
477
|
- lib/generators/koi/admin/USAGE
|
@@ -504,12 +511,12 @@ files:
|
|
504
511
|
- lib/koi/release.rb
|
505
512
|
- spec/factories/admins.rb
|
506
513
|
- spec/factories/url_rewrites.rb
|
514
|
+
- spec/factories/well_knowns.rb
|
507
515
|
homepage: https://github.com/katalyst/koi
|
508
516
|
licenses:
|
509
517
|
- MIT
|
510
518
|
metadata:
|
511
519
|
rubygems_mfa_required: 'true'
|
512
|
-
post_install_message:
|
513
520
|
rdoc_options: []
|
514
521
|
require_paths:
|
515
522
|
- lib
|
@@ -524,8 +531,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
524
531
|
- !ruby/object:Gem::Version
|
525
532
|
version: '0'
|
526
533
|
requirements: []
|
527
|
-
rubygems_version: 3.
|
528
|
-
signing_key:
|
534
|
+
rubygems_version: 3.6.2
|
529
535
|
specification_version: 4
|
530
536
|
summary: Koi CMS admin framework
|
531
537
|
test_files: []
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Koi
|
4
|
-
module Controller
|
5
|
-
module JsonWebToken
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
SECRET_KEY = Rails.application.secret_key_base
|
9
|
-
|
10
|
-
def encode_token(**payload)
|
11
|
-
JWT.encode(payload, SECRET_KEY)
|
12
|
-
end
|
13
|
-
|
14
|
-
def decode_token(token)
|
15
|
-
payload = JWT.decode(token, SECRET_KEY)[0]
|
16
|
-
ActiveSupport::HashWithIndifferentAccess.new(payload)
|
17
|
-
rescue JWT::DecodeError
|
18
|
-
nil
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|