[CalendarServer-changes] [9156] CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Thu Apr 19 15:06:20 PDT 2012


Revision: 9156
          http://trac.macosforge.org/projects/calendarserver/changeset/9156
Author:   gaya at apple.com
Date:     2012-04-19 15:06:20 -0700 (Thu, 19 Apr 2012)
Log Message:
-----------
add group record query

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py	2012-04-19 22:05:01 UTC (rev 9155)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py	2012-04-19 22:06:20 UTC (rev 9156)
@@ -44,7 +44,7 @@
         
         self.log_debug("_actuallyConfigure: params=%s" % (params,))
         defaults = {
-            "recordTypes": (self.recordType_users,), 
+            "recordTypes": (self.recordType_users, self.recordType_groups, ), 
             "rdnSchema": {
                 self.recordType_users : { 
                     "vcardPropToDirRecordAttrMap" : { 
@@ -71,6 +71,33 @@
                         "emailAddresses" :  dsattributes.kDSNAttrEMailAddress,
                      },
                 },
+                self.recordType_groups : { 
+                    "vcardPropToDirRecordAttrMap" : { 
+                        "FN" : (
+                                "fullName",
+                                "shortNames",
+                                "firstName",
+                                "lastName",
+                                ),
+                        "N" : (
+                                "fullName",
+                                "shortNames",
+                                "firstName",
+                                "lastName",
+                                ),
+                        "EMAIL" : "emailAddresses",
+                        "UID" : "guid",
+                        "X-ADDRESSBOOKSERVER-MEMBER" : "members",
+                     },
+                     "dirRecordAttrToDSAttrMap" : { 
+                        "guid" :            dsattributes.kDS1AttrGeneratedUID,
+                        "fullName" :        dsattributes.kDS1AttrDistinguishedName,
+                        "firstName" :       dsattributes.kDS1AttrFirstName,
+                        "lastName" :        dsattributes.kDS1AttrLastName,
+                        "emailAddresses" :  dsattributes.kDSNAttrEMailAddress,
+                        "members" :         dsattributes.kDSNAttrGroupMembers,
+                     },
+                },
             },
             "maxQueryResults":0,            # max records returned
             "sortResults":True,             # sort results by UID
@@ -83,10 +110,10 @@
                 if not key in params:
                     params[key] = defaults[key]
             return params
-            
+                    
         params = addDefaults(params, defaults)
         self.log_debug("_actuallyConfigure after addDefaults: params=%s" % (params,))
-        
+                
         # super does not like these extra params
         directoryBackedAddressBook=params["directoryBackedAddressBook"]
         #del params["directoryBackedAddressBook"]
@@ -98,8 +125,8 @@
         del params["sortResults"]
         implementNot=params["implementNot"]
         del params["implementNot"]
-
         
+        
         assert directoryBackedAddressBook is not None
         self.directoryBackedAddressBook = directoryBackedAddressBook
         
@@ -243,17 +270,21 @@
                         dsRecordAttributes = {}
                         for attr in dirRecordAttrToDSAttrMap:
                             try:
-                                value = getattr(xmlDirectoryRecord, attr)
-                                dsRecordAttributes[dirRecordAttrToDSAttrMap[attr]] = value
+                                if attr == "members":
+                                    value = [member.guid for member in xmlDirectoryRecord.members()]
+                                else:
+                                    value = getattr(xmlDirectoryRecord, attr)
+                                if value:
+                                    dsRecordAttributes[dirRecordAttrToDSAttrMap[attr]] = value
                             except AttributeError:
-                                # No value
+                                self.log_info("Could not get attribute %s from record %s" % (attr, xmlDirectoryRecord, e,))
                                 pass
                         return dsRecordAttributes
 
                     result = None
                     dsRecordAttributes = dsRecordAttributesFromDirectoryRecord( xmlDirectoryRecord )
                     try:
-                        result = ABDirectoryQueryResult(self.directoryBackedAddressBook, dsRecordAttributes,)
+                        result = ABDirectoryQueryResult(self.directoryBackedAddressBook, dsRecordAttributes, kind=kind)
                     except:
                         traceback.print_exc()
                         self.log_info("Could not get vcard for %s" % (xmlDirectoryRecord,))

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py	2012-04-19 22:05:01 UTC (rev 9155)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py	2012-04-19 22:06:20 UTC (rev 9156)
@@ -209,7 +209,7 @@
 directoryAddressBookBackingServiceDefaultParams = {
     "twistedcaldav.directory.xmldirectorybacker.XMLDirectoryBackingService": {
         "xmlFile": "accounts.xml",
-        "recordTypes": ("users",),
+        "recordTypes": ("users", "groups"),
         "statSeconds" : 15,
     },
     "twistedcaldav.directory.opendirectorybacker.OpenDirectoryBackingService": {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120419/08903df7/attachment-0001.html>


More information about the calendarserver-changes mailing list