[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