[CalendarServer-changes] [13170] CalendarServer/branches/users/sagen/move2who-4
source_changes at macosforge.org
source_changes at macosforge.org
Fri Apr 4 16:10:04 PDT 2014
Revision: 13170
http://trac.calendarserver.org//changeset/13170
Author: gaya at apple.com
Date: 2014-04-04 16:10:03 -0700 (Fri, 04 Apr 2014)
Log Message:
-----------
Modified Paths:
--------------
CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/directorybackedaddressbook.py
CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_addressbook_query.py
CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_multiget_common.py
CalendarServer/branches/users/sagen/move2who-4/txdav/who/vcard.py
Added Paths:
-----------
CalendarServer/branches/users/sagen/move2who-4/conf/caldavd-odtest.plist
Added: CalendarServer/branches/users/sagen/move2who-4/conf/caldavd-odtest.plist
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/conf/caldavd-odtest.plist (rev 0)
+++ CalendarServer/branches/users/sagen/move2who-4/conf/caldavd-odtest.plist 2014-04-04 23:10:03 UTC (rev 13170)
@@ -0,0 +1,1024 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 2006-2014 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>localhost</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>
+ <array>
+ <!--
+ <dict>
+ <key>url</key>
+ <string>/foo</string>
+ <key>path</key>
+ <string>/path/to/foo</string>
+ </dict>
+ -->
+ </array>
+
+ <!-- Don't exit if the DB needs an upgrade. -->
+ <key>FailIfUpgradeNeeded</key>
+ <false/>
+
+ <!--
+ 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>
+
+ <!--
+ 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>recordTypes</key>
+ <array>
+ <string>users</string>
+ <string>groups</string>
+ <string>locations</string>
+ <string>resources</string>
+ </array>
+ <key>cacheTimeout</key>
+ <integer>10</integer>
+ <key>uri</key>
+ <string>ldap://ldapserver.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>uid=admin,ou=people,o=example.com</string>
+ <key>password</key>
+ <string>PASSWORD</string>
+ </dict>
+ <key>rdnSchema</key>
+ <dict>
+ <key>base</key>
+ <string>o=example.com</string>
+ <key>guidAttr</key>
+ <string>GUID</string>
+ <key>users</key>
+ <dict>
+ <key>rdn</key>
+ <string>ou=people</string>
+ <key>mapping</key>
+ <dict>
+ <key>recordName</key>
+ <string>uid</string>
+ <key>fullName</key>
+ <string>cn</string>
+ <key>emailAddresses</key>
+ <array>
+ <string>mail</string>
+ <string>mailAlias</string>
+ </array>
+ <key>firstName</key>
+ <string>givenName</string>
+ <key>lastName</key>
+ <string>sn</string>
+ </dict>
+ </dict>
+ <key>groups</key>
+ <dict>
+ <key>rdn</key>
+ <string>ou=groups</string>
+ <key>mapping</key>
+ <dict>
+ <key>recordName</key>
+ <string>cn</string>
+ <key>fullName</key>
+ <string>cn</string>
+ <key>emailAddresses</key>
+ <array>
+ <string>mail</string>
+ <string>mailAlias</string>
+ </array>
+ </dict>
+ </dict>
+ <key>locations</key>
+ <dict>
+ <key>rdn</key>
+ <string>ou=locations</string>
+ <key>associatedAddressAttr</key>
+ <string></string>
+ <key>mapping</key>
+ <dict>
+ <key>recordName</key>
+ <string>cn</string>
+ <key>fullName</key>
+ <string>cn</string>
+ </dict>
+ </dict>
+ <key>resources</key>
+ <dict>
+ <key>rdn</key>
+ <string>ou=resources</string>
+ <key>mapping</key>
+ <dict>
+ <key>recordName</key>
+ <string>cn</string>
+ <key>fullName</key>
+ <string>cn</string>
+ </dict>
+ </dict>
+ <key>addresses</key>
+ <dict>
+ <key>rdn</key>
+ <string>ou=buildings</string>
+ <key>geoAttr</key>
+ <string></string>
+ <key>streetAddressAttr</key>
+ <string></string>
+ <key>mapping</key>
+ <dict>
+ <key>recordName</key>
+ <string>cn</string>
+ <key>fullName</key>
+ <string>cn</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>groupSchema</key>
+ <dict>
+ <key>membersAttr</key>
+ <string>uniqueMember</string>
+ <key>nestedGroupsAttr</key>
+ <string></string>
+ <key>memberIdAttr</key>
+ <string></string>
+ </dict>
+ <key>resourceSchema</key>
+ <dict>
+ <key>resourceInfoAttr</key>
+ <string></string>
+ <key>autoScheduleAttr</key>
+ <string></string>
+ <key>autoScheduleEnabledValue</key>
+ <string></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__/0C8BDE62-E600-4696-83D3-8B5ECABDFD2E/</string>
+ </array>
+
+ <!-- Principals with "DAV:read" access (relative URLs) -->
+ <key>ReadPrincipals</key>
+ <array>
+ <!-- <string>/principals/__uids__/983C8238-FB6B-4D92-9242-89C0A39E5F81/</string> -->
+ </array>
+
+ <!-- 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/>
+ <key>AllowedOverWireUnencrypted</key> <!-- advertised over non SSL? -->
+ <true/>
+ </dict>
+
+ <!-- Digest challenge/response -->
+ <key>Digest</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ <key>AllowedOverWireUnencrypted</key> <!-- advertised over non SSL? -->
+ <true/>
+ <key>Algorithm</key>
+ <string>md5</string>
+ <key>Qop</key>
+ <string></string>
+ </dict>
+
+ <!-- Kerberos/SPNEGO -->
+ <key>Kerberos</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ <key>AllowedOverWireUnencrypted</key> <!-- advertised over non SSL? -->
+ <true/>
+ <key>ServicePrincipal</key>
+ <string></string>
+ </dict>
+
+ <!-- Wikiserver authentication (Mac OS X) -->
+ <key>Wiki</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ <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>debug</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>Services</key>
+ <dict>
+
+ <key>AMP</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>Port</key>
+ <integer>62311</integer>
+ <key>EnableStaggering</key>
+ <false/>
+ <key>StaggerSeconds</key>
+ <integer>3</integer>
+ </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>RemoteServers</key>
+ <string>remoteservers-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>AttendeeRefreshCountLimit</key>
+ <integer>50</integer>
+
+ <key>AutoSchedule</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>Always</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>
+ </dict>
+
+ <key>WorkQueues</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>RequestDelaySeconds</key>
+ <integer>1</integer>
+ <key>ReplyDelaySeconds</key>
+ <integer>2</integer>
+ <key>AutoReplyDelaySeconds</key>
+ <integer>1</integer>
+ <key>AttendeeRefreshBatchDelaySeconds</key>
+ <integer>2</integer>
+ <key>AttendeeRefreshBatchIntervalSeconds</key>
+ <integer>2</integer>
+ </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>
+ <false/>
+
+ <!-- Calendar Managed Attachments -->
+ <key>EnableManagedAttachments</key>
+ <true/>
+
+ <!-- Private Events -->
+ <key>EnablePrivateEvents</key>
+ <true/>
+
+ <!-- Private Comment fix off for testing -->
+ <key>RemoveDuplicatePrivateComments</key>
+ <false/>
+
+ <!-- Timezone Service -->
+ <key>EnableTimezoneService</key>
+ <true/>
+
+ <!-- Standard Timezone Service -->
+ <key>TimezoneService</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>Mode</key>
+ <string>primary</string>
+ <key>BasePath</key>
+ <string></string>
+ <key>XMLInfoPath</key>
+ <string></string>
+ <key>SecondaryService</key>
+ <dict>
+ <key>Host</key>
+ <string></string>
+ <key>URI</key>
+ <string></string>
+ <key>UpdateIntervalMinutes</key>
+ <integer>1440</integer>
+ </dict>
+ </dict>
+
+ <key>UsePackageTimezones</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 -->
+ <key>ResponseCompression</key>
+ <false/> <!-- Off for testing, as debugging is easier that way. -->
+
+
+ <!-- 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='%t [%p]: [%l] '</string> -->
+ </array>
+ </dict>
+
+ <!-- SQL Query Caching -->
+ <key>QueryCaching</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>MemcachedPool</key>
+ <string>Default</string>
+ <key>ExpireSeconds</key>
+ <integer>3600</integer>
+ </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>en</string>
+ </dict>
+
+ <!-- Directory Address Book -->
+ <key>EnableSearchAddressBook</key>
+ <true/>
+ </dict>
+</plist>
Modified: CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/directorybackedaddressbook.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/directorybackedaddressbook.py 2014-04-04 22:59:48 UTC (rev 13169)
+++ CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/directorybackedaddressbook.py 2014-04-04 23:10:03 UTC (rev 13170)
@@ -157,7 +157,7 @@
@inlineCallbacks
- def doAddressBookDirectoryQuery(self, addressBookFilter, addressBookQuery, maxResults, defaultKind=None):
+ def doAddressBookDirectoryQuery(self, addressBookFilter, addressBookQuery, maxResults, defaultKind="individual"):
"""
Get vCards for a given addressBookFilter and addressBookQuery
"""
Modified: CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_addressbook_query.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_addressbook_query.py 2014-04-04 22:59:48 UTC (rev 13169)
+++ CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_addressbook_query.py 2014-04-04 23:10:03 UTC (rev 13170)
@@ -157,7 +157,7 @@
def queryDirectoryBackedAddressBook(directoryBackedAddressBook, addressBookFilter):
"""
"""
- results, limited[0] = yield directoryBackedAddressBook.doAddressBookDirectoryQuery(addressBookFilter, query, max_number_of_results[0], defaultKind="individual")
+ results, limited[0] = yield directoryBackedAddressBook.doAddressBookDirectoryQuery(addressBookFilter, query, max_number_of_results[0])
for vCardResult in results:
# match against original filter if different from addressBookFilter
Modified: CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_multiget_common.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_multiget_common.py 2014-04-04 22:59:48 UTC (rev 13169)
+++ CalendarServer/branches/users/sagen/move2who-4/twistedcaldav/method/report_multiget_common.py 2014-04-04 23:10:03 UTC (rev 13170)
@@ -267,7 +267,7 @@
#get vCards and filter
limit = config.DirectoryAddressBook.MaxQueryResults
- results, limited = (yield self.doAddressBookDirectoryQuery(addressBookFilter, propertyreq, limit))
+ results, limited = (yield self.doAddressBookDirectoryQuery(addressBookFilter, propertyreq, limit, defaultKind=None))
if limited:
log.error("Too many results in multiget report: {count}", count=len(resources))
raise HTTPError(ErrorResponse(
Modified: CalendarServer/branches/users/sagen/move2who-4/txdav/who/vcard.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/txdav/who/vcard.py 2014-04-04 22:59:48 UTC (rev 13169)
+++ CalendarServer/branches/users/sagen/move2who-4/txdav/who/vcard.py 2014-04-04 23:10:03 UTC (rev 13170)
@@ -55,7 +55,8 @@
# all possible generated parameters.
vCardPropToParamMap = {
#"PHOTO": {"ENCODING": ("B",), "TYPE": ("JPEG",), },
- "ADR": {"TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",), },
+ "ADR": {"TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",),
+ "LABEL": None, "GEO": None, },
#"LABEL": {"TYPE": ("POSTAL", "PARCEL",)},
#"TEL": {"TYPE": None, }, # None means param can contain can be anything
"EMAIL": {"TYPE": None, },
@@ -188,17 +189,29 @@
# 3.2 Delivery Addressing Types http://tools.ietf.org/html/rfc2426#section-3.2
#===========================================================================
# 3.2.1 ADR
+ #
+ # Experimental:
+ # Use vCard 4.0 ADR: http://tools.ietf.org/html/rfc6350#section-6.3.1
+ params = {}
+ geo = record.fields.get(CalFieldName.geographicLocation)
+ if geo:
+ params["GEO"] = geo.encode("utf-8")
+ label = record.fields.get(CalFieldName.streetAddress)
+ if label:
+ params["LABEL"] = label.encode("utf-8")
+ #
extended = record.fields.get(CalFieldName.floor)
- #TODO: parse !
+ # TODO: Parse?
street = record.fields.get(CalFieldName.streetAddress)
city = None
region = None
postalcode = None
country = None
- if extended or street or city or region or postalcode or country:
+ if extended or street or city or region or postalcode or country or params:
+ params["TYPE"] = ("WORK", "PREF", "POSTAL", "PARCEL",)
vcard.addProperty(
Property(
"ADR", Adr(
@@ -210,7 +223,7 @@
postalcode=postalcode.encode("utf-8") if postalcode else None,
country=country.encode("utf-8") if country else None,
),
- params={"TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",), }
+ params=params
)
)
@@ -308,7 +321,8 @@
# add members
# FIXME: members() is a deferred, so all of vCardFromRecord is deferred.
for memberRecord in (yield record.members()):
- vcard.addProperty(Property("X-ADDRESSBOOKSERVER-MEMBER", "urn:uuid:" + memberRecord.fields[FieldName.uid].encode("utf-8")))
+ if memberRecord:
+ vcard.addProperty(Property("X-ADDRESSBOOKSERVER-MEMBER", "urn:uuid:" + memberRecord.fields[FieldName.uid].encode("utf-8")))
#===================================================================
# vCard 4.0 http://tools.ietf.org/html/rfc6350
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140404/598a9fcb/attachment-0001.html>
More information about the calendarserver-changes
mailing list