- fix case when caller is not able to view any PCUs
authorMark Huang <mlhuang@cs.princeton.edu>
Fri, 20 Oct 2006 18:18:13 +0000 (18:18 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Fri, 20 Oct 2006 18:18:13 +0000 (18:18 +0000)
PLC/Methods/GetPCUs.py

index 6da58a0..1330baa 100644 (file)
@@ -26,19 +26,19 @@ class GetPCUs(Method):
        # If we are not admin, make sure to only return our own PCUs
         if 'admin' not in self.caller['roles']:
             # Get list of PCUs that we are able to view
-            sites = Sites(self.api, self.caller['site_ids']).values()
-
-            valid_pcu_ids = set()
-            for site in sites:
-                valid_pcu_ids = valid_pcu_ids.union(site['pcu_ids'])
+            valid_pcu_ids = []
+            if self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids']).values()
+                for site in sites:
+                    valid_pcu_ids += site['pcu_ids']
 
+            pcu_ids = set(pcu_ids).intersection(valid_pcu_ids)
             if not pcu_ids:
-                pcu_ids = valid_pcu_ids
-            else:
-                pcu_ids = valid_pcu_ids.intersection(pcu_ids)
+                return []
 
         pcus = PCUs(self.api, pcu_ids).values()
 
+        # Turn each PCU into a real dict
        pcus = [dict(pcu) for pcu in pcus]
 
        return pcus