From 67369036badcb4ae84fb7c1c7d7dabfab27326e6 Mon Sep 17 00:00:00 2001
From: asteroide <thomas.duval@orange.com>
Date: Fri, 5 May 2017 11:12:53 +0200
Subject: Fix a bug when updating a perimeter element

Change-Id: I99e163634074b6f5fc5974cdf6417b118021a249
---
 moonv4/moon_manager/moon_manager/api/policies.py | 27 +++++++++++++-----------
 1 file changed, 15 insertions(+), 12 deletions(-)

(limited to 'moonv4')

diff --git a/moonv4/moon_manager/moon_manager/api/policies.py b/moonv4/moon_manager/moon_manager/api/policies.py
index 88c762a4..3c876fae 100644
--- a/moonv4/moon_manager/moon_manager/api/policies.py
+++ b/moonv4/moon_manager/moon_manager/api/policies.py
@@ -76,10 +76,11 @@ class Perimeter(object):
         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
+                if 'name' in args:
+                    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:
@@ -112,10 +113,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
+            if 'name' in args:
+                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:
@@ -148,10 +150,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
+            if 'name' in args:
+                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