コード例 #1
0
ファイル: manager.py プロジェクト: ict-felix/stack
 def evaluate_rules(default_policy=True, **env_info):
     return_val = False
     try:
         # Create table
         PolicyManager.create_rule_table(default_policy)
         # Read and store rules
         rules = PolicyManager.read_rules()
         PolicyManager.store_rules(rules)
         requests = PolicyManager.get_data_from_env(env_info)
         # Policies are enforced over a number of objects (creds, HTTP req, etc)
         for request in requests:
             # Parse request or credential only on appropriate methods
             # i.e. when not present, ignore
             dict_req = Parser.parse(request)
             # Invoke policy enforcement
             # - If not possible, evaluate to True (continue workflow)
             if dict_req:
                 return_val = PolicyEngine.verify(dict_req)
             else:
                 return_val = True
         return return_val
     except Exception as e:
         import traceback
         print traceback.print_exc()
         print "Error evaluating rules: ", e