curation_concerns 1.7.0 → 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5fce83d5072e8e270e130b70cbbcd172c4a67f8b
4
- data.tar.gz: 810425e450dc9b3c74b34f8e2e5b5d792caad21c
3
+ metadata.gz: 26855485f2643a47ee5a78b29009b4fbcfe706c6
4
+ data.tar.gz: 88f265f67966b7e34a60fa75b04a1a89b6c690d6
5
5
  SHA512:
6
- metadata.gz: 464f2c154c361745c3fcba8eaac523c4ebee3d7a625163980c5754ac5c9f1f476fd8ccb813d3c7d39f42ab26fe96c5dfc72be5113ee0233f7397e73faaea1191
7
- data.tar.gz: f477c89852669354e20fd1243788c7dec5263e12c0636e9869478317b82422bb4ecdcd7138c5ab74cfeb8ccf5d6978ff7cb91bc206cd964dfbaf28b359fbf5c0
6
+ metadata.gz: 2104575cd50826e59ddc75148a96060e4d9f016d70d717e46228d008cb6995eb01ef3a86c099c8b3c2772acce9e23215c4d92c26e389a6c2c07ae99b2b539039
7
+ data.tar.gz: cfa2b836990e759572ed1ee9f12c1db96f678be38ea065443ad8c220e3fa719d4a1b24b1c33fbeb511fe3e2cca51383b74a3039f7701aa41f679925a3b34043e
@@ -9,9 +9,9 @@ module CurationConcerns
9
9
  class CollectionSearchBuilder < ::SearchBuilder
10
10
  include FilterByType
11
11
  # Defines which search_params_logic should be used when searching for Collections
12
- def initialize(context)
12
+ def initialize(*)
13
13
  @rows = 100
14
- super(context)
14
+ super
15
15
  end
16
16
 
17
17
  # @return [String] Solr field name indicating default sort order
@@ -25,6 +25,9 @@ module CurationConcerns
25
25
 
26
26
  def user_has_active_workflow_role?
27
27
  CurationConcerns::Workflow::PermissionQuery.scope_permitted_workflow_actions_available_for_current_state(user: current_ability.current_user, entity: current_work).any?
28
+ rescue PowerConverter::ConversionError
29
+ # The current_work doesn't have a sipity workflow entity
30
+ false
28
31
  end
29
32
  end
30
33
  end
@@ -1,4 +1,8 @@
1
1
  module CurationConcerns
2
+ # Finds a single work result. It returns no result if you don't have
3
+ # access to the requested work. If the work is suppressed (due to being in a
4
+ # workflow), then it checks to see if the current_user has any workflow role
5
+ # on the given work.
2
6
  class WorkSearchBuilder < ::SearchBuilder
3
7
  include CurationConcerns::SingleResult
4
8
  include CurationConcerns::FilterSuppressedWithRoles
@@ -1,3 +1,3 @@
1
1
  module CurationConcerns
2
- VERSION = '1.7.0'.freeze
2
+ VERSION = '1.7.1'.freeze
3
3
  end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe CurationConcerns::WorkSearchBuilder do
4
+ let(:me) { create(:user) }
5
+ let(:config) { CatalogController.blacklight_config }
6
+ let(:scope) do
7
+ double('The scope',
8
+ blacklight_config: config,
9
+ current_ability: Ability.new(me),
10
+ current_user: me)
11
+ end
12
+ let(:builder) { described_class.new(scope).with(params) }
13
+ let(:params) { { id: '123abc' } }
14
+
15
+ before do
16
+ allow(builder).to receive(:gated_discovery_filters).and_return(["access_filter1", "access_filter2"])
17
+
18
+ # This prevents any generated classes from interfering with this test:
19
+ allow(builder).to receive(:work_classes).and_return([GenericWork])
20
+ end
21
+
22
+ describe "#query" do
23
+ subject { builder.query }
24
+ let(:doc) { instance_double(SolrDocument) }
25
+ before do
26
+ allow(SolrDocument).to receive(:find).and_return(doc)
27
+ end
28
+
29
+ context "when the current_work has a workflow entity" do
30
+ before do
31
+ expect(CurationConcerns::Workflow::PermissionQuery).to receive(:scope_permitted_workflow_actions_available_for_current_state)
32
+ .with(user: me,
33
+ entity: doc).and_return(roles)
34
+ end
35
+ context "and the current user has a role" do
36
+ let(:roles) { [double] }
37
+ it "filters for id, access, suppressed and type" do
38
+ expect(subject[:fq]).to eq ["access_filter1 OR access_filter2",
39
+ "{!terms f=has_model_ssim}GenericWork,Collection",
40
+ "{!raw f=id}123abc"]
41
+ end
42
+ end
43
+ context "and the current user doesn't have a role" do
44
+ let(:roles) { [] }
45
+ it "filters for id, access, suppressed and type" do
46
+ expect(subject[:fq]).to eq ["access_filter1 OR access_filter2",
47
+ "{!terms f=has_model_ssim}GenericWork,Collection",
48
+ "-suppressed_bsi:true",
49
+ "{!raw f=id}123abc"]
50
+ end
51
+ end
52
+ end
53
+
54
+ context "when the current_work doesn't have a workflow entity" do
55
+ before do
56
+ expect(CurationConcerns::Workflow::PermissionQuery).to receive(:scope_permitted_workflow_actions_available_for_current_state)
57
+ .and_raise(PowerConverter::ConversionError.new(double, {}))
58
+ end
59
+ it "filters for id, access, suppressed and type" do
60
+ expect(subject[:fq]).to eq ["access_filter1 OR access_filter2",
61
+ "{!terms f=has_model_ssim}GenericWork,Collection",
62
+ "-suppressed_bsi:true",
63
+ "{!raw f=id}123abc"]
64
+ end
65
+ end
66
+ end
67
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curation_concerns
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-12-09 00:00:00.000000000 Z
13
+ date: 2016-12-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hydra-head
@@ -1479,6 +1479,7 @@ files:
1479
1479
  - spec/search_builders/curation_concerns/file_set_search_builder_spec.rb
1480
1480
  - spec/search_builders/curation_concerns/lease_search_builder_spec.rb
1481
1481
  - spec/search_builders/curation_concerns/work_relation_spec.rb
1482
+ - spec/search_builders/curation_concerns/work_search_builder_spec.rb
1482
1483
  - spec/search_builders/resource_types_service_spec.rb
1483
1484
  - spec/services/curation_concern_spec.rb
1484
1485
  - spec/services/curation_concerns/admin_set_service_spec.rb
@@ -1772,6 +1773,7 @@ test_files:
1772
1773
  - spec/search_builders/curation_concerns/file_set_search_builder_spec.rb
1773
1774
  - spec/search_builders/curation_concerns/lease_search_builder_spec.rb
1774
1775
  - spec/search_builders/curation_concerns/work_relation_spec.rb
1776
+ - spec/search_builders/curation_concerns/work_search_builder_spec.rb
1775
1777
  - spec/search_builders/resource_types_service_spec.rb
1776
1778
  - spec/services/curation_concern_spec.rb
1777
1779
  - spec/services/curation_concerns/admin_set_service_spec.rb