[CalendarServer-changes] [4689] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Mon Nov 2 10:14:00 PST 2009
Revision: 4689
http://trac.macosforge.org/projects/calendarserver/changeset/4689
Author: sagen at apple.com
Date: 2009-11-02 10:14:00 -0800 (Mon, 02 Nov 2009)
Log Message:
-----------
Don't allow /Local/Default users to be used for calendaring since there is no
support for complex queries (used in attendee lookup).
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py
Modified: CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2009-11-02 16:26:25 UTC (rev 4688)
+++ CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2009-11-02 18:14:00 UTC (rev 4689)
@@ -565,6 +565,11 @@
recordEmailAddresses = _setFromAttribute(value.get(dsattributes.kDSNAttrEMailAddress), lower=True)
recordNodeName = value.get(dsattributes.kDSNAttrMetaNodeLocation)
+ if recordNodeName == "/Local/Default":
+ self.log_warn("Local users aren't eligible for calendaring: %s"
+ % (recordShortName,))
+ continue
+
if not recordType:
self.log_debug("Record (unknown)%s in node %s has no recordType; ignoring."
% (recordShortName, recordNodeName))
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py 2009-11-02 16:26:25 UTC (rev 4688)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py 2009-11-02 18:14:00 UTC (rev 4689)
@@ -197,3 +197,35 @@
recordTypes = [DirectoryService.recordType_users, DirectoryService.recordType_groups, DirectoryService.recordType_locations, DirectoryService.recordType_resources]
self.service().queryDirectory(recordTypes, self.service().INDEX_TYPE_GUID, "1234567890", lookupMethod=lookupMethod)
self.assertFalse(self.service().recordWithGUID("1234567890"))
+
+ def test_queryDirectoryLocalUsers(self):
+ """ Test for lookup on local users, ensuring they don't get
+ faulted in """
+
+ def lookupMethod(obj, attr, value, matchType, casei, recordType, attributes, count=0):
+
+ data = [
+ {
+ dsattributes.kDS1AttrGeneratedUID : "1234567890",
+ dsattributes.kDSNAttrRecordName : ["user1", "User 1"],
+ dsattributes.kDSNAttrRecordType : dsattributes.kDSStdRecordTypeUsers,
+ dsattributes.kDSNAttrMetaNodeLocation : "/Local/Default",
+ },
+ {
+ dsattributes.kDS1AttrGeneratedUID : "987654321",
+ dsattributes.kDSNAttrRecordName : ["user2", "User 2"],
+ dsattributes.kDSNAttrRecordType : dsattributes.kDSStdRecordTypeUsers,
+ dsattributes.kDSNAttrMetaNodeLocation : "/LDAPv3/127.0.0.1",
+ },
+ ]
+ results = []
+ for entry in data:
+ if entry[attr] == value:
+ results.append(("", entry))
+ return results
+
+ recordTypes = [DirectoryService.recordType_users, DirectoryService.recordType_groups, DirectoryService.recordType_locations, DirectoryService.recordType_resources]
+ self.service().queryDirectory(recordTypes, self.service().INDEX_TYPE_GUID, "1234567890", lookupMethod=lookupMethod)
+ self.service().queryDirectory(recordTypes, self.service().INDEX_TYPE_GUID, "987654321", lookupMethod=lookupMethod)
+ self.assertFalse(self.service().recordWithGUID("1234567890"))
+ self.assertTrue(self.service().recordWithGUID("987654321"))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091102/24f2c4fe/attachment.html>
More information about the calendarserver-changes
mailing list