Class: Hydra::AdminPolicy
Class Method Summary
collapse
Instance Method Summary
collapse
#discover_groups, #discover_groups=, #discover_groups_string, #discover_groups_string=, #discover_users, #discover_users=, #discover_users_string, #discover_users_string=, #edit_groups, #edit_groups=, #edit_groups_string, #edit_groups_string=, #edit_users, #edit_users=, #permissions, #permissions=, #read_groups, #read_groups=, #read_groups_string, #read_groups_string=, #read_users, #read_users=, #read_users_string, #read_users_string=, #set_discover_groups, #set_discover_users, #set_edit_groups, #set_edit_users, #set_read_groups, #set_read_users
Class Method Details
.editable_by_user(user) ⇒ Object
26
27
28
|
# File 'lib/hydra/admin_policy.rb', line 26
def self.editable_by_user(user)
where_user_has_permissions(user, [:edit])
end
|
.readable_by_user(user) ⇒ Object
22
23
24
|
# File 'lib/hydra/admin_policy.rb', line 22
def self.readable_by_user(user)
where_user_has_permissions(user, [:read, :edit])
end
|
.where_user_has_permissions(user, permissions = [:edit]) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/hydra/admin_policy.rb', line 30
def self.where_user_has_permissions(user, permissions=[:edit])
or_query = []
RoleMapper.roles(user).each do |group|
permissions.each do |permission|
or_query << "#{permission}_access_group_t:#{group}"
end
end
permissions.each do |permission|
or_query << "#{permission}_access_person_t:#{user.user_key}"
end
find_with_conditions(or_query.join(" OR "))
end
|
Instance Method Details
#default_permissions ⇒ Object
Returns a list with all the permissions on the object.
70
71
72
73
74
|
# File 'lib/hydra/admin_policy.rb', line 70
def default_permissions
(defaultRights.groups.map {|x| {:type=>'group', :access=>x[1], :name=>x[0] }} +
defaultRights.individuals.map {|x| {:type=>'user', :access=>x[1], :name=>x[0]}})
end
|
#default_permissions=(params) ⇒ Object
Updates those permissions that are provided to it. Does not replace any permissions unless they are provided
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/hydra/admin_policy.rb', line 47
def default_permissions=(params)
perm_hash = {'person' => defaultRights.individuals, 'group'=> defaultRights.groups}
params.each do |row|
if row[:type] == 'user' || row[:type] == 'person'
perm_hash['person'][row[:name]] = row[:access]
elsif row[:type] == 'group'
perm_hash['group'][row[:name]] = row[:access]
else
raise ArgumentError, "Permission type must be 'user', 'person' (alias for 'user'), or 'group'"
end
end
defaultRights.update_permissions(perm_hash)
end
|
#to_solr(solr_doc = {}) ⇒ Object
76
77
78
79
80
|
# File 'lib/hydra/admin_policy.rb', line 76
def to_solr(solr_doc = {})
super
solr_doc['title_display'] = solr_doc['title_t'].first if solr_doc['title_t']
solr_doc
end
|