[CalendarServer-changes] [481]
CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/
directory
source_changes at macosforge.org
source_changes at macosforge.org
Wed Nov 15 18:14:24 PST 2006
Revision: 481
http://trac.macosforge.org/projects/calendarserver/changeset/481
Author: wsanchez at apple.com
Date: 2006-11-15 18:14:23 -0800 (Wed, 15 Nov 2006)
Log Message:
-----------
Implement recordWithShortName().
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 01:52:07 UTC (rev 480)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/apache.py 2006-11-16 02:14:23 UTC (rev 481)
@@ -53,6 +53,35 @@
return recordTypes
def listRecords(self, recordType):
+ for entryShortName, entryData in self._entriesForRecordType(recordType):
+ yield entryShortName
+
+ def recordWithShortName(self, recordType, shortName):
+ for entryShortName, entryData in self._entriesForRecordType(recordType):
+ if entryShortName == shortName:
+ if recordType == "user":
+ return FileDirectoryRecord(
+ service = self,
+ recordType = recordType,
+ shortName = entryShortName,
+ cryptPassword = entryData,
+ )
+ elif recordType == "group":
+ return FileDirectoryRecord(
+ service = self,
+ recordType = recordType,
+ shortName = entryShortName,
+ members = entryData,
+ )
+ else:
+ raise AssertionError("We shouldn't be here.")
+
+ raise NotImplementedError()
+
+ def recordWithGUID(self, guid):
+ raise NotImplementedError()
+
+ def _entriesForRecordType(self, recordType):
if recordType == "user":
recordFile = self.userFile
elif recordType == "group":
@@ -62,28 +91,27 @@
for entry in recordFile.open():
if entry and entry[0] != "#":
- shortName, rest = entry.split(":")
- yield shortName
+ shortName, rest = entry.split(":", 1)
+ yield shortName, rest
- def recordWithShortName(self, recordType, shortName):
- raise NotImplementedError()
-
- def recordWithGUID(self, guid):
- raise NotImplementedError()
-
class FileDirectoryRecord(DirectoryRecord):
"""
Apache UserFile/GroupFile implementation of L{IDirectoryRecord}.
"""
- def __init__(self):
- service = None
- recordType = None
- guid = None
- shortName = None
- fullName = None
+ def __init__(self, service, recordType, shortName, cryptPassword=None, members=()):
+ if type(members) is str:
+ members = tuple(m.strip() for m in members.split(","))
+ self.service = service
+ self.recordType = recordType
+ self.guid = None
+ self.shortName = shortName
+ self.fullName = None
+ self._cryptPassword = cryptPassword
+ self._members = members
+
def members(self):
- raise NotImplementedError()
+ return self._members
def group(self):
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 01:52:07 UTC (rev 480)
+++ CalendarServer/branches/users/wsanchez/provisioning/twistedcaldav/directory/test/test_apache.py 2006-11-16 02:14:23 UTC (rev 481)
@@ -86,8 +86,6 @@
record = service.recordWithShortName("user", user)
self.assertEquals(record.shortName, user)
- test_recordWithShortName_user.todo = "unimplemented"
-
def test_recordWithShortName_group(self):
"""
FileDirectoryService.recordWithShortName("group")
@@ -97,8 +95,6 @@
groupRecord = service.recordWithShortName("group", group)
self.assertEquals(groupRecord.shortName, group)
- test_recordWithShortName_group.todo = "unimplemented"
-
def test_groupMembers(self):
"""
FileDirectoryRecord.members()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061115/4199eef4/attachment.html
More information about the calendarserver-changes
mailing list