[CalendarServer-changes] [483] CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/ directory

source_changes at macosforge.org source_changes at macosforge.org
Wed Nov 15 18:37:38 PST 2006


Revision: 483
          http://trac.macosforge.org/projects/calendarserver/changeset/483
Author:   wsanchez at apple.com
Date:     2006-11-15 18:37:37 -0800 (Wed, 15 Nov 2006)

Log Message:
-----------
Implement groups()

Modified Paths:
--------------
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py	2006-11-16 02:19:41 UTC (rev 482)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py	2006-11-16 02:37:37 UTC (rev 483)
@@ -89,6 +89,9 @@
         else:
             raise UnknownRecordTypeError("Unknown record type: %s" % (recordType,))
 
+        if recordFile is None:
+            return
+
         for entry in recordFile.open():
             if entry and entry[0] != "#":
                 shortName, rest = entry.split(":", 1)
@@ -102,6 +105,8 @@
         if type(members) is str:
             members = tuple(m.strip() for m in members.split(","))
 
+        assert recordType == "group" or not members, "Only group records may have members."
+
         self.service        = service
         self.recordType     = recordType
         self.guid           = None
@@ -114,8 +119,13 @@
         for shortName in self._members:
             yield self.service.recordWithShortName("user", shortName)
 
-    def group(self):
-        raise NotImplementedError()
+    def groups(self):
+        for groupName in self.service.listRecords("group"):
+            group = self.service.recordWithShortName("group", groupName)
+            for member in group.members():
+                if member == self:
+                    yield group
+                    continue
 
     def verifyCredentials(self, credentials):
         raise NotImplementedError()

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py	2006-11-16 02:19:41 UTC (rev 482)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py	2006-11-16 02:37:37 UTC (rev 483)
@@ -108,13 +108,11 @@
         """
         FileDirectoryRecord.groups()
         """
-        service = FileDirectoryService(basicUserFile)
+        service = FileDirectoryService(basicUserFile, groupFile)
         for user in users:
             userRecord = service.recordWithShortName("user", user)
             self.assertEquals(set(g.shortName for g in userRecord.groups()), set(g for g in groups if user in groups[g]))
 
-    test_groupMemberships.todo = "unimplemented"
-
     def test_verifyCredentials(self):
         """
         FileDirectoryRecord.verifyCredentials()

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061115/f6f60cde/attachment.html


More information about the calendarserver-changes mailing list