From 6ca63399c475f534b9fa533f38e5642fc2122c44 Mon Sep 17 00:00:00 2001 From: asteroide Date: Fri, 28 Apr 2017 15:22:15 +0200 Subject: Fix a bug when saving a perimeter element Change-Id: Ie274c020cb3f3a1776d10ca9850c5c424d693c5b --- moonv4/moon_manager/moon_manager/api/policies.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'moonv4/moon_manager') diff --git a/moonv4/moon_manager/moon_manager/api/policies.py b/moonv4/moon_manager/moon_manager/api/policies.py index e2f332e2..8b242478 100644 --- a/moonv4/moon_manager/moon_manager/api/policies.py +++ b/moonv4/moon_manager/moon_manager/api/policies.py @@ -74,6 +74,12 @@ class Perimeter(object): def set_subject(self, ctx, args): try: + if not ctx["perimeter_id"]: + data = self.manager.get_subjects(user_id=ctx["user_id"], policy_id=None) + for data_id, data_value in data.items(): + if data_value['name'] == args['name']: + ctx["perimeter_id"] = data_id + break data = self.manager.add_subject(user_id=ctx["user_id"], policy_id=ctx["id"], perimeter_id=ctx["perimeter_id"], value=args) except Exception as e: @@ -105,6 +111,11 @@ class Perimeter(object): def set_object(self, ctx, args): try: + data = self.manager.get_objects(user_id=ctx["user_id"], policy_id=None) + for data_id, data_value in data.items(): + if data_value['name'] == args['name']: + ctx["perimeter_id"] = data_id + break data = self.manager.add_object(user_id=ctx["user_id"], policy_id=ctx["id"], perimeter_id=ctx["perimeter_id"], value=args) except Exception as e: @@ -136,6 +147,11 @@ class Perimeter(object): def set_action(self, ctx, args): try: + data = self.manager.get_actions(user_id=ctx["user_id"], policy_id=None) + for data_id, data_value in data.items(): + if data_value['name'] == args['name']: + ctx["perimeter_id"] = data_id + break data = self.manager.add_action(user_id=ctx["user_id"], policy_id=ctx["id"], perimeter_id=ctx["perimeter_id"], value=args) except Exception as e: -- cgit 1.2.3-korg