Module: CommandTower::Authorization::AssignableRoles

Defined in:
lib/command_tower/authorization/assignable_roles.rb

Constant Summary collapse

OWNER_NAME =
"owner"

Class Method Summary collapse

Class Method Details

.assignable?(role) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
# File 'lib/command_tower/authorization/assignable_roles.rb', line 23

def assignable?(role)
  return false if role.nil?
  return false if role.allow_everything
  return false if role.name.to_s == OWNER_NAME

  role.source == :host
end

.assignable_name?(name) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/command_tower/authorization/assignable_roles.rb', line 31

def assignable_name?(name)
  names.include?(name.to_s)
end

.catalogObject



10
11
12
13
14
15
16
17
# File 'lib/command_tower/authorization/assignable_roles.rb', line 10

def catalog
  CommandTower::Authorization::Role.roles.values
    .select { |role| assignable?(role) }
    .sort_by { |role| role.name.to_s }
    .map do |role|
      { name: role.name.to_s, description: role.description.to_s }
    end
end

.namesObject



19
20
21
# File 'lib/command_tower/authorization/assignable_roles.rb', line 19

def names
  catalog.map { |entry| entry[:name] }.to_set
end