11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/legion/rbac/config_loader.rb', line 11
def self.load_roles(roles_config = nil)
roles_config ||= Legion::Settings[:rbac][:roles]
roles = roles_config.each_with_object({}) do |(name, config), index|
index[name.to_sym] = Role.new(
name: name,
description: config[:description] || '',
permissions: config[:permissions] || [],
deny: config[:deny] || [],
cross_team: config[:cross_team] || false,
capability_grants: config[:capability_grants] || [],
capability_denials: config[:capability_denials] || []
)
log.debug("RBAC role loaded name=#{name} permissions=#{config[:permissions]&.size || 0} deny=#{config[:deny]&.size || 0}")
end
log.info("RBAC roles loaded count=#{roles.size}")
roles
rescue StandardError => e
handle_exception(e, level: :error, operation: 'rbac.config_loader.load_roles')
raise
end
|