Class: ManageIQ::API::Common::RBAC::Roles

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix = nil, scope = 'principal') ⇒ Roles

Returns a new instance of Roles.



8
9
10
11
# File 'lib/manageiq/api/common/rbac/roles.rb', line 8

def initialize(prefix = nil, scope = 'principal')
  @roles = {}
  load(prefix, scope)
end

Instance Attribute Details

#rolesObject (readonly)

Returns the value of attribute roles.



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

def roles
  @roles
end

Class Method Details

.assigned_role?(role_name) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
55
# File 'lib/manageiq/api/common/rbac/roles.rb', line 48

def self.assigned_role?(role_name)
  opts = { :name  => role_name,
           :scope => 'principal' }

  Service.call(RBACApiClient::RoleApi) do |api_instance|
    Service.paginate(api_instance, :list_roles, opts).count.positive?
  end
end

Instance Method Details

#add(name, acls) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/manageiq/api/common/rbac/roles.rb', line 24

def add(name, acls)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    role_in = RBACApiClient::RoleIn.new
    role_in.name = name
    role_in.access = acls
    api_instance.create_roles(role_in).tap do |role|
      @roles[name] = role.uuid
    end
  end
end

#delete(role) ⇒ Object



41
42
43
44
45
46
# File 'lib/manageiq/api/common/rbac/roles.rb', line 41

def delete(role)
  @roles.delete(role.name)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    api_instance.delete_role(role.uuid)
  end
end

#find(name) ⇒ Object



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

def find(name)
  uuid = @roles[name]
  get(uuid) if uuid
end

#update(role) ⇒ Object



35
36
37
38
39
# File 'lib/manageiq/api/common/rbac/roles.rb', line 35

def update(role)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    api_instance.update_role(role.uuid, role)
  end
end

#with_each_roleObject



18
19
20
21
22
# File 'lib/manageiq/api/common/rbac/roles.rb', line 18

def with_each_role
  @roles.each_value do |uuid|
    yield get(uuid)
  end
end