class Ingress::PermissionsRepository
Attributes
role_rules[R]
Public Class Methods
new()
click to toggle source
# File lib/ingress/permissions_repository.rb, line 7 def initialize @role_rules = Hashes.role_rules @role_subject_action_rule = Hashes.role_subject_action_rule end
Public Instance Methods
add_permission(role_identifier, allow, action, subject, conditions = nil)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 12 def add_permission(role_identifier, allow, action, subject, conditions = nil) rule = PermissionRule.new(allows: allow, action: action, subject: subject, conditions: conditions) add_rule(role_identifier, rule) end
copy_to_role(role_identifier, permission_repository)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 37 def copy_to_role(role_identifier, permission_repository) permission_repository.role_rules.each_pair do |_, rules| rules.each do |rule| add_rule(role_identifier, rule) end end self end
merge(permission_repository)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 28 def merge(permission_repository) permission_repository.role_rules.each_pair do |role_identifier, rules| rules.each do |rule| add_rule(role_identifier, rule) end end self end
rules_for(role_identifier, action, subject)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 17 def rules_for(role_identifier, action, subject) rules = [] rules += find_rules(role_identifier, action, subject) rules += find_rules(role_identifier, "*", "*") rules += find_rules(role_identifier, action, "*") rules += find_rules(role_identifier, "*", subject) rules end
Private Instance Methods
add_rule(role_identifier, rule)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 58 def add_rule(role_identifier, rule) @role_rules[role_identifier] << rule @role_subject_action_rule[role_identifier][rule.subject][rule.action] << rule end
find_rules(role_identifier, action, subject)
click to toggle source
# File lib/ingress/permissions_repository.rb, line 48 def find_rules(role_identifier, action, subject) rules = [] rules += @role_subject_action_rule[role_identifier][subject][action] unless subject == "*" rules += @role_subject_action_rule[role_identifier][subject.class][action] end rules end