def policy(**kwargs): """Policy helper function Spawns a Policy() object with the rule set specified in the policy.json file. """ global _cached_compiled if _cached_compiled is None: override_file = g.app.path + '/policy.json' luxon = Module('luxon') policy = luxon.read('policy.json') try: policy = js.loads(policy) except JSONDecodeError as exception: raise JSONDecodeError("Invalid Luxon 'policy.json' %s" % exception) if is_file(override_file): with open(override_file, 'r') as override: override = override.read() try: override = js.loads(override) except JSONDecodeError as exception: raise JSONDecodeError("Invalid Override 'policy.json' %s" % exception) else: override = {} policy.update(override) _cached_compiled = compiler(policy) return Policy(_cached_compiled, **kwargs)
def policy(self, req, resp): override_file = g.app.path + '/policy.json' luxon = Module('luxon') policy = luxon.read('policy.json') try: policy = js.loads(policy) except JSONDecodeError as exception: raise JSONDecodeError("Invalid Luxon 'policy.json' %s" % exception) if is_file(override_file): with open(override_file, 'r') as override: override = override.read() try: override = js.loads(override) except JSONDecodeError as exception: raise JSONDecodeError("Invalid Override 'policy.json' %s" % exception) else: override = {} policy.update(override) return render_template('photonic/policy.html', policy=policy, view="RBAC Policy Engine Rules")