- def call(self, auth, key_ids = None):
- # If we are not admin, make sure to only return our own keys
- if 'admin' not in self.caller['roles']:
- if not key_ids:
- key_ids = self.caller['key_ids']
- else:
- key_ids = set(self.caller['key_ids']).intersection(key_ids)
-
- keys = Keys(self.api, key_ids).values()
-
- # Turn each key into a real dict
- keys = [dict(key) for key in keys]
-
+
+ def call(self, auth, key_filter = None, return_fields = None):
+ keys = Keys(self.api, key_filter, return_fields)
+
+ # If we are not admin, make sure to only return our own keys
+ if isinstance(self.caller, Person) and \
+ 'admin' not in self.caller['roles']:
+ keys = filter(lambda key: key['key_id'] in self.caller['key_ids'], keys)
+