Class: Hydra::AdminPolicy

Inherits:
ActiveFedora::Base
  • Object
show all
Extended by:
Deprecation
Includes:
Hydra::AccessControls::Permissions, AdminPolicyBehavior
Defined in:
lib/hydra/admin_policy.rb

Class Method Summary collapse

Methods included from Hydra::AccessControls::Permissions

#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=, #permissions_attributes=, #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

Methods included from Hydra::AccessControls::Visibility

#visibility, #visibility=, #visibility_changed?

Methods included from AdminPolicyBehavior

#default_permissions, #default_permissions=

Class Method Details

.editable_by_user(user) ⇒ Object



21
22
23
24
# File 'lib/hydra/admin_policy.rb', line 21

def self.editable_by_user(user)
  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)
  where_user_has_permissions(user, [:edit])
end

.readable_by_user(user) ⇒ Object



16
17
18
19
# File 'lib/hydra/admin_policy.rb', line 16

def self.readable_by_user(user)
  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)
  where_user_has_permissions(user, [:read, :edit])
end

.where_user_has_permissions(user, permissions = [:edit]) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/hydra/admin_policy.rb', line 26

def self.where_user_has_permissions(user, permissions=[:edit])
  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)
  or_query = [] 
  RoleMapper.roles(user).each do |group|
    permissions.each do |permission|
      or_query << ActiveFedora::SolrService.solr_name("#{permission}_access_group", indexer)+":#{group}"
    end
  end
  permissions.each do |permission|
    or_query << ActiveFedora::SolrService.solr_name("#{permission}_access_person", indexer)+":#{user.user_key}"
  end
  find_with_conditions(or_query.join(" OR "))
end