Module: HydraAccessControlsHelper

Included in:
ApplicationController
Defined in:
vendor/plugins/hydra_repository/app/helpers/hydra_access_controls_helper.rb

Instance Method Summary (collapse)

Instance Method Details

- (Boolean) editor?

Returns:

  • (Boolean)


40
41
42
# File 'vendor/plugins/hydra_repository/app/helpers/hydra_access_controls_helper.rb', line 40

def editor?
  test_permission(:edit) or (current_user and current_user.is_being_superuser?(session))
end

- (Boolean) reader?

Returns:

  • (Boolean)


44
45
46
# File 'vendor/plugins/hydra_repository/app/helpers/hydra_access_controls_helper.rb', line 44

def reader?
  test_permission(:read) or (current_user and current_user.is_being_superuser?(session))
end

- (Object) test_permission(permission_type)



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'vendor/plugins/hydra_repository/app/helpers/hydra_access_controls_helper.rb', line 3

def test_permission(permission_type)    
  # if !current_user.nil?
    if (@document == nil)
      logger.warn("SolrDocument is nil")
    end

    if current_user.nil? 
      user = "public"
      logger.debug("current_user is nil, assigning public")
    else
      user = current_user.
    end
    
    user_groups = RoleMapper.roles(user)
    # everyone is automatically a member of the group 'public'
    user_groups.push 'public' unless user_groups.include?('public')
    logger.debug("User #{user} is a member of groups: #{user_groups.inspect}")
    case permission_type
      when :edit
        logger.debug("Checking edit permissions for user: #{user}")
        group_intersection = user_groups & edit_groups
        result = !group_intersection.empty? || edit_persons.include?(user)
      when :read
        logger.debug("Checking read permissions for user: #{user}")
        group_intersection = user_groups & read_groups
        result = !group_intersection.empty? || read_persons.include?(user)
      else
        result = false
    end
    logger.debug("test_permission result: #{result}")
    return result
  # else
  #   logger.debug("nil user, test_permission returning false")
  #   return false
  # end
end