(most) all functions now take SessionAuth in addition to PasswordAuth
[plcapi.git] / PLC / Methods / GetKeys.py
index de0eb13..910707b 100644 (file)
@@ -2,7 +2,7 @@ from PLC.Faults import *
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 from PLC.Keys import Key, Keys
-from PLC.Auth import PasswordAuth
+from PLC.Auth import Auth
 
 class GetKeys(Method):
     """
@@ -16,7 +16,7 @@ class GetKeys(Method):
     roles = ['admin', 'pi', 'user', 'tech']
 
     accepts = [
-        PasswordAuth(),
+        Auth(),
         [Key.fields['key_id']]
         ]
 
@@ -25,14 +25,8 @@ class GetKeys(Method):
     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']:
+            key_ids = set(key_ids).intersection(self.caller['key_ids'])
             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]
-               
-        return keys
+                return []
+
+       return Keys(self.api, key_ids).values()