[CalendarServer-changes] [4041] CalendarServer/branches/users/sagen/resource-delegates-4038/bin/ caldav_utility.py

source_changes at macosforge.org source_changes at macosforge.org
Sat Apr 18 17:36:29 PDT 2009


Revision: 4041
          http://trac.macosforge.org/projects/calendarserver/changeset/4041
Author:   sagen at apple.com
Date:     2009-04-18 17:36:29 -0700 (Sat, 18 Apr 2009)
Log Message:
-----------
Now can list either read-only or read-write delegates

Modified Paths:
--------------
    CalendarServer/branches/users/sagen/resource-delegates-4038/bin/caldav_utility.py

Modified: CalendarServer/branches/users/sagen/resource-delegates-4038/bin/caldav_utility.py
===================================================================
--- CalendarServer/branches/users/sagen/resource-delegates-4038/bin/caldav_utility.py	2009-04-19 00:08:45 UTC (rev 4040)
+++ CalendarServer/branches/users/sagen/resource-delegates-4038/bin/caldav_utility.py	2009-04-19 00:36:29 UTC (rev 4041)
@@ -158,15 +158,15 @@
             result = (yield resource.readProperty((namespace, name)))
             print result.toxml()
 
-        elif opt in ("--list-write-delegates",):
+        elif opt in ("--list-write-delegates", "--list-read-delegates"):
             if resource is None: abort("No current resource.")
 
-            subPrincipal = resource.getChild("calendar-proxy-write")
-            if subPrincipal is None:
-                abort("No proxy subprincipal found for %s" % (resource.resource,))
-            namespace, name = davxml.dav_namespace, "group-member-set"
-            result = (yield subPrincipal.readProperty((namespace, name)))
-            print result.toxml()
+            permission = "write" if "write" in opt else "read"
+            print "Delegates (%s) for %s:" % (permission, resource.resource)
+            paths = (yield resource.getDelegates(permission))
+            for path in paths:
+                delegate = root.getChild(path)
+                print delegate.resource
 
         elif opt in ("--add-write-delegate", "--add-read-delegate"):
             if resource is None: abort("No current resource.")
@@ -265,6 +265,23 @@
             result = (yield subPrincipal.writeProperty(newProp))
             returnValue(result)
 
+    @inlineCallbacks
+    def getDelegates(self, permission):
+
+        subPrincipalName = "calendar-proxy-%s" % (permission,)
+        subPrincipal = self.getChild(subPrincipalName)
+        if subPrincipal is None:
+            abort("No proxy subprincipal found for %s" % (self.resource,))
+
+        namespace, name = davxml.dav_namespace, "group-member-set"
+        prop = (yield subPrincipal.readProperty((namespace, name)))
+        result = []
+        for child in prop.children:
+            result.append(str(child))
+        returnValue(result)
+
+
+
     def url(self):
         return self.resource.url()
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090418/25ff2001/attachment.html>


More information about the calendarserver-changes mailing list