[CalendarServer-changes] [5362] CalendarServer/trunk/twext/web2/dav/resource.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Mar 19 14:12:13 PDT 2010


Revision: 5362
          http://trac.macosforge.org/projects/calendarserver/changeset/5362
Author:   wsanchez at apple.com
Date:     2010-03-19 14:12:12 -0700 (Fri, 19 Mar 2010)
Log Message:
-----------
Unroll defGen

Modified Paths:
--------------
    CalendarServer/trunk/twext/web2/dav/resource.py

Modified: CalendarServer/trunk/twext/web2/dav/resource.py
===================================================================
--- CalendarServer/trunk/twext/web2/dav/resource.py	2010-03-19 21:06:26 UTC (rev 5361)
+++ CalendarServer/trunk/twext/web2/dav/resource.py	2010-03-19 21:12:12 UTC (rev 5362)
@@ -1486,56 +1486,40 @@
         principal1, principal2 = [p.children[0] for p in principals]
 
         if isinstance(principal2, davxml.All):
-            yield True
-            return
+            return succeed(True)
 
         elif isinstance(principal2, davxml.Authenticated):
             if isinstance(principal1, davxml.Unauthenticated):
-                yield False
-                return
+                return succeed(False)
             elif isinstance(principal1, davxml.All):
-                yield False
-                return
+                return succeed(False)
             else:
-                yield True
-                return
+                return succeed(True)
 
         elif isinstance(principal2, davxml.Unauthenticated):
             if isinstance(principal1, davxml.Unauthenticated):
-                yield True
-                return
+                return succeed(True)
             else:
-                yield False
-                return
+                return succeed(False)
 
         elif isinstance(principal1, davxml.Unauthenticated):
-            yield False
-            return
+            return succeed(False)
 
         assert isinstance(principal1, davxml.HRef), "Not an HRef: %r" % (principal1,)
 
-        principal2 = waitForDeferred(self.resolvePrincipal(principal2, request))
-        yield principal2
-        principal2 = principal2.getResult()
+        def resolved(principal2):
+            assert principal2 is not None, "principal2 is None"
 
-        assert principal2 is not None, "principal2 is None"
+            # Compare two HRefs and do group membership test as well
+            if principal1 == principal2:
+                return True
 
-        # Compare two HRefs and do group membership test as well
-        if principal1 == principal2:
-            yield True
-            return
-         
-        ismember = waitForDeferred(self.principalIsGroupMember(str(principal1), str(principal2), request))
-        yield ismember
-        ismember = ismember.getResult()
+            return self.principalIsGroupMember(str(principal1), str(principal2), request)
 
-        if ismember:
-            yield True
-            return
-  
-        yield False
+        d = self.resolvePrincipal(principal2, request)
+        d.addCallback(resolved)
+        return d
 
-    matchPrincipal = deferredGenerator(matchPrincipal)
 
     @deferredGenerator
     def principalIsGroupMember(self, principal1, principal2, request):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100319/0e72dfc5/attachment.html>


More information about the calendarserver-changes mailing list