Skip to content

Commit a48c602

Browse files
authored
Merge pull request #6712 from samvera/treat-valkyrie-id-and-string-same-for-permissions
🐛 Account for String and Valkyrie::ID Permissions
2 parents d8e5025 + 2cde6c1 commit a48c602

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

app/models/concerns/hyrax/ability.rb

+7-7
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ def admin?
124124
#
125125
# Overrides hydra-head, (and restores the method from blacklight-access-controls)
126126
def download_permissions
127-
can :download, String do |id|
128-
test_download(id)
127+
can :download, [::String, ::Valkyrie::ID] do |id|
128+
test_download(id.to_s)
129129
end
130130

131131
can :download, ::SolrDocument do |obj|
@@ -189,8 +189,8 @@ def uploaded_file_abilities
189189
# self.ability_logic += [:proxy_deposit_abilities]
190190
def proxy_deposit_abilities
191191
if Flipflop.transfer_works?
192-
can :transfer, String do |id|
193-
user_is_depositor?(id)
192+
can :transfer, [::String, Valkyrie::ID] do |id|
193+
user_is_depositor?(id.to_s)
194194
end
195195
end
196196

@@ -368,7 +368,7 @@ def admin_permissions
368368
alias_action :show, to: :read
369369
alias_action :discover, to: :read
370370
can :update, :appearance
371-
can :manage, String # The identifier of a work or FileSet
371+
can :manage, [String, Valkyrie::ID] # The identifier of a work or FileSet
372372
can :manage, curation_concerns_models
373373
can :manage, Sipity::WorkflowResponsibility
374374
can :manage, :collection_types
@@ -414,9 +414,9 @@ def registered_user?
414414
end
415415

416416
# Returns true if the current user is the depositor of the specified work
417-
# @param document_id [String] the id of the document.
417+
# @param document_id [String, Valkyrie::ID] the id of the document.
418418
def user_is_depositor?(document_id)
419-
doc = Hyrax::SolrService.search_by_id(document_id, fl: 'depositor_ssim')
419+
doc = Hyrax::SolrService.search_by_id(document_id.to_s, fl: 'depositor_ssim')
420420
current_user.user_key == doc['depositor_ssim']&.first
421421
end
422422

app/models/concerns/hyrax/ability/collection_ability.rb

+7-2
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,18 @@ def collection_abilities # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
3535
can :deposit, ::SolrDocument do |solr_doc|
3636
Hyrax::Collections::PermissionsService.can_deposit_in_collection?(ability: self, collection_id: solr_doc.id) # checks collections and admin_sets
3737
end
38-
can :deposit, String do |collection_id|
39-
Hyrax::Collections::PermissionsService.can_deposit_in_collection?(ability: self, collection_id: collection_id)
38+
39+
can :deposit, [::String, ::Valkyrie::ID] do |collection_id|
40+
Hyrax::Collections::PermissionsService.can_deposit_in_collection?(ability: self, collection_id: collection_id.to_s)
4041
end
4142

4243
can :view_admin_show, ::SolrDocument do |solr_doc| # admin show page
4344
Hyrax::Collections::PermissionsService.can_view_admin_show_for_collection?(ability: self, collection_id: solr_doc.id) # checks collections and admin_sets
4445
end
46+
47+
can :view_admin_show, [::String, ::Valkyrie::ID] do |collection_id| # admin show page
48+
Hyrax::Collections::PermissionsService.can_view_admin_show_for_collection?(ability: self, collection_id: collection_id.to_s) # checks collections and admin_sets
49+
end
4550
end
4651
end
4752
end

0 commit comments

Comments
 (0)