From 8fd2e99fa17f8bb9c4a56e7ce7e94adc081de59a Mon Sep 17 00:00:00 2001 From: zhouyu Date: Tue, 21 Jul 2026 19:03:15 -0700 Subject: [PATCH 1/4] session view with http post --- app/controllers/application_controller.rb | 13 +++++++++++++ app/views/catalog/_show_downloads.html.erb | 2 +- app/views/sessions/new.html.erb | 13 +++++++++++++ app/views/shared/_user_util_links.html.erb | 2 +- config/routes.rb | 4 ++++ 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 app/views/sessions/new.html.erb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2a9597c..089befd 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -15,4 +15,17 @@ def allow_geoblacklight_params # Blacklight::Parameters will pass these to params.permit blacklight_config.search_state_fields.append(Settings.GBL_PARAMS) end + + # root will be used as new_session_path + # Shim because we're not using Devise's :database_authenticatable + + # @param [String] return_url address that calnet will redirect to post-logout + # @return [String] uri to the calnet sso page + def calnet_logout_url(return_url = root_url) + host = Devise.omniauth_configs[:calnet].options[:host] + path = Devise.omniauth_configs[:calnet].options[:logout_url] + URI::HTTPS.build(host:, path:, query: { + service: return_url + }.to_query).to_s + end end diff --git a/app/views/catalog/_show_downloads.html.erb b/app/views/catalog/_show_downloads.html.erb index 40918be..bf3b2f6 100644 --- a/app/views/catalog/_show_downloads.html.erb +++ b/app/views/catalog/_show_downloads.html.erb @@ -17,7 +17,7 @@ <% elsif document.restricted? && document.same_institution? %>
- <%= link_to t('geoblacklight.tools.login_to_view'), user_calnet_omniauth_authorize_path, method: :post, class: ['btn', 'btn-secondary'] %> + <%= link_to t('geoblacklight.tools.login_to_view'), new_user_session_path, class: ['btn', 'btn-secondary'] %>
<% end %> diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb new file mode 100644 index 0000000..5448179 --- /dev/null +++ b/app/views/sessions/new.html.erb @@ -0,0 +1,13 @@ +
+
+
+
+
+

<%= t('links.login') %>

+

CalNet login

+ <%= button_to t('links.login'), user_calnet_omniauth_authorize_path, method: :post, class: 'btn btn-primary w-100' %> +
+
+
+
+
diff --git a/app/views/shared/_user_util_links.html.erb b/app/views/shared/_user_util_links.html.erb index c8d76d4..0d6f7e3 100644 --- a/app/views/shared/_user_util_links.html.erb +++ b/app/views/shared/_user_util_links.html.erb @@ -6,7 +6,7 @@ <% else %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index 076e457..af346c6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,6 +10,10 @@ end devise_for :users, controllers: { omniauth_callbacks: 'omniauth_callbacks' } + devise_scope :user do + get 'users/sign_in', to: 'sessions#new', as: :new_user_session + get 'users/sign_out', to: 'sessions#destroy', as: :destroy_user_session + end concern :exportable, Blacklight::Routes::Exportable.new From ec863172be5323e660677711e5f0705714c16bc0 Mon Sep 17 00:00:00 2001 From: zhouyu Date: Thu, 23 Jul 2026 13:22:37 -0700 Subject: [PATCH 2/4] update to make login work again --- app/controllers/application_controller.rb | 2 ++ app/controllers/sessions_controller.rb | 2 +- app/views/sessions/new.html.erb | 13 ------------- app/views/shared/_user_util_links.html.erb | 4 ++-- config/initializers/omniauth.rb | 3 +++ config/routes.rb | 2 +- 6 files changed, 9 insertions(+), 17 deletions(-) delete mode 100644 app/views/sessions/new.html.erb create mode 100644 config/initializers/omniauth.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 089befd..3c4870c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -19,6 +19,8 @@ def allow_geoblacklight_params # root will be used as new_session_path # Shim because we're not using Devise's :database_authenticatable + private + # @param [String] return_url address that calnet will redirect to post-logout # @return [String] uri to the calnet sso page def calnet_logout_url(return_url = root_url) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index ff2cd57..c1dba37 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -1,7 +1,7 @@ class SessionsController < ApplicationController def destroy - sign_out current_user if signed_in? + sign_out current_user if user_signed_in? redirect_to calnet_logout_url, allow_other_host: true end end diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb deleted file mode 100644 index 5448179..0000000 --- a/app/views/sessions/new.html.erb +++ /dev/null @@ -1,13 +0,0 @@ -
-
-
-
-
-

