[CalendarServer-changes] [3343] CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Nov 7 12:34:26 PST 2008
Revision: 3343
http://trac.macosforge.org/projects/calendarserver/changeset/3343
Author: wsanchez at apple.com
Date: 2008-11-07 12:34:25 -0800 (Fri, 07 Nov 2008)
Log Message:
-----------
Revert r3339 due to test failure
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
Modified: CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2008-11-07 18:17:58 UTC (rev 3342)
+++ CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2008-11-07 20:34:25 UTC (rev 3343)
@@ -171,19 +171,19 @@
):
yield GUID
- def _calendarUserAddresses(self, recordType, recordName, recordData):
+ def _calendarUserAddresses(self, recordType, recordName, record):
"""
Extract specific attributes from the directory record for use as calendar user address.
@param recordName: a C{str} containing the record name being operated on.
- @param recordData: a C{dict} containing the attributes retrieved from the directory.
+ @param record: a C{dict} containing the attributes retrieved from the directory.
@return: a C{set} of C{str} for each expanded calendar user address.
"""
# Now get the addresses
result = set()
# Add each email address as a mailto URI
- emails = recordData.get(dsattributes.kDSNAttrEMailAddress)
+ emails = record.get(dsattributes.kDSNAttrEMailAddress)
if emails is not None:
if isinstance(emails, str):
emails = [emails]
@@ -412,11 +412,9 @@
if shortName is None and guid is None:
records = {}
guids = {}
- emails = {}
- disabledNames = set()
- disabledGUIDs = set()
- disabledEmails = set()
+ disabledNames = set()
+ disabledGUIDs = set()
if recordType == DirectoryService.recordType_groups:
groupsForGUID = {}
@@ -428,11 +426,9 @@
records = storage["records"]
guids = storage["guids"]
- emails = storage["emails"]
- disabledNames = storage["disabled names"]
- disabledGUIDs = storage["disabled guids"]
- disabledEmails = storage["disabled emails"]
+ disabledNames = storage["disabled names"]
+ disabledGUIDs = storage["disabled guids"]
if recordType == DirectoryService.recordType_groups:
groupsForGUID = storage["groupsForGUID"]
@@ -489,12 +485,12 @@
calendarUserAddresses = ()
# Get email address from directory record
- recordEmailAddresses = set()
+ emailAddresses = set()
if isinstance(recordEmailAddress, str):
- recordEmailAddresses.add(recordEmailAddress.lower())
+ emailAddresses.add(recordEmailAddress.lower())
elif isinstance(recordEmailAddress, list):
- for addr in recordEmailAddresses:
- recordEmailAddresses.add(addr.lower())
+ for addr in emailAddresses:
+ emailAddresses.add(addr.lower())
# Special case for groups, which have members.
if recordType == DirectoryService.recordType_groups:
@@ -533,7 +529,7 @@
fullName = recordFullName,
firstName = recordFirstName,
lastName = recordLastName,
- emailAddresses = recordEmailAddresses,
+ emailAddresses = emailAddresses,
calendarUserAddresses = calendarUserAddresses,
autoSchedule = autoSchedule,
enabledForCalendaring = enabledForCalendaring,
@@ -545,13 +541,16 @@
def disableRecord(record):
self.log_warn("Record disabled due to conflict (record name and GUID must match): %s" % (record,))
- disabledNames.add(record.shortName)
- disabledGUIDs.add(record.guid)
+ shortName = record.shortName
+ guid = record.guid
+ disabledNames.add(shortName)
+ disabledGUIDs.add(guid)
+
if shortName in records:
- del records[record.shortName]
+ del records[shortName]
if guid in guids:
- del guids[record.guid]
+ del guids[guid]
# Check for disabled items
if record.shortName in disabledNames or record.guid in disabledGUIDs:
@@ -586,40 +585,16 @@
self._indexGroup(record, record._proxyGUIDs, proxiesForGUID)
self._indexGroup(record, record._readOnlyProxyGUIDs, readOnlyProxiesForGUID)
- def disableEmail(emailAddress, record):
- self.log_warn("Email address %s disabled due to conflict for record: %s"
- % (emailAddress, record))
-
- record.emailAddresses.remove(emailAddress)
- disabledEmails.add(emailAddress)
-
- if emailAddress in emails:
- del emails[emailAddress]
-
- for email in frozenset(recordEmailAddresses):
- if email in disabledEmails:
- disableEmail(email, record)
- else:
- # Check for duplicates
- existing_record = emails.get(email)
- if existing_record is not None:
- disableEmail(email, record)
- disableEmail(email, existing_record)
- else:
- emails[email] = record
-
if shortName is None and guid is None:
#
# Replace the entire cache
#
storage = {
- "status" : "new",
- "records" : records,
- "guids" : guids,
- "emails" : emails,
- "disabled names" : disabledNames,
- "disabled guids" : disabledGUIDs,
- "disabled emails": disabledEmails,
+ "status" : "new",
+ "records" : records,
+ "guids" : guids,
+ "disabled names": disabledNames,
+ "disabled guids": disabledGUIDs,
}
# Add group indexing if needed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20081107/e23ae6b6/attachment-0001.html>
More information about the calendarserver-changes
mailing list