コード例 #1
0
ファイル: policy.py プロジェクト: TachyonicProject/luxon
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)
コード例 #2
0
    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")