hydra-access-controls 8.0.0.beta1 → 8.0.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/models/concerns/hydra/access_controls/permissions.rb +0 -1
- data/hydra-access-controls.gemspec +2 -2
- data/lib/hydra/ability.rb +0 -11
- data/lib/hydra/access_controls_enforcement.rb +0 -8
- data/lib/hydra/admin_policy.rb +0 -25
- data/lib/hydra/datastream/rights_metadata.rb +0 -6
- data/lib/hydra/permissions_solr_document.rb +2 -9
- data/lib/hydra/policy_aware_ability.rb +0 -11
- data/lib/hydra/policy_aware_access_controls_enforcement.rb +0 -11
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40e759b7615b78617bcefe2142ae56d9e20fcdd3
|
4
|
+
data.tar.gz: 32093d9d2cd45ae6913644976cff53344be2532f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 268da443deb9bbc03cff733704a6517d17a3b0ec35ded2f03003b15b4bf97772fedd8bfe02f17bfa490e361400c886da3dd21a3213d36412e9daadd0c8611afc
|
7
|
+
data.tar.gz: bbb965bacc370f3b20e0d5c43e231ca321835228877c53f485e77e6b5a8eea249ec8356bb6d17672dd42e7f60db5388315f582929ee7365b7ba2d57ec03ea2bb
|
@@ -18,8 +18,8 @@ Gem::Specification.new do |gem|
|
|
18
18
|
|
19
19
|
gem.required_ruby_version = '>= 1.9.3'
|
20
20
|
|
21
|
-
gem.add_dependency 'activesupport'
|
22
|
-
gem.add_dependency "active-fedora", '~> 8.0.0
|
21
|
+
gem.add_dependency 'activesupport', '~> 4.0'
|
22
|
+
gem.add_dependency "active-fedora", '~> 8.0.0'
|
23
23
|
gem.add_dependency "om", '~> 3.0', '>= 3.0.7'
|
24
24
|
gem.add_dependency 'cancancan'
|
25
25
|
gem.add_dependency 'deprecation'
|
data/lib/hydra/ability.rb
CHANGED
@@ -3,7 +3,6 @@ require 'cancan'
|
|
3
3
|
module Hydra
|
4
4
|
module Ability
|
5
5
|
extend ActiveSupport::Concern
|
6
|
-
extend Deprecation
|
7
6
|
|
8
7
|
# once you include Hydra::Ability you can add custom permission methods by appending to ability_logic like so:
|
9
8
|
#
|
@@ -155,20 +154,10 @@ module Hydra
|
|
155
154
|
Hydra.config.permissions.read.group
|
156
155
|
end
|
157
156
|
|
158
|
-
def edit_person_field
|
159
|
-
Deprecation.warn(Ability, "The edit_person_field class method is deprecated and will be removed from Hydra::Ability in hydra-head 8.0. Use edit_user_field instead.", caller)
|
160
|
-
edit_user_field
|
161
|
-
end
|
162
|
-
|
163
157
|
def edit_user_field
|
164
158
|
Hydra.config.permissions.edit.individual
|
165
159
|
end
|
166
160
|
|
167
|
-
def read_person_field
|
168
|
-
Deprecation.warn(Ability, "The read_person_field class method is deprecated and will be removed from Hydra::Ability in hydra-head 8.0. Use read_user_field instead.", caller)
|
169
|
-
read_user_field
|
170
|
-
end
|
171
|
-
|
172
161
|
def read_user_field
|
173
162
|
Hydra.config.permissions.read.individual
|
174
163
|
end
|
@@ -36,14 +36,6 @@ module Hydra::AccessControlsEnforcement
|
|
36
36
|
false
|
37
37
|
end
|
38
38
|
|
39
|
-
def is_public?
|
40
|
-
ActiveSupport::Deprecation.warn("Hydra::AccessControlsEnforcement.is_public? has been deprecated. Use can? instead.")
|
41
|
-
load_permissions_from_solr
|
42
|
-
access_key = ActiveFedora::SolrService.solr_name("access", Hydra::Datastream::RightsMetadata.indexer)
|
43
|
-
@permissions_solr_document[access_key].present? && @permissions_solr_document[access_key].first.downcase == "public"
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
39
|
#
|
48
40
|
# Action-specific enforcement
|
49
41
|
#
|
data/lib/hydra/admin_policy.rb
CHANGED
@@ -2,7 +2,6 @@ class Hydra::AdminPolicy < ActiveFedora::Base
|
|
2
2
|
|
3
3
|
include Hydra::AdminPolicyBehavior
|
4
4
|
include Hydra::AccessControls::Permissions
|
5
|
-
extend Deprecation
|
6
5
|
|
7
6
|
has_metadata 'descMetadata', type: ActiveFedora::QualifiedDublinCoreDatastream do |m|
|
8
7
|
m.title :type=> :text, :index_as=>[:searchable]
|
@@ -13,28 +12,4 @@ class Hydra::AdminPolicy < ActiveFedora::Base
|
|
13
12
|
has_attributes :license_description, datastream: 'rightsMetadata', at: [:license, :description], multiple: false
|
14
13
|
has_attributes :license_url, datastream: 'rightsMetadata', at: [:license, :url], multiple: false
|
15
14
|
|
16
|
-
def self.readable_by_user(user)
|
17
|
-
Deprecation.warn(Hydra::AdminPolicy, "The class method Hydra::AdminPolicy.readable_by_user(user) is deprecated and will be removed from hydra-head 8.0.", caller)
|
18
|
-
where_user_has_permissions(user, [:read, :edit])
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.editable_by_user(user)
|
22
|
-
Deprecation.warn(Hydra::AdminPolicy, "The class method Hydra::AdminPolicy.editable_by_user(user) is deprecated and will be removed from hydra-head 8.0.", caller)
|
23
|
-
where_user_has_permissions(user, [:edit])
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.where_user_has_permissions(user, permissions=[:edit])
|
27
|
-
Deprecation.warn(Hydra::AdminPolicy, "The class method Hydra::AdminPolicy.where_user_has_permissions(user) is deprecated and will be removed from hydra-head 8.0.", caller)
|
28
|
-
or_query = []
|
29
|
-
RoleMapper.roles(user).each do |group|
|
30
|
-
permissions.each do |permission|
|
31
|
-
or_query << ActiveFedora::SolrService.solr_name("#{permission}_access_group", indexer)+":#{group}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
permissions.each do |permission|
|
35
|
-
or_query << ActiveFedora::SolrService.solr_name("#{permission}_access_person", indexer)+":#{user.user_key}"
|
36
|
-
end
|
37
|
-
find_with_conditions(or_query.join(" OR "))
|
38
|
-
end
|
39
|
-
|
40
15
|
end
|
@@ -3,7 +3,6 @@ module Hydra
|
|
3
3
|
module Datastream
|
4
4
|
# Implements Hydra RightsMetadata XML terminology for asserting access permissions
|
5
5
|
class RightsMetadata < ActiveFedora::OmDatastream
|
6
|
-
extend Deprecation
|
7
6
|
|
8
7
|
set_terminology do |t|
|
9
8
|
t.root(:path=>"rightsMetadata", :xmlns=>"http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1", :schema=>"http://github.com/projecthydra/schemas/tree/v1/rightsMetadata.xsd")
|
@@ -152,11 +151,6 @@ module Hydra
|
|
152
151
|
return quick_search_by_type(:group)
|
153
152
|
end
|
154
153
|
|
155
|
-
def individuals
|
156
|
-
Deprecation.warn(RightsMetadata, "The method `individuals' is deprecated and will be removed from Hydra::Datastream::RightsMetadata in hydra-head 8.0. Use `users' instead.", caller)
|
157
|
-
users
|
158
|
-
end
|
159
|
-
|
160
154
|
# Reports on which users have which permissions
|
161
155
|
# @return Hash in format {user_name => user_permissions, user_name => user_permissions}
|
162
156
|
def users
|
@@ -1,20 +1,13 @@
|
|
1
1
|
class Hydra::PermissionsSolrDocument < SolrDocument
|
2
|
+
|
2
3
|
def under_embargo?
|
3
|
-
#permissions = permissions_doc(params[:id])
|
4
4
|
embargo_key = ActiveFedora::SolrService.solr_name("embargo_release_date", Hydra::Datastream::RightsMetadata.date_indexer)
|
5
5
|
if self[embargo_key]
|
6
6
|
embargo_date = Date.parse(self[embargo_key].split(/T/)[0])
|
7
7
|
return embargo_date > Date.parse(Time.now.to_s)
|
8
8
|
end
|
9
9
|
false
|
10
|
-
end
|
11
|
-
|
12
|
-
def is_public?
|
13
|
-
ActiveSupport::Deprecation.warn("Hydra::PermissionsSolrDocument.is_public? has been deprecated. Use can? instead.")
|
14
|
-
access_key = ActiveFedora::SolrService.solr_name("access", Hydra::Datastream::RightsMetadata.indexer)
|
15
|
-
self[access_key].present? && self[access_key].first.downcase == "public"
|
16
|
-
end
|
17
|
-
|
10
|
+
end
|
18
11
|
|
19
12
|
end
|
20
13
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# Repeats access controls evaluation methods, but checks against a governing "Policy" object (or "Collection" object) that provides inherited access controls.
|
2
2
|
module Hydra::PolicyAwareAbility
|
3
3
|
extend ActiveSupport::Concern
|
4
|
-
extend Deprecation
|
5
4
|
include Hydra::Ability
|
6
5
|
|
7
6
|
# Extends Hydra::Ability.test_edit to try policy controls if object-level controls deny access
|
@@ -94,11 +93,6 @@ module Hydra::PolicyAwareAbility
|
|
94
93
|
return rg
|
95
94
|
end
|
96
95
|
|
97
|
-
def edit_persons_from_policy(policy_pid)
|
98
|
-
Deprecation.warn(Hydra::PolicyAwareAbility, "The edit_persons_from_policy method is deprecated and will be removed from Hydra::PolicyAwareAbility in hydra-head 8.0. Use edit_users_from_policy instead.", caller)
|
99
|
-
edit_users_from_policy(policy_pid)
|
100
|
-
end
|
101
|
-
|
102
96
|
# Returns the list of users granted edit access by the policy object identified by policy_pid
|
103
97
|
def edit_users_from_policy(policy_pid)
|
104
98
|
policy_permissions = policy_permissions_doc(policy_pid)
|
@@ -108,11 +102,6 @@ module Hydra::PolicyAwareAbility
|
|
108
102
|
return eu
|
109
103
|
end
|
110
104
|
|
111
|
-
def read_persons_from_policy(policy_pid)
|
112
|
-
Deprecation.warn(Hydra::PolicyAwareAbility, "The read_persons_from_policy method is deprecated and will be removed from Hydra::PolicyAwareAbility in hydra-head 8.0. Use read_users_from_policy instead.", caller)
|
113
|
-
read_users_from_policy(policy_pid)
|
114
|
-
end
|
115
|
-
|
116
105
|
# Returns the list of users granted read access by the policy object identified by policy_pid
|
117
106
|
# Note: edit implies read, so read_users is the union of edit and read users
|
118
107
|
def read_users_from_policy(policy_pid)
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# Repeats access controls evaluation methods, but checks against a governing "Policy" object (or "Collection" object) that provides inherited access controls.
|
2
2
|
module Hydra::PolicyAwareAccessControlsEnforcement
|
3
|
-
extend Deprecation
|
4
3
|
|
5
4
|
# Extends Hydra::AccessControlsEnforcement.apply_gated_discovery to reflect policy-provided access
|
6
5
|
# appends the result of policy_clauses into the :fq
|
@@ -31,11 +30,6 @@ module Hydra::PolicyAwareAccessControlsEnforcement
|
|
31
30
|
result.map {|h| h['id']}
|
32
31
|
end
|
33
32
|
|
34
|
-
def apply_policy_role_permissions(permission_types = discovery_permissions)
|
35
|
-
Deprecation.warn(Hydra::PolicyAwareAccessControlsEnforcement, "The method apply_policy_role_permissions is deprecated and will be removed from Hydra::PolicyAwareAccessControlsEnforcement in hydra-head 8.0. Use apply_policy_group_permissions instead.", caller)
|
36
|
-
apply_policy_group_permissions(permission_types)
|
37
|
-
end
|
38
|
-
|
39
33
|
def apply_policy_group_permissions(permission_types = discovery_permissions)
|
40
34
|
# for groups
|
41
35
|
user_access_filters = []
|
@@ -47,11 +41,6 @@ module Hydra::PolicyAwareAccessControlsEnforcement
|
|
47
41
|
user_access_filters
|
48
42
|
end
|
49
43
|
|
50
|
-
def apply_policy_individual_permissions(permission_types = discovery_permissions)
|
51
|
-
Deprecation.warn(Hydra::PolicyAwareAccessControlsEnforcement, "The method apply_policy_individual_permissions is deprecated and will be removed from Hydra::PolicyAwareAccessControlsEnforcement in hydra-head 8.0. Use apply_policy_user_permissions instead.", caller)
|
52
|
-
apply_policy_user_permissions(permission_types)
|
53
|
-
end
|
54
|
-
|
55
44
|
def apply_policy_user_permissions(permission_types = discovery_permissions)
|
56
45
|
# for individual user access
|
57
46
|
user_access_filters = []
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-access-controls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.0.0
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -10,36 +10,36 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-02-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
21
|
+
version: '4.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - "
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '0'
|
28
|
+
version: '4.0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: active-fedora
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 8.0.0
|
35
|
+
version: 8.0.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 8.0.0
|
42
|
+
version: 8.0.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: om
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,9 +231,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
231
|
version: 1.9.3
|
232
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
236
|
+
version: '0'
|
237
237
|
requirements: []
|
238
238
|
rubyforge_project:
|
239
239
|
rubygems_version: 2.2.2
|