- def call(self, auth, slice_id_or_name_list = None):
- # Get slice information
- slices = Slices(self.api, slice_id_or_name_list).values()
+ def call(self, auth, slice_filter = None, return_fields = None):
+ # If we are not admin, make sure to return only viewable
+ # slices.
+ if 'admin' not in self.caller['roles']:
+ # Get slices that we are able to view
+ valid_slice_ids = self.caller['slice_ids']
+ if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+ sites = Sites(self.api, self.caller['site_ids'])
+ for site in sites:
+ valid_slice_ids += site['slice_ids']
+
+ if not valid_slice_ids:
+ return []
+
+ if slice_filter is None:
+ slice_filter = valid_slice_ids
+
+ slices = Slices(self.api, slice_filter, return_fields)