14 lines
431 B
Python
14 lines
431 B
Python
|
|
class Policy:
|
||
|
|
def __init__(self, flags=None):
|
||
|
|
self.flags = dict(flags or {})
|
||
|
|
self._decision_cache = {}
|
||
|
|
|
||
|
|
def set_flag(self, name, enabled):
|
||
|
|
self.flags[name] = bool(enabled)
|
||
|
|
|
||
|
|
def allows(self, user_id, flag):
|
||
|
|
key = (user_id, flag)
|
||
|
|
if key not in self._decision_cache:
|
||
|
|
self._decision_cache[key] = bool(self.flags.get(flag, False))
|
||
|
|
return self._decision_cache[key]
|