<%= t('links.login') %>

-

CalNet login

- <%= button_to t('links.login'), user_calnet_omniauth_authorize_path, method: :post, class: 'btn btn-primary w-100' %> -
-
-
-
-
diff --git a/app/views/shared/_user_util_links.html.erb b/app/views/shared/_user_util_links.html.erb index 0d6f7e3..66cf89a 100644 --- a/app/views/shared/_user_util_links.html.erb +++ b/app/views/shared/_user_util_links.html.erb @@ -1,12 +1,12 @@
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb new file mode 100644 index 0000000..a3a5197 --- /dev/null +++ b/config/initializers/omniauth.rb @@ -0,0 +1,3 @@ +# OmniAuth request phase defaults to POST in newer versions. +# Allow GET as well so direct navigation to /users/auth/calnet works. +OmniAuth.config.allowed_request_methods = %i[get post] diff --git a/config/routes.rb b/config/routes.rb index af346c6..8e313d2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,7 +11,7 @@ devise_for :users, controllers: { omniauth_callbacks: 'omniauth_callbacks' } devise_scope :user do - get 'users/sign_in', to: 'sessions#new', as: :new_user_session + get 'users/sign_in', to: redirect('/users/auth/calnet'), as: :new_user_session get 'users/sign_out', to: 'sessions#destroy', as: :destroy_user_session end From 0ce8cfa58ed00dda791d9cb85b1cf297cb2867d1 Mon Sep 17 00:00:00 2001 From: zhouyu Date: Thu, 23 Jul 2026 13:43:21 -0700 Subject: [PATCH 3/4] revert download login view --- app/views/catalog/_show_downloads.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/catalog/_show_downloads.html.erb b/app/views/catalog/_show_downloads.html.erb index bf3b2f6..40918be 100644 --- a/app/views/catalog/_show_downloads.html.erb +++ b/app/views/catalog/_show_downloads.html.erb @@ -17,7 +17,7 @@ <% elsif document.restricted? && document.same_institution? %>
- <%= link_to t('geoblacklight.tools.login_to_view'), new_user_session_path, class: ['btn', 'btn-secondary'] %> + <%= link_to t('geoblacklight.tools.login_to_view'), user_calnet_omniauth_authorize_path, method: :post, class: ['btn', 'btn-secondary'] %>
<% end %> From d5a5fdbda777d8d21f3abd50934e86f241c2d951 Mon Sep 17 00:00:00 2001 From: zhouyu Date: Mon, 27 Jul 2026 10:23:26 -0700 Subject: [PATCH 4/4] remove devise-guests gem --- Gemfile | 1 - Gemfile.lock | 78 +++++++++++++++++++++++++--------------------------- 2 files changed, 37 insertions(+), 42 deletions(-) diff --git a/Gemfile b/Gemfile index 6734acb..45fa827 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,6 @@ gem 'bootsnap', require: false gem 'bootstrap', '~> 5.3' gem 'cssbundling-rails' gem 'devise' -gem 'devise-guests', '~> 0.8' gem 'geoblacklight', '~> 5.3.0' gem 'image_processing', '~> 1.2' gem 'importmap-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 764ac1f..db27b68 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -117,7 +117,7 @@ GEM xpath (~> 3.2) coderay (1.1.3) colorize (1.1.0) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) config (5.6.1) deep_merge (~> 1.2, >= 1.2.1) ostruct @@ -138,13 +138,11 @@ GEM railties (>= 7.0) responders warden (~> 1.2.3) - devise-guests (0.8.3) - devise diff-lcs (1.6.2) docile (1.4.1) drb (2.2.3) dry-cli (1.4.1) - erb (6.0.4) + erb (6.0.6) erubi (1.13.1) faraday (2.14.3) faraday-net_http (>= 2.0, < 3.5) @@ -167,7 +165,7 @@ GEM ffi (1.17.4-x86_64-darwin) ffi (1.17.4-x86_64-linux-gnu) ffi (1.17.4-x86_64-linux-musl) - geo_combine (0.9.2) + geo_combine (0.11.0) activesupport faraday-net_http_persistent (~> 2.0) faraday-retry (~> 2.2) @@ -190,7 +188,7 @@ GEM rsolr vite_rails (~> 3.0) zeitwerk - git (4.3.2) + git (4.4.0) activesupport (>= 5.0) addressable (~> 2.8) process_executer (~> 4.0) @@ -217,7 +215,7 @@ GEM jbuilder (2.15.1) actionview (>= 7.0.0) activesupport (>= 7.0.0) - json (2.20.0) + json (2.21.1) json-schema (6.2.0) addressable (~> 2.8) bigdecimal (>= 3.1, < 5) @@ -233,15 +231,15 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - language_server-protocol (3.17.0.5) + language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) - lograge (0.14.0) + lograge (0.15.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.25.1) + loofah (2.25.2) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.9.1) @@ -256,7 +254,7 @@ GEM logger mime-types-data (~> 3.2025, >= 3.2025.0507) mime-types-data (3.2026.0701) - mini_magick (5.3.1) + mini_magick (5.3.2) logger mini_mime (1.1.5) minitar (1.1.0) @@ -270,7 +268,7 @@ GEM uri (>= 0.11.1) net-http-persistent (4.0.8) connection_pool (>= 2.2.4, < 4) - net-imap (0.6.4.1) + net-imap (0.6.6) date net-protocol net-pop (0.1.2) @@ -296,7 +294,7 @@ GEM racc (~> 1.4) nokogiri (1.19.4-x86_64-linux-musl) racc (~> 1.4) - oj (3.17.3) + oj (3.17.4) bigdecimal (>= 3.0) ostruct (>= 0.2) okcomputer (1.19.2) @@ -319,7 +317,7 @@ GEM logger (~> 1.5) oj (~> 3.17) parallel (2.1.0) - parser (3.3.11.1) + parser (3.3.12.0) ast (~> 2.4.1) racc pg (1.6.3) @@ -379,8 +377,8 @@ GEM activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.7.0) - loofah (~> 2.25) + rails-html-sanitizer (1.7.1) + loofah (~> 2.25, >= 2.25.2) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) railties (8.1.3) actionpack (= 8.1.3) @@ -393,7 +391,7 @@ GEM zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.4.2) - rbs (4.0.3) + rbs (4.1.0) logger prism (>= 1.6.0) tsort @@ -443,7 +441,7 @@ GEM rspec-support (3.13.7) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.88.1) + rubocop (1.88.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -454,7 +452,7 @@ GEM rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.49.1) + rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) rubocop-capybara (2.23.0) @@ -485,7 +483,7 @@ GEM crass (~> 1.0.2) nokogiri (>= 1.16.8) securerandom (0.4.1) - selenium-webdriver (4.45.0) + selenium-webdriver (4.46.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -528,7 +526,7 @@ GEM actionview (>= 7.1.0) activesupport (>= 7.1.0) concurrent-ruby (~> 1) - vite_rails (3.11.0) + vite_rails (3.11.1) railties (>= 5.1, < 9) vite_ruby (~> 3.0, >= 3.2.2) vite_ruby (3.10.2) @@ -573,7 +571,6 @@ DEPENDENCIES cssbundling-rails debug devise - devise-guests (~> 0.8) geoblacklight (~> 5.3.0) image_processing (~> 1.2) importmap-rails @@ -636,7 +633,7 @@ CHECKSUMS capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b colorize (1.1.0) sha256=30b5237f0603f6662ab8d1fc2bd4a96142b806c6415d79e45ef5fdc6a0cfc837 - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 config (5.6.1) sha256=a9f0f0f9ffa6d12d43147a3fa1ab8486fe484c3098a350c6a2e0f32430e0d1cc connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a crass (1.0.7) sha256=94868719948664c89ddcaf0a37c65048413dfcb1c869470a5f7a7ceb5390b295 @@ -646,12 +643,11 @@ CHECKSUMS deep_merge (1.2.2) sha256=83ced3a3d7f95f67de958d2ce41b1874e83c8d94fe2ddbff50c8b4b82323563a deprecation (1.1.0) sha256=01707cea9a6ed2d7270377457941f43394a345e6dd8048e1be6d18ff2f2a01e1 devise (5.0.4) sha256=d605f2b85854e74e56ee789e2d398702bc2d06e6bcd894717a670a3199c74cc1 - devise-guests (0.8.3) sha256=3df086c2adad4ad66661020483c16de142a487eddf2672834a7345269b7f9fa4 diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373 dry-cli (1.4.1) sha256=b8015bb76c708aa8705a36faf694973e75eeeffca39b89c8e172dc6f66a7d874 - erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9 + erb (6.0.6) sha256=a9b24986700f5bf127c4f297c5403c3ca41b83b0a316c0cd09a096b56e644ae5 erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9 faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278 faraday-follow_redirects (0.5.0) sha256=5cde93c894b30943a5d2b93c2fe9284216a6b756f7af406a1e55f211d97d10ad @@ -666,9 +662,9 @@ CHECKSUMS ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496 ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e - geo_combine (0.9.2) sha256=b4b4042e53fd23dfa1be2093675f7713f2eb926a97dcbfffca0b423b229622c6 + geo_combine (0.11.0) sha256=6e112cd09ca6961b9d21a59e278496b27f5ee8f031b4748ef4ff55c9c1089a51 geoblacklight (5.3.0) sha256=08828244f1e9d2f90be28ca665f521d412dd342cb97deeca3d12dca786cbb9d9 - git (4.3.2) sha256=a3b0706573bb8cdd9edc630c33e2611ca5cbdece086f7c142bef73bc38522907 + git (4.4.0) sha256=93d4054467a04d9038be068d64f1b982bb26be8dbb1f7b391bd6df6e626639ec globalid (1.4.0) sha256=037f12fbf1d9d7a014d501c2d5c77356fd4ddd96d7a7991d6700bba96706f427 hashie (5.1.0) sha256=c266471896f323c446ea8207f8ffac985d2718df0a0ba98651a3057096ca3870 i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5 @@ -677,23 +673,23 @@ CHECKSUMS io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 jbuilder (2.15.1) sha256=2430bec28fb0cebacb5875b1009cf9d8bc3c303ccb810c4c8b062a4b51457637 - json (2.20.0) sha256=9362bc6e55a952b056abf9167cf053358181c904cb70cd6eee0808ea830fc32b + json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 json-schema (6.2.0) sha256=e8bff46ed845a22c1ab2bd0d7eccf831c01fe23bb3920caa4c74db4306813666 kaminari (1.2.2) sha256=c4076ff9adccc6109408333f87b5c4abbda5e39dc464bd4c66d06d9f73442a3e kaminari-actionview (1.2.2) sha256=1330f6fc8b59a4a4ef6a549ff8a224797289ebf7a3a503e8c1652535287cc909 kaminari-activerecord (1.2.2) sha256=0dd3a67bab356a356f36b3b7236bcb81cef313095365befe8e98057dd2472430 kaminari-core (1.2.2) sha256=3bd26fec7370645af40ca73b9426a448d09b8a8ba7afa9ba3c3e0d39cdbb83ff - language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc + language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - lograge (0.14.0) sha256=42371a75823775f166f727639f5ddce73dd149452a55fc94b90c303213dc9ae1 - loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04 + lograge (0.15.0) sha256=34072c1f50b95019dc185137f5fec1a6759f5a1b6d55c28163d0cba204e6df16 + loofah (2.25.2) sha256=2007f746959ac65552456e04b433e83deb22759ab38c838b4445c70e43425918 mail (2.9.1) sha256=06574eca475253d6c18145dd70af80d0eb970182d55053497c5f4d797ea160e8 marcel (1.2.1) sha256=1678e9360e32f9eafa917c80029e2f6d10b2715c66a4b87b6d0da9b9cd1f859f matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b mime-types (3.7.0) sha256=dcebf61c246f08e15a4de34e386ebe8233791e868564a470c3fe77c00eed5e56 mime-types-data (3.2026.0701) sha256=cd8811e1fb89d836499ba0582368a10ee74cef929ba956d1d5ddca045e6a730f - mini_magick (5.3.1) sha256=29395dfd76badcabb6403ee5aff6f681e867074f8f28ce08d78661e9e4a351c4 + mini_magick (5.3.2) sha256=a7ef54b480b15283c396eb8343d9e088471f54b31d9974cb7e523cc57598609f mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef minitar (1.1.0) sha256=38db0cfb6f3801017946cdcd8dc53f2cf3fd41ff752892312bf9a1639c9ea23e minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 @@ -702,7 +698,7 @@ CHECKSUMS mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751 net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996 net-http-persistent (4.0.8) sha256=ef3de8319d691537b329053fae3a33195f8b070bbbfae8bf1a58c796081960e6 - net-imap (0.6.4.1) sha256=29f0360d75a7efd3539f16ac1957dea5c0a51ddeceb348db4553c3120914ea0d + net-imap (0.6.6) sha256=96aa4ee50df3060203e649efc341f53480b791d49e150f2fdebf68beb141a8df net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3 net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8 net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736 @@ -715,7 +711,7 @@ CHECKSUMS nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551 nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b - oj (3.17.3) sha256=ebe3967b0bb7ac4f206561d0d9ac8875b9973f778600d7b61b5c355662a707ed + oj (3.17.4) sha256=733fe3bcb7a5d985bd2e943620b7bea1bffb2809318af7021c841b833a6858e1 okcomputer (1.19.2) sha256=d069aedf1e31b8ebe7e1fdf9e327dee158ea49b9fbdebebc2f1bed4690cb7a6d omniauth (2.1.4) sha256=42a05b0496f0d22e1dd85d42aaf602f064e36bb47a6826a27ab55e5ba608763c omniauth-cas (3.0.2) sha256=1838b15d63b9459a5b61d0e93ab1c73b160bae866735c2a8e3b2c8572319600d @@ -724,7 +720,7 @@ CHECKSUMS ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 ougai (2.1.0) sha256=02b2ea858f09a18c2c605c186a8f913597a5e42d4990b8d135d9ec307d0e95cb parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356 - parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54 + parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99 pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea pg (1.6.3-aarch64-linux-musl) sha256=06a75f4ea04b05140146f2a10550b8e0d9f006a79cdaf8b5b130cde40e3ecc2c @@ -751,11 +747,11 @@ CHECKSUMS rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868 rails (8.1.3) sha256=6d017ba5348c98fc909753a8169b21d44de14d2a0b92d140d1a966834c3c9cd3 rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d - rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89 + rails-html-sanitizer (1.7.1) sha256=e797a7c9b01e567307e317c576b49ab4168017e63eea4dba9ce3cb587e2f22c2 railties (8.1.3) sha256=913eb0e0cb520aac687ffd74916bd726d48fa21f47833c6292576ef6a286de22 rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14 + rbs (4.1.0) sha256=8baba59008b0643b4ba2090e9b1d0149655b0bbd42eb2ffe42b1d0eb6923fd72 rchardet (1.10.2) sha256=e041cb195f464dc10e49ab130f78c8b5956cd9a4f4f6df84e0c183b87c135f33 rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469 regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb @@ -774,8 +770,8 @@ CHECKSUMS rspec-rails (8.0.4) sha256=06235692fc0892683d3d34977e081db867434b3a24ae0dd0c6f3516bad4e22df rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15 - rubocop (1.88.1) sha256=726af773d6bc169ed3ff852f3ca020b7c58d39c34e7a8d879a8e0147cc994f26 - rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035 + rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf + rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-rails (2.35.5) sha256=f00b3c936002ba8e9ac62e8607c54bb24cda44b36e41b9c7e4f3872e1b0f3fe3 @@ -786,7 +782,7 @@ CHECKSUMS rubyzip (3.4.1) sha256=0a79e745b5c25872ebd148457df5665da8530ed8626c993b01457128f173ca02 sanitize (7.0.0) sha256=269d1b9d7326e69307723af5643ec032ff86ad616e72a3b36d301ac75a273984 securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 - selenium-webdriver (4.45.0) sha256=ecac65a4df86ac6f7d707e6dcbacaa9c08b6cf2b966babecfb9653c5aa13e2d1 + selenium-webdriver (4.46.0) sha256=cb6cfa6f79eac041749df0b14cdcb0e9fe5df3715a64c77bfaa56b345b99f957 simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc @@ -805,7 +801,7 @@ CHECKSUMS uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6 useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844 view_component (4.12.0) sha256=b9a5979d1c43eba2aa21a06a86f661aab3990104855f2909ef7c3779acdcdcb4 - vite_rails (3.11.0) sha256=6e89b11aa1dd7c3fbe6f54a5b9753fd6c4ea88aba4695dcd2092ed467cfea855 + vite_rails (3.11.1) sha256=61fa4a7c9248fc28f22a05e0760810bf79f645b776c721d888a815c5d21dd338 vite_ruby (3.10.2) sha256=db465451eb180abbdc81f596ba63671d2b2552e2bb7bf3c1f7b79f9d58ca9a86 warden (1.2.9) sha256=46684f885d35a69dbb883deabf85a222c8e427a957804719e143005df7a1efd0 web-console (4.3.0) sha256=e13b71301cdfc2093f155b5aa3a622db80b4672d1f2f713119cc7ec7ac6a6da4