def post(self, meta_rule_id=None, user_id=None): """Add a meta rule :param meta_rule_id: Meta rule ID :param user_id: user ID who do the request :request body: post = { "name": "name of the meta rule", "subject_categories": ["subject_category_id1", "subject_category_id2"], "object_categories": ["object_category_id1"], "action_categories": ["action_category_id1"] } :return: { "meta_rules": { "meta_rule_id1": { "name": "name of the meta rule", "subject_categories": ["subject_category_id1", "subject_category_id2"], "object_categories": ["object_category_id1"], "action_categories": ["action_category_id1"] }, } } :internal_api: add_meta_rules """ try: data = ModelManager.add_meta_rule( user_id=user_id, meta_rule_id=None, value=request.json) except Exception as e: logger.error(e, exc_info=True) return {"result": False, "error": str(e)}, 500 return {"meta_rules": data}
def post(self, meta_rule_id=None, user_id=None): """Add a meta rule :param meta_rule_id: Meta rule ID (not used here) :param user_id: user ID who do the request :request body: post = { "name": "name of the meta rule (mandatory)", "subject_categories": ["subject_category_id1 (mandatory)", "subject_category_id2"], "object_categories": ["object_category_id1 (mandatory)"], "action_categories": ["action_category_id1 (mandatory)"] } :return: { "meta_rules": { "meta_rule_id1": { "name": "name of the meta rule", "subject_categories": ["subject_category_id1", "subject_category_id2"], "object_categories": ["object_category_id1"], "action_categories": ["action_category_id1"] }, } } :internal_api: add_meta_rules """ data = ModelManager.add_meta_rule(user_id=user_id, meta_rule_id=None, value=request.json) return {"meta_rules": data}
def _import_meta_rules(self, json_meta_rules): logger.info("Input meta rules : {}".format(json_meta_rules)) for json_meta_rule in json_meta_rules: json_to_use = dict() JsonUtils.copy_field_if_exists(json_meta_rule, json_to_use, "name", str) JsonUtils.copy_field_if_exists(json_meta_rule, json_to_use, "description", str) JsonUtils.convert_names_to_ids(json_meta_rule, json_to_use, "subject_categories", "subject_categories", "subject_category", ModelManager, self._user_id) JsonUtils.convert_names_to_ids(json_meta_rule, json_to_use, "object_categories", "object_categories", "object_category", ModelManager, self._user_id) JsonUtils.convert_names_to_ids(json_meta_rule, json_to_use, "action_categories", "action_categories", "action_category", ModelManager, self._user_id) logger.debug("Adding / updating a metarule from json {}".format( json_meta_rule)) meta_rule = ModelManager.add_meta_rule(self._user_id, meta_rule_id=None, value=json_to_use) logger.debug("Added / updated meta rule : {}".format(meta_rule))
def add_meta_rule(meta_rule_id=None, value=None): from python_moondb.core import ModelManager if not value: value = { "name": "MLS_meta_rule", "description": "test", "subject_categories": ["user_security_level_id_1"], "object_categories": ["vm_security_level_id_1"], "action_categories": ["action_type_id_1"] } return ModelManager.add_meta_rule(user_id=None, meta_rule_id=meta_rule_id, value=value)
def add_meta_rule(meta_rule_id=None, value=None): from python_moondb.core import ModelManager if not value: action_category_id = mock_data.create_action_category( "action_category_id1") subject_category_id = mock_data.create_subject_category( "subject_category_id1") object_category_id = mock_data.create_object_category( "object_category_id1") value = { "name": "MLS_meta_rule", "description": "test", "subject_categories": [subject_category_id], "object_categories": [object_category_id], "action_categories": [action_category_id] } return ModelManager.add_meta_rule(user_id=None, meta_rule_id=meta_rule_id, value=value)
def create_new_meta_rule(subject_category_name="subject_category" + uuid4().hex, object_category_name="object_category" + uuid4().hex, action_category_name="action_category" + uuid4().hex, meta_rule_name="meta_rule" + uuid4().hex): from python_moondb.core import ModelManager subject_category_id = create_subject_category(subject_category_name) object_category_id = create_object_category(object_category_name) action_category_id = create_action_category(action_category_name) value = { "name": meta_rule_name, "algorithm": "name of the meta rule algorithm", "subject_categories": [subject_category_id], "object_categories": [object_category_id], "action_categories": [action_category_id] } # meta_rule = add_meta_rule(value=value) meta_rule = ModelManager.add_meta_rule(user_id=None, meta_rule_id=None, value=value) return subject_category_id, object_category_id, action_category_id, list( meta_rule.keys())[0]