[CalendarServer-changes] [3713] CalendarServer/trunk/calendarserver/webcal/resource.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 23 15:35:29 PST 2009


Revision: 3713
          http://trac.macosforge.org/projects/calendarserver/changeset/3713
Author:   wsanchez at apple.com
Date:     2009-02-23 15:35:28 -0800 (Mon, 23 Feb 2009)
Log Message:
-----------
Substitute the correct principal URL

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/webcal/resource.py

Modified: CalendarServer/trunk/calendarserver/webcal/resource.py
===================================================================
--- CalendarServer/trunk/calendarserver/webcal/resource.py	2009-02-23 23:03:54 UTC (rev 3712)
+++ CalendarServer/trunk/calendarserver/webcal/resource.py	2009-02-23 23:35:28 UTC (rev 3713)
@@ -25,10 +25,24 @@
 from twisted.web2 import responsecode
 from twisted.web2.http import Response
 from twisted.web2.http_headers import MimeType
-from twisted.web2.static import File as FileResource
 from twisted.web2.stream import MemoryStream
+from twisted.web2.dav import davxml
+from twisted.web2.dav.static import DAVFile
 
-class WebCalendarResource (FileResource):
+from twistedcaldav.extensions import ReadOnlyResourceMixIn
+
+class WebCalendarResource (ReadOnlyResourceMixIn, DAVFile):
+    def defaultAccessControlList(self):
+        return davxml.ACL(
+            davxml.ACE(
+                davxml.Principal(davxml.Authenticated()),
+                davxml.Grant(
+                    davxml.Privilege(davxml.Read()),
+                ),
+                davxml.Protected(),
+            ),
+        )
+
     def etag(self):
         # Can't be calculated here
         return None
@@ -53,12 +67,16 @@
         return None
 
     def createSimilarFile(self, path):
-        return FileResource(path)
+        return DAVFile(path)
 
     def render(self, request):
         if not self.fp.isdir():
             return responsecode.NOT_FOUND
 
+        self.authenticate(request)
+
+        authenticatedPrincipalURL = str(request.authnUser.childOfType(davxml.HRef))
+
         data = """
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
@@ -100,7 +118,7 @@
 </html>
 """ % {
     "timeZone": "America/Los_Angeles",
-    "principalURL": "/principals/users/admin/",
+    "principalURL": authenticatedPrincipalURL,
     "debug": "true",
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090223/4fbe5a68/attachment.html>


More information about the calendarserver-changes mailing list