aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/moon_manager/api/json_export.py
diff options
context:
space:
mode:
authorfrancois.cellier <francois.cellier@orange.com>2018-03-13 17:38:59 +0100
committerThomas Duval <thomas.duval@orange.com>2018-03-15 14:17:17 +0100
commit73326131f58c5ca208cd54025e12ee9de543d4a7 (patch)
tree7353cbd0cefada1f73c94c11c878bda8e53d4e88 /moon_manager/moon_manager/api/json_export.py
parentd425d4edf13ed389cd34113bd9fd78eaa0a08c20 (diff)
fix a bug on rules : the rules ids are now checked to be consistent with respect to the meta rule
Change-Id: I0126ab6b7c1bdcc9babd2c5d7e34782a88394e7c
Diffstat (limited to 'moon_manager/moon_manager/api/json_export.py')
-rw-r--r--moon_manager/moon_manager/api/json_export.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/moon_manager/moon_manager/api/json_export.py b/moon_manager/moon_manager/api/json_export.py
index 9ddcfc8d..1d3643e7 100644
--- a/moon_manager/moon_manager/api/json_export.py
+++ b/moon_manager/moon_manager/api/json_export.py
@@ -39,11 +39,19 @@ class JsonExport(Resource):
JsonUtils.convert_id_to_name(policy_key, rule_dict, "policy", "policy", PolicyManager, self._user_id)
ids = rule["rule"]
rule_description = dict()
- JsonUtils.convert_ids_to_names([ids[0]], rule_description, "subject_data", "subject_data", PolicyManager, self._user_id, policy_key)
- JsonUtils.convert_ids_to_names([ids[1]], rule_description, "object_data", "object_data", PolicyManager, self._user_id, policy_key)
- JsonUtils.convert_ids_to_names([ids[2]], rule_description, "action_data", "action_data", PolicyManager, self._user_id, policy_key)
+ meta_rule = ModelManager.get_meta_rules(self._user_id, rule["meta_rule_id"])
+ meta_rule = [v for v in meta_rule.values()]
+ meta_rule = meta_rule[0]
+ index_subject_data = len(meta_rule["subject_categories"])-1
+ index_object_data = len(meta_rule["subject_categories"]) + len(meta_rule["object_categories"])-1
+ index_action_data = len(meta_rule["subject_categories"]) + len(meta_rule["object_categories"]) + len(meta_rule["action_categories"])-1
+ ids_subject_data = [ids[0]] if len(meta_rule["subject_categories"]) == 1 else ids[0:index_subject_data]
+ ids_object_data = [ids[index_object_data]] if len(meta_rule["object_categories"]) == 1 else ids[index_subject_data+1:index_object_data]
+ ids_action_date = [ids[index_action_data]] if len(meta_rule["action_categories"]) == 1 else ids[index_object_data+1:index_action_data]
+ JsonUtils.convert_ids_to_names(ids_subject_data, rule_description, "subject_data", "subject_data", PolicyManager, self._user_id, policy_key)
+ JsonUtils.convert_ids_to_names(ids_object_data, rule_description, "object_data", "object_data", PolicyManager, self._user_id, policy_key)
+ JsonUtils.convert_ids_to_names(ids_action_date, rule_description, "action_data", "action_data", PolicyManager, self._user_id, policy_key)
rule_dict["rule"] = rule_description
- logger.info("Exporting rule {}".format(rule_dict))
rules_array.append(rule_dict)
if len(rules_array) > 0: