[CalendarServer-changes] [8844] CalendarServer/branches/users/gaya/ldapdirectorybacker

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 12 17:22:31 PDT 2012


Revision: 8844
          http://trac.macosforge.org/projects/calendarserver/changeset/8844
Author:   gaya at apple.com
Date:     2012-03-12 17:22:30 -0700 (Mon, 12 Mar 2012)
Log Message:
-----------
make some VCardRecord params explicit

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/caldavd-test.plist
    CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/carddav-ldaptest.plist
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/caldavd-test.plist
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/caldavd-test.plist	2012-03-12 21:23:40 UTC (rev 8843)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/caldavd-test.plist	2012-03-13 00:22:30 UTC (rev 8844)
@@ -1,999 +1,495 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-    Copyright (c) 2006-2012 Apple Inc. All rights reserved.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-  -->
-
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
-  <dict>
-
-    <!--
-        Public network address information
-
-        This is the server's public network address, which is provided to
-        clients in URLs and the like.  It may or may not be the network
-        address that the server is listening to directly, though it is by
-        default.  For example, it may be the address of a load balancer or
-        proxy which forwards connections to the server.
-      -->
-
-    <!-- Network host name [empty = system host name] -->
-    <key>ServerHostName</key>
-    <string></string> <!-- The hostname clients use when connecting -->
-
-    <!-- Enable Calendars -->
-    <key>EnableCalDAV</key>
-    <true/>
-
-    <!-- Enable AddressBooks -->
-    <key>EnableCardDAV</key>
-    <true/>
-
-    <!-- HTTP port [0 = disable HTTP] -->
-    <key>HTTPPort</key>
-    <integer>8008</integer>
-
-    <!-- SSL port [0 = disable HTTPS] -->
-    <!-- (Must also configure SSLCertificate and SSLPrivateKey below) -->
-    <key>SSLPort</key>
-    <integer>8443</integer>
-
-    <!-- Enable listening on SSL port(s) -->
-    <key>EnableSSL</key>
-    <true/>
-
-    <!-- Redirect non-SSL ports to an SSL port (if configured for SSL) -->
-    <key>RedirectHTTPToHTTPS</key>
-    <false/>
-
-
-    <!--
-        Network address configuration information
-
-        This configures the actual network address that the server binds to.
-      -->
-
-    <!-- List of IP addresses to bind to [empty = all] -->
-    <key>BindAddresses</key>
-    <array>
-    </array>
-
-    <!-- List of port numbers to bind to for HTTP [empty = same as "Port"] -->
-    <key>BindHTTPPorts</key>
-    <array>
-        <integer>8008</integer>
-        <integer>8800</integer>
-    </array>
-
-    <!-- List of port numbers to bind to for SSL [empty = same as "SSLPort"] -->
-    <key>BindSSLPorts</key>
-    <array>
-        <integer>8443</integer>
-        <integer>8843</integer>
-    </array>
-
-
-    <!--
-        Data Store
-      -->
-
-    <!-- Server root -->
-    <key>ServerRoot</key>
-    <string>./data</string>
-
-    <!-- Database connection -->
-    <!--
-    <key>DBType</key>
-    <string>postgres</string>
-    <key>DSN</key>
-    <string>:caldav:caldav:::</string>
-     -->
-
-    <!-- Data root -->
-    <key>DataRoot</key>
-    <string>Data</string>
-
-    <!-- Database root -->
-    <key>DatabaseRoot</key>
-    <string>Database</string>
-
-    <!-- Document root -->
-    <key>DocumentRoot</key>
-    <string>Documents</string>
-
-    <!-- Configuration root -->
-    <key>ConfigRoot</key>
-    <string>./conf</string>
-
-    <!-- Run root -->
-    <key>RunRoot</key>
-    <string>Logs/state</string>
-
-    <!-- Child aliases -->
-    <key>Aliases</key>
-    <dict>
-      <!--
-      <key>foo</key>
-      <dict>
-        <key>path</key>
-        <string>/path/to/foo</string>
-      </dict>
-       -->
-    </dict>
-
-
-    <!--
-        Quotas and limits
-      -->
-
-    <!-- User quota (in bytes) [0 = no quota] applies to attachments only -->
-    <key>UserQuota</key>
-    <integer>104857600</integer><!-- 100Mb -->
-
-    <!-- Maximum number of calendars/address books allowed in a home -->
-    <!-- 0 for no limit -->
-    <key>MaxCollectionsPerHome</key>
-    <integer>50</integer>
-
-    <!-- Maximum number of resources in a calendar/address book -->
-    <!-- 0 for no limit -->
-    <key>MaxResourcesPerCollection</key>
-    <integer>10000</integer>
-
-    <!-- Maximum resource size (in bytes) -->
-    <key>MaxResourceSize</key>
-    <integer>1048576</integer> <!-- 1Mb -->
-
-    <!-- Maximum number of unique attendees per entire event -->
-    <!-- 0 for no limit -->
-    <key>MaxAttendeesPerInstance</key>
-    <integer>100</integer>
-
-    <!-- Maximum number of instances allowed during expansion -->
-    <!-- 0 for no limit -->
-    <key>MaxAllowedInstances</key>
-    <integer>3000</integer>
-
-    <!-- Maximum number of instances allowed for a single RRULE -->
-    <!-- 0 for no limit -->
-    <key>MaxInstancesForRRULE</key>
-    <integer>400</integer>
-
-    <!--
-        Directory service
-
-        A directory service provides information about principals (eg.
-        users, groups, locations and resources) to the server.
-
-        A variety of directory services are available for use.
-      -->
-
-    <!-- XML File Directory Service -->
-    <key>DirectoryService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
-      
-      <key>params</key>
-      <dict>
-        <key>xmlFile</key>
-        <string>./conf/auth/accounts-test.xml</string>
-      </dict>
-    </dict>
-    
-    <!-- Open Directory Service (Mac OS X) -->
-    <!--
-    <key>DirectoryService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.appleopendirectory.OpenDirectoryService</string>
-      
-      <key>params</key>
-      <dict>
-        <key>node</key>
-        <string>/Search</string>
-        <key>cacheTimeout</key>
-        <integer>10</integer>
-      </dict>
-    </dict>
-    -->
-
-    <!--  OpenLDAP Directory Service -->
-    <!--
-    <key>DirectoryService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.ldapdirectory.LdapDirectoryService</string>
-
-      <key>params</key>
-      <dict>
-        <key>restrictEnabledRecords</key>
-        <false/>
-        <key>restrictToGroup</key>
-        <string>odtestgrouptop</string>
-        <key>cacheTimeout</key>
-        <integer>30</integer>
-        <key>uri</key>
-        <string>ldap://example.com/</string>
-        <key>tls</key>
-        <false/>
-        <key>tlsCACertFile</key>
-        <string></string>
-        <key>tlsCACertDir</key>
-        <string></string>
-        <key>tlsRequireCert</key>
-        <string>never</string>
-        <key>credentials</key>
-        <dict>
-          <key>dn</key>
-          <string></string>
-          <key>password</key>
-          <string></string>
-        </dict>
-        <key>authMethod</key>
-        <string>LDAP</string>
-        <key>rdnSchema</key>
-        <dict>
-          <key>base</key>
-          <string>dc=example,dc=com</string>
-          <key>guidAttr</key>
-          <string>apple-generateduid</string>
-          <key>users</key>
-          <dict>
-            <key>rdn</key>
-            <string>cn=users</string>
-            <key>attr</key>
-            <string>uid</string>
-            <key>emailSuffix</key>
-            <string></string>
-            <key>filter</key>
-            <string></string>
-            <key>loginEnabledAttr</key>
-            <string></string>
-            <key>loginEnabledValue</key>
-            <string>yes</string>
-            <key>mapping</key>
-            <dict>
-              <key>recordName</key>
-              <string>uid</string>
-              <key>fullName</key>
-              <string>cn</string>
-              <key>emailAddresses</key>
-              <string>mail</string>
-              <key>firstName</key>
-              <string>givenName</string>
-              <key>lastName</key>
-              <string>sn</string>
-            </dict>
-          </dict>
-          <key>groups</key>
-          <dict>
-            <key>rdn</key>
-            <string>cn=groups</string>
-            <key>attr</key>
-            <string>cn</string>
-            <key>emailSuffix</key>
-            <string></string>
-            <key>filter</key>
-            <string></string>
-            <key>mapping</key>
-            <dict>
-              <key>recordName</key>
-              <string>cn</string>
-              <key>fullName</key>
-              <string>cn</string>
-              <key>emailAddresses</key>
-              <string>mail</string>
-              <key>firstName</key>
-              <string>givenName</string>
-              <key>lastName</key>
-              <string>sn</string>
-            </dict>
-          </dict>
-        </dict>
-        <key>groupSchema</key>
-        <dict>
-          <key>membersAttr</key>
-          <string>apple-group-memberguid</string>
-          <key>nestedGroupsAttr</key>
-          <string>apple-group-nestedgroup</string>
-          <key>memberIdAttr</key>
-          <string>apple-generateduid</string>
-        </dict>
-        <key>resourceSchema</key>
-        <dict>
-          <key>resourceInfoAttr</key>
-          <string>apple-resource-info</string>
-          <key>autoScheduleAttr</key>
-          <string></string>
-          <key>autoScheduleEnabledValue</key>
-          <string>yes</string>
-          <key>proxyAttr</key>
-          <string></string>
-          <key>readOnlyProxyAttr</key>
-          <string></string>
-        </dict>
-      </dict>
-    </dict>
-    -->
-
-    <!-- Resource and Location Service -->
-    <key>ResourceService</key>
-    <dict>
-      <key>Enabled</key>
-      <true/>
-      <key>type</key>
-      <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
-      
-      <key>params</key>
-      <dict>
-        <key>xmlFile</key>
-        <string>./conf/auth/resources-test.xml</string>
-      </dict>
-    </dict>
-
-    <!-- XML File Augment Service -->
-    <key>AugmentService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.augment.AugmentXMLDB</string>
-      
-      <key>params</key>
-      <dict>
-        <key>xmlFiles</key>
-        <array>
-	      <string>./conf/auth/augments-test.xml</string>
-        </array>
-      </dict>
-    </dict>
-
-    <!-- Sqlite Augment Service -->
-    <!--
-    <key>AugmentService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.augment.AugmentSqliteDB</string>
-      
-      <key>params</key>
-      <dict>
-        <key>dbpath</key>
-        <string>./conf/auth/augments.sqlite</string>
-      </dict>
-    </dict>
-     -->
-
-    <!-- PostgreSQL Augment Service -->
-    <!--
-    <key>AugmentService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.augment.AugmentPostgreSQLDB</string>
-      
-      <key>params</key>
-      <dict>
-        <key>host</key>
-        <string>localhost</string>
-        <key>database</key>
-        <string>augments</string>
-      </dict>
-    </dict>
-     -->
-
-    <!-- Sqlite ProxyDB Service -->
-    <key>ProxyDBService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.calendaruserproxy.ProxySqliteDB</string>
-      
-      <key>params</key>
-      <dict>
-        <key>dbpath</key>
-        <string>proxies.sqlite</string>
-      </dict>
-    </dict>
-
-    <!-- PostgreSQL ProxyDB Service -->
-    <!--
-    <key>ProxyDBService</key>
-    <dict>
-      <key>type</key>
-      <string>twistedcaldav.directory.calendaruserproxy.ProxyPostgreSQLDB</string>
-      
-      <key>params</key>
-      <dict>
-        <key>host</key>
-        <string>localhost</string>
-        <key>database</key>
-        <string>proxies</string>
-      </dict>
-    </dict>
-     -->
-
-    <key>ProxyLoadFromFile</key>
-    <string>./conf/auth/proxies-test.xml</string>
-
-
-    <!--
-        Special principals
-
-        These principals are granted special access and/or perform
-        special roles on the server.
-      -->
-
-    <!-- Principals with "DAV:all" access (relative URLs) -->
-    <key>AdminPrincipals</key>
-    <array>
-      <string>/principals/__uids__/admin/</string>
-    </array>
-
-    <!-- Principals with "DAV:read" access (relative URLs) -->
-    <key>ReadPrincipals</key>
-    <array>
-      <!-- <string>/principals/__uids__/983C8238-FB6B-4D92-9242-89C0A39E5F81/</string> -->
-    </array>
-
-    <!-- Principals that can pose as other principals -->
-    <key>SudoersFile</key>
-    <string>sudoers.plist</string>
-
-    <!-- Create "proxy access" principals -->
-    <key>EnableProxyPrincipals</key>
-    <true/>
-
-
-    <!--
-        Permissions
-      -->
-
-    <!-- Anonymous read access for root resource -->
-    <key>EnableAnonymousReadRoot</key>
-    <true/>
-
-    <!-- Anonymous read access for resource hierarchy -->
-    <key>EnableAnonymousReadNav</key>
-    <false/>
-
-    <!-- Enables directory listings for principals -->
-    <key>EnablePrincipalListings</key>
-    <true/>
-
-    <!-- Render calendar collections as a monolithic iCalendar object -->
-    <key>EnableMonolithicCalendars</key>
-    <true/>
-
-
-    <!--
-        Authentication
-      -->
-
-    <key>Authentication</key>
-    <dict>
-
-      <!-- Clear text; best avoided -->
-      <key>Basic</key>
-      <dict>
-        <key>Enabled</key>
-        <true/>
-      </dict>
-
-      <!-- Digest challenge/response -->
-      <key>Digest</key>
-      <dict>
-        <key>Enabled</key>
-        <true/>
-        <key>Algorithm</key>
-        <string>md5</string>
-        <key>Qop</key>
-        <string></string>
-      </dict>
-
-      <!-- Kerberos/SPNEGO -->
-      <key>Kerberos</key>
-      <dict>
-        <key>Enabled</key>
-        <true/>
-        <key>ServicePrincipal</key>
-        <string></string>
-      </dict>
-
-      <!-- Wikiserver authentication (Mac OS X) -->
-      <key>Wiki</key>
-      <dict>
-        <key>Enabled</key>
-        <true/>
-        <key>Cookie</key>
-        <string>sessionID</string>
-        <key>URL</key>
-        <string>http://127.0.0.1/RPC2</string>
-        <key>UserMethod</key>
-        <string>userForSession</string>
-        <key>WikiMethod</key>
-        <string>accessLevelForUserWikiCalendar</string>
-      </dict>
-
-    </dict>
-
-
-    <!--
-        Logging
-      -->
-
-    <!-- Log root -->
-    <key>LogRoot</key>
-    <string>Logs</string>
-
-    <!-- Apache-style access log -->
-    <key>AccessLogFile</key>
-    <string>access.log</string>
-    <key>RotateAccessLog</key>
-    <false/>
-
-    <!-- Server activity log -->
-    <key>ErrorLogFile</key>
-    <string>error.log</string>
-
-    <!-- Log levels -->
-    <key>DefaultLogLevel</key>
-    <string>info</string> <!-- debug, info, warn, error -->
-
-    <!-- Log level overrides for specific functionality -->
-    <key>LogLevels</key>
-    <dict>
-      <!--
-      <key>twistedcaldav.directory.appleopendirectory.OpenDirectoryService</key>
-      <string>debug</string>
-      -->
-    </dict>
-
-    <!-- Server process ID file -->
-    <key>PIDFile</key>
-    <string>caldavd.pid</string>
-
-
-    <!--
-        Accounting
-      -->
-
-    <!-- Enable accounting for certain operations -->
-    <key>AccountingCategories</key>
-    <dict>
-      <key>iTIP</key>
-      <false/>
-      <key>HTTP</key>
-      <false/>
-    </dict>
-
-    <!-- Enable accounting for specific principals -->
-    <key>AccountingPrincipals</key>
-    <array>
-      <!-- <string>/principals/__uids__/454D85C0-09F0-4DC6-A3C6-97DFEB4622CD/</string> -->
-    </array>
-
-
-    <!--
-        SSL/TLS
-      -->
-
-    <!-- Public key -->
-    <key>SSLCertificate</key>
-    <string>twistedcaldav/test/data/server.pem</string>
-
-    <!-- SSL authority chain (for intermediate certs) -->
-    <key>SSLAuthorityChain</key>
-    <string></string>
-
-    <!-- Private key -->
-    <key>SSLPrivateKey</key>
-    <string>twistedcaldav/test/data/server.pem</string>
-
-
-    <!--
-        Process management
-      -->
-
-    <key>UserName</key>
-    <string></string>
-
-    <key>GroupName</key>
-    <string></string>
-
-    <key>ProcessType</key>
-    <string>Combined</string>
-
-    <key>MultiProcess</key>
-    <dict>
-      <key>ProcessCount</key>
-      <integer>2</integer> <!-- 0 = automatic -->
-    </dict>
-
-
-    <!--
-        Notifications
-      -->
-
-    <key>Notifications</key>
-    <dict>
-      <!-- Time spent coalescing notifications before delivery -->
-      <key>CoalesceSeconds</key>
-      <integer>3</integer>
-
-      <key>InternalNotificationHost</key>
-      <string>localhost</string>
-
-      <key>InternalNotificationPort</key>
-      <integer>62309</integer>
-
-      <key>Services</key>
-      <dict>
-        <key>SimpleLineNotifier</key>
-        <dict>
-          <!-- Simple line notification service (for testing) -->
-          <key>Service</key>
-          <string>twistedcaldav.notify.SimpleLineNotifierService</string>
-          <key>Enabled</key>
-          <false/>
-          <key>Port</key>
-          <integer>62308</integer>
-        </dict>
-
-        <key>XMPPNotifier</key>
-        <dict>
-          <!-- XMPP notification service -->
-          <key>Service</key>
-          <string>twistedcaldav.notify.XMPPNotifierService</string>
-          <key>Enabled</key>
-          <false/>
-
-          <!-- XMPP host and port to contact -->
-          <key>Host</key>
-          <string>xmpp.host.name</string>
-          <key>Port</key>
-          <integer>5222</integer>
-
-          <!-- Jabber ID and password for the server -->
-          <key>JID</key>
-          <string>jid at xmpp.host.name/resource</string>
-          <key>Password</key>
-          <string>password_goes_here</string>
-
-          <!-- PubSub service address -->
-          <key>ServiceAddress</key>
-          <string>pubsub.xmpp.host.name</string>
-
-          <!-- Apple-specific config -->
-          <key>CalDAV</key>
-          <dict>
-              <key>APSBundleID</key>
-              <string></string>
-              <key>SubscriptionURL</key>
-              <string></string>
-          </dict>
-          <key>CardDAV</key>
-          <dict>
-              <key>APSBundleID</key>
-              <string></string>
-              <key>SubscriptionURL</key>
-              <string></string>
-          </dict>
-
-          <key>NodeConfiguration</key>
-          <dict>
-            <key>pubsub#deliver_payloads</key>
-            <string>1</string>
-            <key>pubsub#persist_items</key>
-            <string>1</string>
-          </dict>
-
-          <!-- Sends a presence notification to XMPP server at this interval (prevents disconnect) -->
-          <key>KeepAliveSeconds</key>
-          <integer>120</integer>
-
-          <!-- Sends a pubsub publish to a particular heartbeat node at this interval -->
-          <key>HeartbeatMinutes</key>
-          <integer>30</integer>
-
-          <!-- List of glob-like expressions defining which XMPP JIDs can converse with the server (for debugging) -->
-          <key>AllowedJIDs</key>
-          <array>
-            <!--
-            <string>*.example.com</string>
-             -->
-          </array>
-        </dict>
-      </dict>
-    </dict>
-
-
-    <!--
-        Server-to-server protocol
-      -->
-
-    <key>Scheduling</key>
-    <dict>
-
-      <!-- CalDAV protocol options -->
-      <key>CalDAV</key>
-      <dict>
-        <key>EmailDomain</key>
-        <string></string>
-        <key>HTTPDomain</key>
-        <string></string>
-        <key>AddressPatterns</key>
-        <array>
-        </array>
-        <key>OldDraftCompatibility</key>
-        <true/>
-        <key>ScheduleTagCompatibility</key>
-        <true/>
-        <key>EnablePrivateComments</key>
-        <true/>
-      </dict>
-
-      <!-- iSchedule protocol options -->
-      <key>iSchedule</key>
-      <dict>
-        <key>Enabled</key>
-        <false/>
-        <key>AddressPatterns</key>
-        <array>
-        </array>
-        <key>Servers</key>
-        <string>servertoserver-test.xml</string>
-      </dict>
-
-      <!-- iMIP protocol options -->
-      <key>iMIP</key>
-      <dict>
-        <key>Enabled</key>
-        <false/>
-        <key>MailGatewayServer</key>
-        <string>localhost</string>
-        <key>MailGatewayPort</key>
-        <integer>62310</integer>
-        <key>Sending</key>
-        <dict>
-          <key>Server</key>
-          <string></string>
-          <key>Port</key>
-          <integer>587</integer>
-          <key>UseSSL</key>
-          <true/>
-          <key>Username</key>
-          <string></string>
-          <key>Password</key>
-          <string></string>
-          <key>Address</key>
-          <string></string> <!-- Address email will be sent from -->
-          <key>SupressionDays</key>
-          <integer>7</integer> <!-- Don't send messages for events earlier than this many days in the past -->
-        </dict>
-        <key>Receiving</key>
-        <dict>
-          <key>Server</key>
-          <string></string>
-          <key>Port</key>
-          <integer>995</integer>
-          <key>Type</key>
-          <string></string> <!-- Either "pop" or "imap" -->
-          <key>UseSSL</key>
-          <true/>
-          <key>Username</key>
-          <string></string>
-          <key>Password</key>
-          <string></string>
-          <key>PollingSeconds</key>
-          <integer>30</integer>
-        </dict>
-        <key>AddressPatterns</key>
-        <array>
-          <string>mailto:.*</string>
-        </array>
-      </dict>
-
-      <!-- General options for scheduling -->
-      <key>Options</key>
-      <dict>
-        <key>AllowGroupAsOrganizer</key>
-        <false/>
-        <key>AllowLocationAsOrganizer</key>
-        <false/>
-        <key>AllowResourceAsOrganizer</key>
-        <false/>
-        <key>AttendeeRefreshBatch</key>
-        <integer>0</integer>
-        <key>V1Compatibility</key> <!-- Allow /path-based CUAs in scheduling replies -->
-        <false/>
-
-		<key>AutoSchedule</key>
+<dict>
+	<key>ServerHostName</key>
+	<string></string>
+	<key>EnableCalDAV</key>
+	<true/>
+	<key>EnableCardDAV</key>
+	<true/>
+	<key>HTTPPort</key>
+	<integer>8008</integer>
+	<key>SSLPort</key>
+	<integer>8443</integer>
+	<key>EnableSSL</key>
+	<true/>
+	<key>RedirectHTTPToHTTPS</key>
+	<false/>
+	<key>BindAddresses</key>
+	<array/>
+	<key>BindHTTPPorts</key>
+	<array>
+		<integer>8008</integer>
+		<integer>8800</integer>
+	</array>
+	<key>BindSSLPorts</key>
+	<array>
+		<integer>8443</integer>
+		<integer>8843</integer>
+	</array>
+	<key>ServerRoot</key>
+	<string>./data</string>
+	<key>DataRoot</key>
+	<string>Data</string>
+	<key>DatabaseRoot</key>
+	<string>Database</string>
+	<key>DocumentRoot</key>
+	<string>Documents</string>
+	<key>ConfigRoot</key>
+	<string>./conf</string>
+	<key>RunRoot</key>
+	<string>Logs/state</string>
+	<key>Aliases</key>
+	<dict/>
+	<key>UserQuota</key>
+	<integer>104857600</integer>
+	<key>MaxCollectionsPerHome</key>
+	<integer>50</integer>
+	<key>MaxResourcesPerCollection</key>
+	<integer>10000</integer>
+	<key>MaxResourceSize</key>
+	<integer>1048576</integer>
+	<key>MaxAttendeesPerInstance</key>
+	<integer>100</integer>
+	<key>MaxAllowedInstances</key>
+	<integer>3000</integer>
+	<key>MaxInstancesForRRULE</key>
+	<integer>400</integer>
+	<key>DirectoryService</key>
+	<dict>
+		<key>type</key>
+		<string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+		<key>params</key>
 		<dict>
+			<key>xmlFile</key>
+			<string>./conf/auth/accounts-test.xml</string>
+		</dict>
+	</dict>
+	<key>ResourceService</key>
+	<dict>
+		<key>Enabled</key>
+		<true/>
+		<key>type</key>
+		<string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+		<key>params</key>
+		<dict>
+			<key>xmlFile</key>
+			<string>./conf/auth/resources-test.xml</string>
+		</dict>
+	</dict>
+	<key>AugmentService</key>
+	<dict>
+		<key>type</key>
+		<string>twistedcaldav.directory.augment.AugmentXMLDB</string>
+		<key>params</key>
+		<dict>
+			<key>xmlFiles</key>
+			<array>
+				<string>./conf/auth/augments-test.xml</string>
+			</array>
+		</dict>
+	</dict>
+	<key>ProxyDBService</key>
+	<dict>
+		<key>type</key>
+		<string>twistedcaldav.directory.calendaruserproxy.ProxySqliteDB</string>
+		<key>params</key>
+		<dict>
+			<key>dbpath</key>
+			<string>proxies.sqlite</string>
+		</dict>
+	</dict>
+	<key>ProxyLoadFromFile</key>
+	<string>./conf/auth/proxies-test.xml</string>
+	<key>AdminPrincipals</key>
+	<array>
+		<string>/principals/__uids__/admin/</string>
+	</array>
+	<key>ReadPrincipals</key>
+	<array/>
+	<key>SudoersFile</key>
+	<string>sudoers.plist</string>
+	<key>EnableProxyPrincipals</key>
+	<true/>
+	<key>EnableAnonymousReadRoot</key>
+	<true/>
+	<key>EnableAnonymousReadNav</key>
+	<false/>
+	<key>EnablePrincipalListings</key>
+	<true/>
+	<key>EnableMonolithicCalendars</key>
+	<true/>
+	<key>Authentication</key>
+	<dict>
+		<key>Basic</key>
+		<dict>
 			<key>Enabled</key>
 			<true/>
-			<key>Always</key>
+		</dict>
+		<key>Digest</key>
+		<dict>
+			<key>Enabled</key>
+			<true/>
+			<key>Algorithm</key>
+			<string>md5</string>
+			<key>Qop</key>
+			<string></string>
+		</dict>
+		<key>Kerberos</key>
+		<dict>
+			<key>Enabled</key>
+			<true/>
+			<key>ServicePrincipal</key>
+			<string></string>
+		</dict>
+		<key>Wiki</key>
+		<dict>
+			<key>Enabled</key>
+			<true/>
+			<key>Cookie</key>
+			<string>sessionID</string>
+			<key>URL</key>
+			<string>http://127.0.0.1/RPC2</string>
+			<key>UserMethod</key>
+			<string>userForSession</string>
+			<key>WikiMethod</key>
+			<string>accessLevelForUserWikiCalendar</string>
+		</dict>
+	</dict>
+	<key>LogRoot</key>
+	<string>Logs</string>
+	<key>AccessLogFile</key>
+	<string>access.log</string>
+	<key>RotateAccessLog</key>
+	<false/>
+	<key>ErrorLogFile</key>
+	<string>error.log</string>
+	<key>DefaultLogLevel</key>
+	<string>debug</string>
+	<key>LogLevels</key>
+	<dict/>
+	<key>PIDFile</key>
+	<string>caldavd.pid</string>
+	<key>AccountingCategories</key>
+	<dict>
+		<key>iTIP</key>
+		<false/>
+		<key>HTTP</key>
+		<false/>
+	</dict>
+	<key>AccountingPrincipals</key>
+	<array/>
+	<key>SSLCertificate</key>
+	<string>twistedcaldav/test/data/server.pem</string>
+	<key>SSLAuthorityChain</key>
+	<string></string>
+	<key>SSLPrivateKey</key>
+	<string>twistedcaldav/test/data/server.pem</string>
+	<key>UserName</key>
+	<string></string>
+	<key>GroupName</key>
+	<string></string>
+	<key>ProcessType</key>
+	<string>Combined</string>
+	<key>MultiProcess</key>
+	<dict>
+		<key>ProcessCount</key>
+		<integer>2</integer>
+	</dict>
+	<key>Notifications</key>
+	<dict>
+		<key>CoalesceSeconds</key>
+		<integer>3</integer>
+		<key>InternalNotificationHost</key>
+		<string>localhost</string>
+		<key>InternalNotificationPort</key>
+		<integer>62309</integer>
+		<key>Services</key>
+		<dict>
+			<key>SimpleLineNotifier</key>
+			<dict>
+				<key>Service</key>
+				<string>twistedcaldav.notify.SimpleLineNotifierService</string>
+				<key>Enabled</key>
+				<false/>
+				<key>Port</key>
+				<integer>62308</integer>
+			</dict>
+			<key>XMPPNotifier</key>
+			<dict>
+				<key>Service</key>
+				<string>twistedcaldav.notify.XMPPNotifierService</string>
+				<key>Enabled</key>
+				<false/>
+				<key>Host</key>
+				<string>xmpp.host.name</string>
+				<key>Port</key>
+				<integer>5222</integer>
+				<key>JID</key>
+				<string>jid at xmpp.host.name/resource</string>
+				<key>Password</key>
+				<string>password_goes_here</string>
+				<key>ServiceAddress</key>
+				<string>pubsub.xmpp.host.name</string>
+				<key>CalDAV</key>
+				<dict>
+					<key>APSBundleID</key>
+					<string></string>
+					<key>SubscriptionURL</key>
+					<string></string>
+				</dict>
+				<key>CardDAV</key>
+				<dict>
+					<key>APSBundleID</key>
+					<string></string>
+					<key>SubscriptionURL</key>
+					<string></string>
+				</dict>
+				<key>NodeConfiguration</key>
+				<dict>
+					<key>pubsub#deliver_payloads</key>
+					<string>1</string>
+					<key>pubsub#persist_items</key>
+					<string>1</string>
+				</dict>
+				<key>KeepAliveSeconds</key>
+				<integer>120</integer>
+				<key>HeartbeatMinutes</key>
+				<integer>30</integer>
+				<key>AllowedJIDs</key>
+				<array/>
+			</dict>
+		</dict>
+	</dict>
+	<key>Scheduling</key>
+	<dict>
+		<key>CalDAV</key>
+		<dict>
+			<key>EmailDomain</key>
+			<string></string>
+			<key>HTTPDomain</key>
+			<string></string>
+			<key>AddressPatterns</key>
+			<array/>
+			<key>OldDraftCompatibility</key>
+			<true/>
+			<key>ScheduleTagCompatibility</key>
+			<true/>
+			<key>EnablePrivateComments</key>
+			<true/>
+		</dict>
+		<key>iSchedule</key>
+		<dict>
+			<key>Enabled</key>
 			<false/>
-			<!-- Default mode for auto-schedule processing, one of:
-	              "none"            - no auto-scheduling
-	              "accept-always"   - always accept, ignore busy time
-	              "decline-always"  - always decline, ignore free time
-	              "accept-if-free"  - accept if free, do nothing if busy
-	              "decline-if-busy" - decline if busy, do nothing if free
-	              "automatic"       - accept if free, decline if busy -->
-	        <key>DefaultMode</key>
-	        <string>automatic</string>
+			<key>AddressPatterns</key>
+			<array/>
+			<key>Servers</key>
+			<string>servertoserver-test.xml</string>
 		</dict>
-      </dict>
-    </dict>
-
-
-    <!--
-        Free-busy URL protocol
-      -->
-
-    <key>FreeBusyURL</key>
-    <dict>
-      <key>Enabled</key>
-      <true/>
-      <key>TimePeriod</key>
-      <integer>14</integer>
-      <key>AnonymousAccess</key>
-      <false/>
-    </dict>
-
-
-    <!--
-        Non-standard CalDAV extensions
-      -->
-
-    <!-- Calendar Drop Box -->
-    <key>EnableDropBox</key>
-    <true/>
-
-    <!-- Private Events -->
-    <key>EnablePrivateEvents</key>
-    <true/>
-
-    <!-- Timezone Service -->
-    <key>EnableTimezoneService</key>
-    <true/>
-
-    <!-- Batch Upload via POST -->
-    <key>EnableBatchUpload</key>
-    <true/>
-
-    <!-- Shared Calendars & Address Books -->
-    <key>Sharing</key>
-    <dict>
-      <key>Enabled</key>
-      <true/>
-      <key>AllowExternalUsers</key>
-      <false/>
-      <key>Calendars</key>
-      <dict>
-    	<key>Enabled</key>
-    	<true/>
-      </dict>
-      <key>AddressBooks</key>
-      <dict>
-    	<key>Enabled</key>
-    	<true/>
-      </dict>
-    </dict>
-
-    <!--
-        Miscellaneous items
-      -->
-
-    <!-- Service ACLs (Mac OS X) -->
-    <key>EnableSACLs</key>
-    <false/>
-
-    <!-- Make entire server read-only -->
-    <key>EnableReadOnlyServer</key>
-    <false/>
-
-    <!-- Web-based administration -->
-    <key>EnableWebAdmin</key>
-    <true/>
-
-    <!-- Support for Content-Encoding compression options as specified in RFC2616 Section 3.5 -->
-    <key>ResponseCompression</key>
-    <false/>
-    
-    <!-- The retry-after value (in seconds) to return with a 503 error. -->
-    <key>HTTPRetryAfter</key>
-    <integer>180</integer>
-
-    <!-- For child-master IPC. [empty = use tcp] -->
-    <key>ControlSocket</key>
-    <string>caldavd.sock</string>
-
-    <!-- Support for Memcached -->
-    <key>Memcached</key>
-    <dict>
-      <key>MaxClients</key>
-      <integer>5</integer>
-      <key>memcached</key>
-      <string>memcached</string> <!-- Find in PATH -->
-      <key>Options</key>
-      <array>
-        <!--<string>-vv</string>--> <!-- Be very verbose -->
-      </array>
-    </dict>
-
-    <!-- Response Caching -->
-    <key>EnableResponseCache</key>
-    <true/>
-    <key>ResponseCacheTimeout</key>
-    <integer>30</integer> <!-- in minutes -->
-
-    <!-- Support for Postgres -->
-    <key>Postgres</key>
-    <dict>
-      <key>Options</key>
-      <array>
-      	<!-- Optional extra logging for posgres -->
-      	<!-- <string>-c log_lock_waits=TRUE</string> -->
-      	<!-- <string>-c log_statement=all</string> -->
-      	<!-- <string>-c log_line_prefix='%p.%x '</string> -->
-      </array>
-    </dict>
-
-    <!-- Group Membership Caching -->
-    <key>GroupCaching</key>
-    <dict>
-      <key>Enabled</key>
-      <true/>
-      <key>EnableUpdater</key>
-      <true/>
-      <key>MemcachedPool</key>
-      <string>Default</string>
-      <key>UpdateSeconds</key>
-      <integer>300</integer>
-      <key>ExpireSeconds</key>
-      <integer>3600</integer>
-      <key>LockSeconds</key>
-      <integer>300</integer>
-      <key>UseExternalProxies</key>
-      <false/>
-    </dict>
-
-    <!-- Maximum number of results returned by principal-property-search REPORT -->
-    <key>MaxPrincipalSearchReportResults</key>
-    <integer>500</integer>
-
-    <!--
-        Twisted
-      -->
-
-    <key>Twisted</key>
-    <dict>
-      <key>twistd</key>
-      <string>../Twisted/bin/twistd</string>
-    </dict>
-
-
-    <key>Localization</key>
-    <dict>
-      <key>TranslationsDirectory</key>
-      <string>locales</string>
-      <key>LocalesDirectory</key>
-      <string>locales</string>
-      <key>Language</key>
-      <string>English</string>
-    </dict>
-
-
-  </dict>
+		<key>iMIP</key>
+		<dict>
+			<key>Enabled</key>
+			<false/>
+			<key>MailGatewayServer</key>
+			<string>localhost</string>
+			<key>MailGatewayPort</key>
+			<integer>62310</integer>
+			<key>Sending</key>
+			<dict>
+				<key>Server</key>
+				<string></string>
+				<key>Port</key>
+				<integer>587</integer>
+				<key>UseSSL</key>
+				<true/>
+				<key>Username</key>
+				<string></string>
+				<key>Password</key>
+				<string></string>
+				<key>Address</key>
+				<string></string>
+				<key>SupressionDays</key>
+				<integer>7</integer>
+			</dict>
+			<key>Receiving</key>
+			<dict>
+				<key>Server</key>
+				<string></string>
+				<key>Port</key>
+				<integer>995</integer>
+				<key>Type</key>
+				<string></string>
+				<key>UseSSL</key>
+				<true/>
+				<key>Username</key>
+				<string></string>
+				<key>Password</key>
+				<string></string>
+				<key>PollingSeconds</key>
+				<integer>30</integer>
+			</dict>
+			<key>AddressPatterns</key>
+			<array>
+				<string>mailto:.*</string>
+			</array>
+		</dict>
+		<key>Options</key>
+		<dict>
+			<key>AllowGroupAsOrganizer</key>
+			<false/>
+			<key>AllowLocationAsOrganizer</key>
+			<false/>
+			<key>AllowResourceAsOrganizer</key>
+			<false/>
+			<key>AttendeeRefreshBatch</key>
+			<integer>0</integer>
+			<key>V1Compatibility</key>
+			<false/>
+			<key>AutoSchedule</key>
+			<dict>
+				<key>Enabled</key>
+				<true/>
+				<key>Always</key>
+				<false/>
+				<key>DefaultMode</key>
+				<string>automatic</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>FreeBusyURL</key>
+	<dict>
+		<key>Enabled</key>
+		<true/>
+		<key>TimePeriod</key>
+		<integer>14</integer>
+		<key>AnonymousAccess</key>
+		<false/>
+	</dict>
+	<key>EnableDropBox</key>
+	<true/>
+	<key>EnablePrivateEvents</key>
+	<true/>
+	<key>EnableTimezoneService</key>
+	<true/>
+	<key>EnableBatchUpload</key>
+	<true/>
+	<key>Sharing</key>
+	<dict>
+		<key>Enabled</key>
+		<true/>
+		<key>AllowExternalUsers</key>
+		<false/>
+		<key>Calendars</key>
+		<dict>
+			<key>Enabled</key>
+			<true/>
+		</dict>
+		<key>AddressBooks</key>
+		<dict>
+			<key>Enabled</key>
+			<true/>
+		</dict>
+	</dict>
+	<key>EnableSACLs</key>
+	<false/>
+	<key>EnableReadOnlyServer</key>
+	<false/>
+	<key>EnableWebAdmin</key>
+	<true/>
+	<key>ResponseCompression</key>
+	<false/>
+	<key>HTTPRetryAfter</key>
+	<integer>180</integer>
+	<key>ControlSocket</key>
+	<string>caldavd.sock</string>
+	<key>Memcached</key>
+	<dict>
+		<key>MaxClients</key>
+		<integer>5</integer>
+		<key>memcached</key>
+		<string>memcached</string>
+		<key>Options</key>
+		<array/>
+	</dict>
+	<key>EnableResponseCache</key>
+	<true/>
+	<key>ResponseCacheTimeout</key>
+	<integer>30</integer>
+	<key>Postgres</key>
+	<dict>
+		<key>Options</key>
+		<array/>
+	</dict>
+	<key>GroupCaching</key>
+	<dict>
+		<key>Enabled</key>
+		<true/>
+		<key>EnableUpdater</key>
+		<true/>
+		<key>MemcachedPool</key>
+		<string>Default</string>
+		<key>UpdateSeconds</key>
+		<integer>300</integer>
+		<key>ExpireSeconds</key>
+		<integer>3600</integer>
+		<key>LockSeconds</key>
+		<integer>300</integer>
+		<key>UseExternalProxies</key>
+		<false/>
+	</dict>
+	<key>MaxPrincipalSearchReportResults</key>
+	<integer>500</integer>
+	<key>Twisted</key>
+	<dict>
+		<key>twistd</key>
+		<string>../Twisted/bin/twistd</string>
+	</dict>
+	<key>Localization</key>
+	<dict>
+		<key>TranslationsDirectory</key>
+		<string>locales</string>
+		<key>LocalesDirectory</key>
+		<string>locales</string>
+		<key>Language</key>
+		<string>English</string>
+	</dict>
+	<key>EnableSearchAddressBook</key>
+	<true/>
+	<key>DirectoryAddressBook</key>
+	<dict>
+		<key>Enabled</key>
+		<true/>
+		<key>type</key>
+		<string>twistedcaldav.directory.opendirectorybacker.OpenDirectoryBackingService</string>
+		<key>params</key>
+		<dict>
+			<key>queryPeopleRecords</key>
+			<true/>
+			<key>peopleNode</key>
+			<string>/Search/Contacts</string>
+			<key>queryUserRecords</key>
+			<true/>
+			<key>userNode</key>
+			<string>/Search</string>
+			<key>queryDSLocal</key>
+			<false/>
+			<key>dsLocalCacheTimeout</key>
+			<integer>30</integer>
+			<key>maxDSQueryRecords</key>
+			<integer>0</integer>
+			<key>ignoreSystemRecords</key>
+			<true/>
+			<key>fakeETag</key>
+			<true/>
+			<key>generateSimpleUIDs</key>
+			<true/>
+			<key>appleInternalServer</key>
+			<false/>
+			<key>addDSAttrXProperties</key>
+			<false/>
+		</dict>
+	</dict>
+</dict>
 </plist>

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/carddav-ldaptest.plist
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/carddav-ldaptest.plist	2012-03-12 21:23:40 UTC (rev 8843)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/conf/carddav-ldaptest.plist	2012-03-13 00:22:30 UTC (rev 8844)
@@ -1043,7 +1043,7 @@
        	  <!- fake the eTag.  If false all directory service attributes are used to calculate the eTag ->
           <key>fakeETag</key>
           <true/>
-          <key>standardizeSyntheticUIDs</key>
+          <key>generateSimpleUIDs</key>
           <true/>
           <key>appleInternalServer</key>
           <false/>

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py	2012-03-12 21:23:40 UTC (rev 8843)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py	2012-03-13 00:22:30 UTC (rev 8844)
@@ -104,7 +104,7 @@
             "appleInternalServer":False,         # does magic in VCardRecord
             "maxQueryRecords":0,                 # max records returned
             "fakeETag":True,                     # eTag is fake, otherwise it is md5(all attributes)
-            "standardizeSyntheticUIDs":False,    # if UID is faked, use simple method for generating
+            "generateSimpleUIDs":False,    # if UID is faked, use simple method for generating
        }
 
         #params = self.getParams(params, defaults, ignored)
@@ -128,8 +128,8 @@
         del params["maxQueryRecords"]
         fakeETag=params["fakeETag"]
         del params["fakeETag"]
-        standardizeSyntheticUIDs=params["standardizeSyntheticUIDs"]
-        del params["standardizeSyntheticUIDs"]
+        generateSimpleUIDs=params["generateSimpleUIDs"]
+        del params["generateSimpleUIDs"]
 
         
         #standardize ds attributes type names
@@ -167,8 +167,7 @@
         
         ### used by VCardRecord.
         self.fakeETag = fakeETag
-        self.addDSAttrXProperties = False
-        self.standardizeSyntheticUIDs = standardizeSyntheticUIDs
+        self.generateSimpleUIDs = generateSimpleUIDs
         self.appleInternalServer = appleInternalServer
  
         super(LdapDirectoryBackingService, self).__init__(params)
@@ -654,7 +653,7 @@
                                         dsRecordAttributes[dsAttributeName] = list(set(dsRecordAttributes[dsAttributeName] + ldapAttributeValues))
                                         self.log_debug("dsRecordAttributes[%s] = %s" % (dsAttributeName, dsRecordAttributes[dsAttributeName],))
                                    
-                        dsRecord = VCardRecord(self, dsRecordAttributes, self.defaultNodeName)
+                        dsRecord = VCardRecord(self, dsRecordAttributes, defaultNodeName=None, generateSimpleUIDs=self.generateSimpleUIDs, appleInternalServer=self.appleInternalServer)
                         vCardText = dsRecord.vCardText()
                     except:
                         traceback.print_exc()

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-03-12 21:23:40 UTC (rev 8843)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-03-13 00:22:30 UTC (rev 8844)
@@ -84,14 +84,14 @@
         userNode = "/Search",
         maxDSQueryRecords = 0,            # maximum number of records requested for any ds query
         
-        queryDSLocal = False,              #query in DSLocal -- debug
+        queryDSLocal = False,             #query in DSLocal -- debug
         dsLocalCacheTimeout = 30,
         ignoreSystemRecords = True,
         
-        fakeETag = True,                    # eTag is not reliable if True 
+        fakeETag = True,                  # eTag is not reliable if True 
                 
-        addDSAttrXProperties=False,        # add dsattributes to vcards as "X-" attributes
-        standardizeSyntheticUIDs = False,  # use simple synthetic UIDs --- good for testing
+        addDSAttrXProperties=False,       # add dsattributes to vcards as "X-" attributes
+        generateSimpleUIDs = False,       # use simple synthetic UIDs --- good for testing
         appleInternalServer=False,
         
         additionalAttributes=[],
@@ -105,7 +105,7 @@
             NumberOfMatchesWithinLimits exception or returning results
         @dsLocalCacheTimeout: how log to keep cache of DSLocal records
         @fakeETag: C{True} to use a fake eTag; allows ds queries with partial attributes
-        @standardizeSyntheticUIDs: C{True} when creating synthetic UID (==f(Node, Type, Record Name)), 
+        @generateSimpleUIDs: C{True} when creating synthetic UID (==f(Node, Type, Record Name)), 
             use a standard Node name. This allows testing with the same UID on different hosts
         @allowedAttributes: list of DSAttributes that are used to create VCards
 
@@ -157,7 +157,7 @@
         self.fakeETag = fakeETag
                 
         self.addDSAttrXProperties = addDSAttrXProperties
-        self.standardizeSyntheticUIDs = standardizeSyntheticUIDs
+        self.generateSimpleUIDs = generateSimpleUIDs
         self.appleInternalServer = appleInternalServer
         
         self.additionalAttributes = additionalAttributes
@@ -289,7 +289,11 @@
         
         for (recordShortName, value) in queryResults: #@UnusedVariable
             
-            record = VCardRecord(self, value, self.defaultNodeName)
+            record = VCardRecord(self, value, defaultNodeName=self.defaultNodeName, 
+                                 generateSimpleUIDs=self.generateSimpleUIDs, 
+                                 addDSAttrXProperties=self.addDSAttrXProperties,
+                                 appleInternalServer=self.appleInternalServer,
+                                 )
 
             if self.ignoreSystemRecords:
                 # remove system users and people
@@ -964,14 +968,17 @@
         }
 
     
-    def __init__(self, service, recordAttributes, defaultNodeName=None):
+    def __init__(self, service, recordAttributes, defaultNodeName=None, generateSimpleUIDs=False, addDSAttrXProperties=False, appleInternalServer=False, ):
         
 
         self.log_debug("service=%s, attributes=%s"    % (service, recordAttributes))
 
         #save off for debugging
-        if service.addDSAttrXProperties:
+        self.addDSAttrXProperties = addDSAttrXProperties;
+        if addDSAttrXProperties:
             self.originalAttributes = recordAttributes.copy()
+        self.generateSimpleUIDs = generateSimpleUIDs
+        self.appleInternalServer = appleInternalServer
 
         self.directoryBackedAddressBook = service.directoryBackedAddressBook
         self._vCard = None
@@ -1017,7 +1024,7 @@
         
         guid = self.firstValueForAttribute(dsattributes.kDS1AttrGeneratedUID)
         if not guid:
-            if service.standardizeSyntheticUIDs:
+            if generateSimpleUIDs:
                 nodeUUIDStr = "00000000"
             else:
                 nodeUUIDStr = "%x" % abs(hash(node))
@@ -1041,12 +1048,12 @@
             recordType = DirectoryService.recordType_people
                         
         super(VCardRecord, self).__init__(
-            service                  = service,
-            recordType              = recordType,
+            service               = service,
+            recordType            = recordType,
             guid                  = guid,
-            shortNames              = tuple(self.valuesForAttribute(dsattributes.kDSNAttrRecordName)),
+            shortNames            = tuple(self.valuesForAttribute(dsattributes.kDSNAttrRecordName)),
             fullName              = fullName,
-            firstName              = self.firstValueForAttribute(dsattributes.kDS1AttrFirstName, None),
+            firstName             = self.firstValueForAttribute(dsattributes.kDS1AttrFirstName, None),
             lastName              = self.firstValueForAttribute(dsattributes.kDS1AttrLastName, None),
             emailAddresses        = (),
             calendarUserAddresses = (),
@@ -1165,7 +1172,7 @@
                 for attrValue in self.valuesForAttribute(attrType):
                     try:
                         # special case for Apple
-                        if self.service.appleInternalServer and attrType == dsattributes.kDSNAttrIMHandle:
+                        if self.appleInternalServer and attrType == dsattributes.kDSNAttrIMHandle:
                             splitValue = attrValue.split("|")
                             if len (splitValue) > 1:
                                 attrValue = splitValue[0]
@@ -1568,7 +1575,7 @@
             
             
             # special case for Apple
-            if self.service.appleInternalServer:
+            if self.appleInternalServer:
                 for manager in self.valuesForAttribute("dsAttrTypeNative:appleManager"):
                     splitManager = manager.split("|")
                     if len(splitManager) >= 4:
@@ -1601,7 +1608,7 @@
             """
             
             # debug, create x attributes for all ds attributes
-            if self.service.addDSAttrXProperties:
+            if self.addDSAttrXProperties:
                 for attribute in self.originalAttributes:
                     for value in self.valuesForAttribute(attribute):
                         vcard.addProperty(Property("X-"+"-".join(attribute.split(":")), removeControlChars(value)))

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py	2012-03-12 21:23:40 UTC (rev 8843)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/stdconfig.py	2012-03-13 00:22:30 UTC (rev 8844)
@@ -217,7 +217,7 @@
         "ignoreSystemRecords": True,
         "dsLocalCacheTimeout":30,
         "fakeETag": True,
-        "standardizeSyntheticUIDs": False,
+        "generateSimpleUIDs": False,
         "addDSAttrXProperties": False,
         "appleInternalServer": False,
         "additionalAttributes" : [],
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120312/7c755754/attachment-0001.html>


More information about the calendarserver-changes mailing list