[CalendarServer-changes] [10931] CalendarServer/branches/users/gaya/sharedgroups/twistedcaldav/ sharing.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Mar 15 10:43:41 PDT 2013


Revision: 10931
          http://trac.calendarserver.org//changeset/10931
Author:   gaya at apple.com
Date:     2013-03-15 10:43:40 -0700 (Fri, 15 Mar 2013)
Log Message:
-----------
fix isShared()

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/sharedgroups/twistedcaldav/sharing.py

Modified: CalendarServer/branches/users/gaya/sharedgroups/twistedcaldav/sharing.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/twistedcaldav/sharing.py	2013-03-15 17:01:43 UTC (rev 10930)
+++ CalendarServer/branches/users/gaya/sharedgroups/twistedcaldav/sharing.py	2013-03-15 17:43:40 UTC (rev 10931)
@@ -88,7 +88,7 @@
                 )
 
             # See if this property is on the shared calendar
-            isShared = yield self.isShared(request)
+            isShared = self.isShared(request)
             if isShared:
                 yield self.validateInvites(request)
                 invitations = yield self._allInvitations()
@@ -146,7 +146,7 @@
 
     @inlineCallbacks
     def changeUserInviteState(self, request, inviteUID, shareeUID, state, summary=None):
-        shared = (yield self.isShared(request))
+        shared = self.isShared(request)
         if not shared:
             raise HTTPError(ErrorResponse(
                 responsecode.FORBIDDEN,
@@ -241,15 +241,26 @@
         returnValue(response)
 
 
-    @inlineCallbacks
-    def isShared(self, request):
+    def isShared(self, request): #@UnusedVariable
         """
-        Return True if this is an owner shared calendar collection.
+        Return True if this is an owner shared resource
+        Similar to self.isSpecialCollection() but also allows groups
         """
-        returnValue((yield self.isSpecialCollection(customxml.SharedOwner)) or
-                    bool((yield self._allInvitations()))) # same as, len(SharedAs() + InvitedAs())
 
+        if not self.isCollection() and not self.isGroup():
+            return False
 
+        try:
+            resourcetype = self.resourceType()
+        except HTTPError, e:
+            assert e.response.code == responsecode.NOT_FOUND, (
+                "Unexpected response code: %s" % (e.response.code,)
+            )
+            return False
+
+        return bool(resourcetype.childrenOfType(customxml.SharedOwner))
+
+
     def setShare(self, share):
         """
         Set the L{Share} associated with this L{SharedResourceMixin}.  (This
@@ -614,6 +625,7 @@
 
         returnValue(self._invitations)
 
+
     @inlineCallbacks
     def _invitationForShareeUID(self, shareeUID):
         """
@@ -639,7 +651,7 @@
 
 
     @inlineCallbacks
-    def inviteSingleUserToShare(self, userid, cn, ace, summary, request):
+    def inviteSingleUserToShare(self, userid, cn, ace, summary, request):  #@UnusedVariable
 
         # We currently only handle local users
         sharee = self.principalForCalendarUserAddress(userid)
@@ -664,7 +676,7 @@
 
 
     @inlineCallbacks
-    def uninviteSingleUserFromShare(self, userid, aces, request):
+    def uninviteSingleUserFromShare(self, userid, aces, request):  #@UnusedVariable
         # Cancel invites - we'll just use whatever userid we are given
 
         sharee = self.principalForCalendarUserAddress(userid)
@@ -709,7 +721,7 @@
         returnValue(True)
 
 
-    def inviteSingleUserUpdateToShare(self, userid, commonName, acesOLD, aceNEW, summary, request):
+    def inviteSingleUserUpdateToShare(self, userid, commonName, acesOLD, aceNEW, summary, request):  #@UnusedVariable
 
         # Just update existing
         return self.inviteSingleUserToShare(userid, commonName, aceNEW, summary, request)
@@ -904,7 +916,7 @@
         numRecords = (yield self.validateInvites(request))
 
         # Set the sharing state on the collection
-        shared = (yield self.isShared(request))
+        shared = self.isShared(request)
         if shared and numRecords == 0:
             yield self.downgradeFromShare(request)
         elif not shared and numRecords != 0:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130315/ee4a4a29/attachment.html>


More information about the calendarserver-changes mailing list