[CalendarServer-changes] [11526] CalDAVClientLibrary/trunk/caldavclientlibrary

source_changes at macosforge.org source_changes at macosforge.org
Wed Jul 17 12:20:00 PDT 2013


Revision: 11526
          http://trac.calendarserver.org//changeset/11526
Author:   cdaboo at apple.com
Date:     2013-07-17 12:20:00 -0700 (Wed, 17 Jul 2013)
Log Message:
-----------
Tweak api to allow multiple sharees to be added in one request.

Modified Paths:
--------------
    CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py
    CalDAVClientLibrary/trunk/caldavclientlibrary/client/clientsession.py
    CalDAVClientLibrary/trunk/caldavclientlibrary/protocol/calendarserver/invite.py

Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py	2013-07-17 19:15:19 UTC (rev 11525)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py	2013-07-17 19:20:00 UTC (rev 11526)
@@ -160,7 +160,7 @@
         user_uid, read_write, summary = self.createInvite()
 
         # Now execute
-        self.shell.shell.account.session.addInvitee(self.shell.resource, user_uid, read_write, summary)
+        self.shell.shell.account.session.addInvitees(self.shell.resource, [user_uid, ], read_write, summary)
 
 
     def usage(self, name):
@@ -204,7 +204,7 @@
                 user_uid, read_write, summary = self.createInvite(invites.invitees[number])
 
                 # Now execute
-                self.shell.shell.account.session.addInvitee(self.shell.resource, user_uid, read_write, summary)
+                self.shell.shell.account.session.addInvitees(self.shell.resource, [user_uid, ], read_write, summary)
                 break
 
 

Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/client/clientsession.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/client/clientsession.py	2013-07-17 19:15:19 UTC (rev 11525)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/client/clientsession.py	2013-07-17 19:20:00 UTC (rev 11526)
@@ -20,7 +20,7 @@
 from caldavclientlibrary.protocol.caldav.multiget import Multiget as CalMultiget
 from caldavclientlibrary.protocol.caldav.query import QueryVEVENTTimeRange
 from caldavclientlibrary.protocol.calendarserver.invite import RemoveInvitee, Invites, \
-    AddInvitee
+    AddInvitees
 from caldavclientlibrary.protocol.carddav.makeaddressbook import MakeAddressBook
 from caldavclientlibrary.protocol.carddav.multiget import Multiget as AdbkMultiget
 from caldavclientlibrary.protocol.http.authentication.basic import Basic
@@ -92,8 +92,6 @@
         current = self.getCurrentPrincipalResource(self.rootPath)
         if current:
             self.principalPath = current
-            if self.log:
-                self.log.write("Found current principal path: %s\n" % (self.principalPath.absoluteURL(),))
             return
 
         hrefs = self.getHrefListProperty(self.rootPath, davxml.principal_collection_set)
@@ -105,8 +103,6 @@
             current = self.getCurrentPrincipalResource(href)
             if current:
                 self.principalPath = current
-                if self.log:
-                    self.log.write("Found current principal path: %s\n" % (self.principalPath.absoluteURL(),))
                 return
 
 
@@ -773,14 +769,14 @@
             return Invites().parseFromInvite(results.get(csxml.invite))
 
 
-    def addInvitee(self, rurl, user_uid, read_write, summary=None):
+    def addInvitees(self, rurl, user_uids, read_write, summary=None):
         """
         Add a sharing invite for the specified resource.
 
         @param rurl: the resource to share
         @type rurl: L{URL}
-        @param user_uid: short name or full principal path of user to share with
-        @type user_uid: C{str}
+        @param user_uids: short name or full principal path of user to share with
+        @type user_uids: C{str}
         @param read_write: whether to share read-only C{False} or read-write C{True}
         @type read_write: C{bool}
         @param summary: summary description for the share
@@ -790,7 +786,7 @@
         assert(isinstance(rurl, URL))
 
         # Add invitation POST
-        request = AddInvitee(self, rurl.relativeURL(), user_uid, read_write, summary)
+        request = AddInvitees(self, rurl.relativeURL(), user_uids, read_write, summary)
 
         # Process it
         self.runSession(request)

Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/protocol/calendarserver/invite.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/protocol/calendarserver/invite.py	2013-07-17 19:15:19 UTC (rev 11525)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/protocol/calendarserver/invite.py	2013-07-17 19:20:00 UTC (rev 11526)
@@ -100,14 +100,14 @@
 
 
 
-class AddInvitee(Post):
+class AddInvitees(Post):
     """
     HTTP POST request to add an invite for a sharee.
     """
 
-    def __init__(self, session, url, user_uid, read_write, summary=None):
-        super(AddInvitee, self).__init__(session, url)
-        self.user_uid = user_uid
+    def __init__(self, session, url, user_uids, read_write, summary=None):
+        super(AddInvitees, self).__init__(session, url)
+        self.user_uids = user_uids
         self.read_write = read_write
         self.summary = summary if summary is not None else "-"
 
@@ -130,24 +130,31 @@
         #     <CS:summary>...</CS:summary>
         #     <CS:read /> | <CS:read-write />
         #   </CS:set>
+        #   <CS:set>
+        #     <DAV:href>...</DAV:href>
+        #     <CS:summary>...</CS:summary>
+        #     <CS:read /> | <CS:read-write />
+        #   </CS:set>
+        #   ...
         # </CS:share>
 
         # <CS:share> element
         share = Element(csxml.share)
 
-        # <CS:set> element
-        set = SubElement(share, csxml.set)
+        for user_uid in self.user_uids:
+            # <CS:set> element
+            set = SubElement(share, csxml.set)
 
-        # <DAV:href> element
-        href = SubElement(set, davxml.href)
-        href.text = self.user_uid
+            # <DAV:href> element
+            href = SubElement(set, davxml.href)
+            href.text = user_uid
 
-        # <CS:summary> element
-        summary = SubElement(set, csxml.summary)
-        summary.text = self.summary
+            # <CS:summary> element
+            summary = SubElement(set, csxml.summary)
+            summary.text = self.summary
 
-        # <CS:read /> | <CS:read-write />
-        SubElement(set, csxml.read_write if self.read_write else csxml.read)
+            # <CS:read /> | <CS:read-write />
+            SubElement(set, csxml.read_write if self.read_write else csxml.read)
 
         # Now we have the complete document, so write it out (no indentation)
         xmldoc = BetterElementTree(share)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130717/ab765020/attachment-0001.html>


More information about the calendarserver-changes mailing list