Beispiel #1
0
    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}
Beispiel #2
0
    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}
Beispiel #3
0
 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))
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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]