[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