fix bugs in delegate command
authorTony Mack <tmack@cs.princeton.edu>
Mon, 29 Mar 2010 15:34:21 +0000 (15:34 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Mon, 29 Mar 2010 15:34:21 +0000 (15:34 +0000)
sfa/client/sfi.py

index b4bedf9..e4421aa 100755 (executable)
@@ -602,7 +602,7 @@ class Sfi:
            print "Error: Object credential", object_hrn, "does not have delegate bit set"
            return
     
-       records = self.registry.resolve(user_cred, args[0])
+       records = self.registry.resolve(user_cred.save_to_string(save_parents=True), args[0])
        records = filter_records("user", records)
     
        if not records:
@@ -610,14 +610,15 @@ class Sfi:
            return
     
        # the gid of the user who will be delegated too
-       delegee_gid = records[0].get_gid_object()
+       delegee_gid = GID(string=records[0]['gid'])
        delegee_hrn = delegee_gid.get_hrn()
     
        # the key and hrn of the user who will be delegating
        user_key = Keypair(filename = self.get_key_file())
        user_hrn = user_cred.get_gid_caller().get_hrn()
-    
-       dcred = Credential(subject=object_hrn + " delegated to " + delegee_hrn)
+   
+       subject_string = "%s delegated to %s" % (object_hrn, delegee_hrn)
+       dcred = Credential(subject=subject_string)
        dcred.set_gid_caller(delegee_gid)
        dcred.set_gid_object(object_gid)
        dcred.set_privileges(object_cred.get_privileges())