From 1476b2be2a96ec89d0def6f776d272d234353653 Mon Sep 17 00:00:00 2001 From: Jeremy Friesen Date: Fri, 22 Dec 2023 08:42:34 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20Attempting=20to=20find=20and=20s?= =?UTF-8?q?quash=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 27 +++++++++++++++++++++++++++ app/models/user.rb | 5 +++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 47a2376d5..8e0e71b30 100644 --- a/Gemfile +++ b/Gemfile @@ -91,6 +91,7 @@ gem 'selenium-webdriver', '4.8.1', group: %i[test] gem 'shoulda-matchers', '~> 4.0', group: %i[test] gem 'sidekiq', "< 7.0" # sidekiq 7 requires upgrade to redis 6 gem 'simplecov', require: false, group: %i[development test] +gem 'solargraph', group: %i[development] gem 'solr_wrapper', '~> 2.0', group: %i[development test] gem 'spring', '~> 1.7', group: %i[development] gem 'spring-watcher-listen', '~> 2.0.0', group: %i[development] diff --git a/Gemfile.lock b/Gemfile.lock index 9e330d35d..3f60fc80f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -253,6 +253,7 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) + backport (1.2.0) bagit (0.4.6) docopt (~> 0.5.0) validatable (~> 1.6) @@ -261,6 +262,7 @@ GEM i18n bcp47_spec (0.2.1) bcrypt (3.1.20) + benchmark (0.3.0) benchmark_methods (0.7) better_html (2.0.2) actionview (>= 6.0) @@ -511,6 +513,7 @@ GEM dry-initializer (~> 3.0) dry-schema (>= 1.12, < 2) zeitwerk (~> 2.6) + e2mmap (0.1.0) easy_translate (0.5.1) thread thread_safe @@ -683,6 +686,7 @@ GEM activesupport (>= 4) iso-639 (0.3.6) iso8601 (0.9.1) + jaro_winkler (1.5.6) jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) @@ -727,6 +731,10 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) language_list (1.2.1) latex-decode (0.4.0) launchy (2.5.2) @@ -1101,6 +1109,8 @@ GEM actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) + reverse_markdown (2.1.1) + nokogiri rexml (3.2.6) riiif (2.4.0) deprecation (>= 1.0.0) @@ -1236,6 +1246,21 @@ GEM snaky_hash (2.0.1) hashie version_gem (~> 1.1, >= 1.1.1) + solargraph (0.48.0) + backport (~> 1.2) + benchmark + bundler (>= 1.17.2) + diff-lcs (~> 1.4) + e2mmap + jaro_winkler (~> 1.5) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.1) + parser (~> 3.0) + reverse_markdown (>= 1.0.5, < 3) + rubocop (>= 0.52) + thor (~> 1.0) + tilt (~> 2.0) + yard (~> 0.9, >= 0.9.24) solr_wrapper (2.2.0) faraday retriable @@ -1364,6 +1389,7 @@ GEM psych (>= 3.3) rdf (~> 3.2, >= 3.2.9) rdf-xsd (~> 3.2) + yard (0.9.34) zeitwerk (2.6.12) zlib (2.1.1) @@ -1458,6 +1484,7 @@ DEPENDENCIES shoulda-matchers (~> 4.0) sidekiq (< 7.0) simplecov + solargraph solr_wrapper (~> 2.0) spring (~> 1.7) spring-watcher-listen (~> 2.0.0) diff --git a/app/models/user.rb b/app/models/user.rb index e5f18036f..e72db91b6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -100,7 +100,8 @@ def site_roles=(roles) # u.hyrax_groups # => [#] def hyrax_groups - roles.where(name: 'member', resource_type: 'Hyrax::Group').map(&:resource).uniq + # Why compact? In theory we shouldn't need this. But in tests we're seeing a case + roles.where(name: 'member', resource_type: 'Hyrax::Group').map(&:resource).uniq.compact end # Override method from hydra-access-controls v11.0.0 to use Hyrax::Groups. @@ -114,7 +115,7 @@ def groups # Looking at `#hyrax_groups` method, it's unclear how we'd find `nil`. # # Perhaps the `Hyrax::Group` is in a tenant and `Role` is not? Hmm. - raise "Hyrax::Groups: #{roles.where(name: 'member', resource_type: 'Hyrax::Group').map(&:resource).inspect}\nRoles: #{roles.all.inspect}" + raise "Hyrax::Groups: #{roles.where(name: 'member', resource_type: 'Hyrax::Group').all.inspect}\nRoles: #{roles.all.inspect}" end # NOTE: This is an alias for #groups to clarify what the method is doing.