| Class | ACL |
| In: |
lib/drb/acl.rb
|
| Parent: | Object |
| VERSION | = | ["2.0.0"] |
| DENY_ALLOW | = | 0 |
| ALLOW_DENY | = | 1 |
# File lib/drb/acl.rb, line 84
84: def initialize(list=nil, order = DENY_ALLOW)
85: @order = order
86: @deny = ACLList.new
87: @allow = ACLList.new
88: install_list(list) if list
89: end
# File lib/drb/acl.rb, line 97
97: def allow_addr?(addr)
98: case @order
99: when DENY_ALLOW
100: return true if @allow.match(addr)
101: return false if @deny.match(addr)
102: return true
103: when ALLOW_DENY
104: return false if @deny.match(addr)
105: return true if @allow.match(addr)
106: return false
107: else
108: false
109: end
110: end
# File lib/drb/acl.rb, line 113
113: def install_list(list)
114: i = 0
115: while i < list.size
116: permission, domain = list.slice(i,2)
117: case permission.downcase
118: when 'allow'
119: @allow.add(domain)
120: when 'deny'
121: @deny.add(domain)
122: else
123: raise "Invalid ACL entry #{list.to_s}"
124: end
125: i += 2
126: end
127: end