From b59054170779c1cc12f35f41ac4595e61e29a1e3 Mon Sep 17 00:00:00 2001
From: Renzo Frigato <rfrigato@stanford.edu>
Date: Tue, 2 Feb 2016 12:20:07 -0800
Subject: [PATCH] fix bugs on handlers

---
 api/handlers/collectionshandler.py | 1 +
 api/handlers/containerhandler.py   | 7 ++++---
 api/handlers/grouphandler.py       | 1 +
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/api/handlers/collectionshandler.py b/api/handlers/collectionshandler.py
index ff8861fa..6f8e5518 100644
--- a/api/handlers/collectionshandler.py
+++ b/api/handlers/collectionshandler.py
@@ -4,6 +4,7 @@ import datetime
 from .. import config
 from ..auth import containerauth, always_ok
 from ..dao import containerstorage
+from ..dao import APIStorageException
 
 from containerhandler import ContainerHandler
 
diff --git a/api/handlers/containerhandler.py b/api/handlers/containerhandler.py
index 66138571..77b1bd5a 100644
--- a/api/handlers/containerhandler.py
+++ b/api/handlers/containerhandler.py
@@ -258,9 +258,10 @@ class ContainerHandler(base.RequestHandler):
         if target_parent_container:
             if cont_name == 'sessions':
                 payload['group'] = target_parent_container['group']
-            payload['permissions'] = target_parent_container.get('roles')
-            if payload['permissions'] is None:
-                payload['permissions'] = target_parent_container['permissions']
+            if cont_name == 'projects':
+                payload['permissions'] = target_parent_container.get('roles', [])
+            else:
+                payload['permissions'] = target_parent_container.get('permissions', [])
 
         payload['modified'] = datetime.datetime.utcnow()
         if payload.get('timestamp'):
diff --git a/api/handlers/grouphandler.py b/api/handlers/grouphandler.py
index 6c99477b..390ddf50 100644
--- a/api/handlers/grouphandler.py
+++ b/api/handlers/grouphandler.py
@@ -73,6 +73,7 @@ class GroupHandler(base.RequestHandler):
         payload_validator = validators.payload_from_schema_file(self, 'group.json')
         payload_validator(payload, 'POST')
         payload['created'] = payload['modified'] = datetime.datetime.utcnow()
+        payload['roles'] = [{'_id': self.uid, 'access': 'admin', 'site': self.user_site}]
         result = mongo_validator(permchecker(self.storage.exec_op))('POST', payload=payload)
         if result.acknowledged:
             return {'_id': result.inserted_id}
-- 
GitLab