Class: ManageIQ::API::Common::RBAC::ACL

Inherits:
Object
  • Object
show all
Defined in:
lib/manageiq/api/common/rbac/acl.rb

Instance Method Summary collapse

Instance Method Details

#add(acls, resource_id, permissions) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/manageiq/api/common/rbac/acl.rb', line 18

def add(acls, resource_id, permissions)
  new_acls = permissions.each_with_object([]) do |permission, as|
    next if find_matching(acls, resource_id, permission)

    as << create_acl(permission, resource_id)
  end
  new_acls + acls
end

#create(resource_id, permissions) ⇒ Object



6
7
8
9
10
# File 'lib/manageiq/api/common/rbac/acl.rb', line 6

def create(resource_id, permissions)
  permissions.collect do |permission|
    create_acl(permission, resource_id)
  end
end

#remove(acls, resource_id, permissions) ⇒ Object



12
13
14
15
16
# File 'lib/manageiq/api/common/rbac/acl.rb', line 12

def remove(acls, resource_id, permissions)
  permissions.each_with_object(acls) do |permission, as|
    delete_matching(as, resource_id, permission)
  end
end

#resource_defintions_empty?(acls, permission) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
34
# File 'lib/manageiq/api/common/rbac/acl.rb', line 27

def resource_defintions_empty?(acls, permission)
  acls.each do |acl|
    if acl.permission == permission
      return acl.resource_definitions.empty?
    end
  end
  true
end