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

source_changes at macosforge.org source_changes at macosforge.org
Thu Nov 9 17:02:43 PST 2006


Revision: 418
          http://trac.macosforge.org/projects/calendarserver/changeset/418
Author:   wsanchez at apple.com
Date:     2006-11-09 17:02:42 -0800 (Thu, 09 Nov 2006)

Log Message:
-----------
Fix OD lookup code.

Modified Paths:
--------------
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/appleopendirectory.py
    CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/directory.py

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/appleopendirectory.py	2006-11-10 01:02:19 UTC (rev 417)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/appleopendirectory.py	2006-11-10 01:02:42 UTC (rev 418)
@@ -32,7 +32,7 @@
 from twisted.cred.credentials import UsernamePassword
 
 from twistedcaldav.directory.directory import DirectoryService, DirectoryRecord
-from twistedcaldav.directory.directory import DirectoryError, UnknownRecordTypeError, UnknownRecordError
+from twistedcaldav.directory.directory import DirectoryError, UnknownRecordTypeError
 
 class OpenDirectoryService(DirectoryService):
     """
@@ -62,10 +62,10 @@
         else:
             raise UnknownRecordTypeError("Unknown Open Directory record type: %s" % (recordType,))
 
-        for shortName, guid, lastModified, principalURI in opendirectory.listUsers(self.directory):
+        for shortName, guid, lastModified, principalURI in listRecords(self.directory):
             if guid:
                 yield OpenDirectoryRecord(
-                    directory = self,
+                    service = self,
                     recordType = recordType,
                     guid = guid,
                     shortName = shortName,
@@ -74,23 +74,37 @@
 
     def recordWithShortName(self, recordType, shortName):
         if recordType == "user":
-            result = opendirectory.listUsersWithAttributes(self.directory, [shortName])
-            if result is None or shortName not in result:
-                return None
-            result = result[shortName]
+            listRecords = opendirectory.listUsersWithAttributes
         elif recordType == "group":
-            result = opendirectory.groupAttributes(self.directory, shortName)
+            listRecords = opendirectory.listGroupsWithAttributes
         elif recordType == "resource":
-            result = opendirectory.resourceAttributes(self.directory, shortName)
+            listRecords = opendirectory.listResourcesWithAttributes
         else:
-            raise UnknownRecordError("Unknown record type: %s" % (recordType,))
+            raise UnknownRecordTypeError("Unknown record type: %s" % (recordType,))
 
+        result = listRecords(self.directory, [shortName])
+        if result is None or shortName not in result:
+            return None
+        else:
+            result = result[shortName]
+
+        if dsattributes.attrGUID in result:
+            guid = result[dsattributes.attrGUID]
+        else:
+            raise DirectoryError("Found OpenDirectory record %s of type %s with no GUID attribute"
+                                 % (shortName, recordType))
+
+        if dsattributes.attrRealName in result:
+            fullName = result[dsattributes.attrRealName]
+        else:
+            fullName = None
+
         return OpenDirectoryRecord(
             service = self,
             recordType = recordType,
-            guid = result[dsattributes.attrGUID],
+            guid = guid,
             shortName = shortName,
-            fullName = result[dsattributes.attrRealName],
+            fullName = fullName,
         )
 
 class OpenDirectoryRecord(DirectoryRecord):

Modified: CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/directory.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/directory.py	2006-11-10 01:02:19 UTC (rev 417)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/directory.py	2006-11-10 01:02:42 UTC (rev 418)
@@ -66,8 +66,3 @@
     """
     Unknown directory record type.
     """
-
-class UnknownRecordError(DirectoryError):
-    """
-    Unknown directory record.
-    """

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


More information about the calendarserver-changes mailing list