1743 Commits

Author SHA1 Message Date
Andrew Ruthven
3ca7960746 Merge branch 'fix-add-member' into 'master'
Fix add-member support for calendars

Change the add-member parameter to add_member to match the name of the global variable name. Otherwise the global variable was always unset and the generic POST handler handled the request instead of the PUT handler for vcalendars.
Make sure to return a Location header when adding a vcalendar using add-member POST.

See merge request !14
2015-05-28 10:26:18 +00:00
Andrew Ruthven
017fb7731b Merge branch 'content-type-component' into 'master'
Add component parameter to content-types headers and getcontenttype properties

This allows clients using sync-collection requests to filter the results quickly by just looking at the content-type without having to parse the calendar data.

See merge request !15
2015-05-28 10:24:57 +00:00
Marten Gajda
f5dc6c669f Add component parameter to content-types headers and getcontenttype properties
This allows clients to filter the results quickly by just looking at the content-type without having to parse the calendar data.
2015-05-27 19:49:27 +02:00
Marten Gajda
d99a082c24 Change the add-member parameter to add_member to match the name of the global variable name. Otherwise the global variable was always unset and the generic POST handler handled the request instead of the PUT handler for vcalendars.
Make sure to return a Location header when adding a vcalendar using add-member POST.
2015-05-27 14:32:32 +02:00
Andrew Ruthven
71db9008af Merge branch 'master' into 'master'
Basic Auth Bugfix

Bugfix on Basic Auth username/password split.

Basic Auth uses a colon (":") to separate the username and password values. Using the php 'explode' function on this string without limiting the number of substrings returned can truncate the users password if it contains a colon.

By limiting the explode to 2, we get back the username and whatever else is left as the password (hence not truncated).

See merge request !12
2015-05-18 23:07:52 +00:00
Andrew Ruthven
331e4dcccd Merge branch 'import-fix' into 'master'
Fixed broken import function (fixes #38)

Removes a doubled code block introduced in commit 8e60bb3124e2cc4ff09f388e520f3b6935ffc733 causing imports to fail after the first one.

See merge request !13
2015-05-18 23:05:41 +00:00
Andrew Ruthven
a7b316a004 Allow external BIND URL to be file:///
This allows us to load in external files that are copied onto the
Davical server via other means.
2015-05-14 11:17:18 +12:00
Matthias
da750a8092 Fixed broken import function (fixes #38) 2015-04-22 13:31:10 +02:00
Timothy Brown
356c995aa3 Bugfix on Basic Auth username/password split.
Basic Auth uses a colon (":") to separate the username and
password values. Using the php 'explode' function on this
string without limiting the number of substrings returned
can truncate the users password if it contains a colon.
By limiting the explode to 2, we get back the username and
whatever else is left as the password (hence not truncated).
2014-12-29 13:04:17 -07:00
Mark Davies
0cc7b944b4 Add config value "support_obsolete_free_busy_property"
to control whether the obsolete Scheduling property
"calendar-free-busy-set" is populated during a PROPFIND. For Issue #31,
Database Performance Improvements.
2014-12-16 21:30:14 +01:00
Florian
289f75def4 Merge branch 'master' into 'master'
Fix current-user-principal

The RFC 5397 (http://tools.ietf.org/html/rfc5397) states that current-user-principal should return the principal URL for the current user, the one who is currently authenticated.

DAViCal answers with the principal URL for the owner of the resource right now, so this is a simple patch to fix this behaviour.

See merge request !9
2014-12-15 22:22:01 +00:00
Jim Fenton
a877ef47c5 Correct links to mailing list archives and bug report location 2014-11-22 22:10:40 -08:00
Jorge López Pérez
5d6f6b8575 Fix current-user-principal
current-user-principal should always return the principal URL for the
currently authenticated user, not the accessed resource one.
2014-11-10 14:49:32 +01:00
Kribbio
af774dd89c Create array Organizer for merged with array Attendee on 'handle_schedule_reply' function. 2014-09-25 10:36:41 +12:00
Kribbio
bddab50aac Name property is 'schedule-inbox' and not 'schedule_inbox' 2014-09-25 10:27:45 +12:00
Ján Máté
19fbfb0343 fix for debian bug #740827 - ensure that the timestamp inserted into the INSERT query is valid 2014-09-22 22:46:20 +02:00
“Paul
96a5a31203 Fixed fetching new external resources on BIND 2014-06-23 21:55:11 +02:00
“Paul
e913676660 inc/drivers_ldap: fix 'Undefined variable' 2014-06-23 21:44:13 +02:00
“Paul
ba5c7e90e1 CardDAV Query Report 2014-06-23 21:35:47 +02:00
“Paul
9dc026eb28 Support multiple text-match elements within a filter query. 2014-06-23 21:03:01 +02:00
“Paul
c03b882728 Call log_caldav_action for VCARD PUT requests. 2014-06-23 20:37:32 +02:00
“Paul
096594fac3 Support uniqueMember with DN for user names. 2014-06-23 20:28:08 +02:00
“Paul
a391d4e2a5 Added check to ensure email field does not get a double extension. 2014-06-23 20:02:35 +02:00
Ján Máté
6b8193ad9a added network timeout option for LDAP (thanks Sebastian Kotthoff) 2014-06-12 12:34:05 +02:00
Ján Máté
c32a288385 added $c->disable_caldav_proxy_propfind_collections option - it is very useful if your client not uses the "calendar-proxy-read" and "calendar-proxy-write" resources returned by PROPFIND for each principal (http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk/doc/Extensions/caldav-proxy.txt). The main reason to disable these resources is that it is EXTREMELY expensive to create them (especially on servers with lot of users who share their collections) and most clients will never use them (or use this functionality by explicitly asking for these resources using expand-property REPORT, which will work regardness the value of this option)
supported values:
false/unset => keep these resource active
true	=> never show these resources
array('User-Agent'=>'#regex1#', 'X-Client'=>'#regex2#') => if a client sends "User-Agent" header which matches the regex1 OR "X-Client" header which matches regex2 then do not show these resources
2014-05-14 13:58:10 +02:00
Ján Máté
6229409717 added $c->hide_bound configuration options - it is very useful if you use iOS (which not supports delegation) in combination with other software which supports degation ... simply use case is: bind all collections you want to see on iOS (emulation of delegation) and then hide these collections from other clients with real delegation support
supported values:
false/unset => always show bound collections
true	=> never show bound collections
array('User-Agent'=>'#regex1#', 'X-Client'=>'#regex2#') => if a client sends "User-Agent" header which matches the regex1 OR "X-Client" header which matches regex2 then all bound collections are hidden
2014-05-14 13:46:00 +02:00
Ján Máté
7be6aee280 added functions for regex comparison (see next commits) 2014-05-14 13:37:51 +02:00
Ján Máté
92f48f38cd various cheduling related fixes (there are still few remaining bugs) 2014-05-14 13:34:06 +02:00
Ján Máté
822e81644d expand-property repord - prevent infinite recursion and recursion to the object itself (non-recursive getting request URL properties) 2014-05-14 13:33:36 +02:00
Ján Máté
31af435cec various cheduling related fixes (there are still few remaining bugs) 2014-05-14 13:32:48 +02:00
Ján Máté
7a05f2b7d7 fixed uninitialized principal object for calendar-proxy-* queries 2014-04-27 17:26:35 +02:00
Ján Máté
08cc16074d Awl interface related changes 2014-04-07 12:28:19 +02:00
Ján Máté
9df80fbde1 comment out lines related to external invitation (the Email class is still undefined) 2014-04-07 12:27:58 +02:00
Ján Máté
b3c8a4ad0f awl interface related changes 2014-04-07 12:26:39 +02:00
Ján Máté
1330892852 fixed missing semicolons in drivers_ldap.php 2014-03-25 19:24:49 +01:00
Ján Máté
6b37b2b422 fixed masking of confidential event components 2014-03-24 01:52:52 +01:00
Ján Máté
c2b6be3b65 fix for $c->hide_TODO processing and user-agent extension
new option: if set to PHP regex string then hide_TODO is enabled if the client
user-agent string matches the regex for example:
    $c->hide_TODO='#^iOS.*dataaccessd.*#';
will hide all todos from non-owner/non-admin users for iOS devices
2013-10-25 12:16:27 +13:00
Ján Máté
16f617b637 fix of major todo synchronization issue if $c->hide_older_than option is set
todo without start date was never synced
2013-10-25 12:16:27 +13:00
Ján Máté
64372ba529 Extend $c->default_collections - adding 'calendar_components' and 'default_properties'
'calendar_components' sets the
'urn:ietf:params:xml:ns:caldav:supported-calendar-component-set' property for
the calendar collection (used to distinguish between different type of calendar
collections, for example: todo and event calendars) the value must be a
non-empty array; allowed values: 'VEVENT', 'VTODO', 'VJOURNAL', 'VTIMEZONE',
'VFREEBUSY', 'VPOLL', 'VAVAILABILITY'
for example:
  array('VEVENT')
  array('VTODO')
  array('VEVENT', 'VTODO')
  null or undefined => all default calendar components are supported - see
    $c->default_calendar_components
NOTE: if you want to change the value of this property later, you need to do
it directly in the database ("property" table) or in the client software!

'default_properties' sets custom properties for the collection in the
"property" table the value must be a non-empty associative array of
key => value pairs (key = property name, value = property value) for example
(set the calendar color property used by Apple and other clients):
  'default_properties' => array('http://apple.com/ns/ical/:calendar-color'=>'#ff0000'),
   null or undefined   => no property is stored in the database
NOTE: if you want to change the value of this property later, you need to do
it directly in the database ("property" table) or in the client software!
2013-10-25 12:16:27 +13:00
Ján Máté
fd6b10d3e2 Prevent processing of collections from inactive principals
e.g. inactive principal collections are not returned if you use clients with
"delegation" support.
2013-10-25 12:16:27 +13:00
Matthias Beyer
8ab19de1fe Added dbg_error_log() calls for error msgs
If the ldap driver is not valid, the error messages were not printed.
There was just "Couldn't contact LDAP server for authentication" - But
why?

This commit adds a print loop for all messages from the global
$c->messages message array.
2013-10-25 12:16:19 +13:00
Jason Alavaliant
495257bebb add fix for the OSX Contacts.app: 2013-10-25 12:16:08 +13:00
Matthias Beyer
b732dcaeb3 Only set the cached instance if driver is valid
As I could see at other locations in the code, the ldap driver instance
can be invalid. And if the instance is invalid, the getStaticLdap()
function gets called again. Caching would prevent the function from
retrying to initiate the ldapDrivers object.

This commit adds conditional caching: only if the ldap driver instance is
valid, the object gets cached. This ensures that a retry with this function
would really try to create a new ldapDrivers object and not simply
return the (invalid) cached one.
2013-10-24 17:04:36 +13:00
Matthias Beyer
40c87435c1 Instance caching added
There was already a variable to cache the ldap driver instance, and a
check if this variable was already set was there, too! But there was no
code to return the cached instance if the function gets called twice!

Maybe this was simply forgotten...
2013-10-24 17:04:23 +13:00
Andrew McMillan
58bbe1c8c3 Change to read all calendars and then discard inaccessible ones 2013-10-15 23:43:35 +13:00
Andrew McMillan
e6b502e71a Minor restructuring. 2013-09-27 16:29:14 +02:00
Andrew McMillan
3e73a8da7b Debugging and small amounts of fixing. 2013-09-26 16:10:02 +02:00
Andrew McMillan
1141a43089 Fixing and debugging. 2013-09-26 16:09:36 +02:00
Andrew McMillan
350bb08445 The SQL date formatting constants have moved. 2013-09-26 16:09:13 +02:00
Andrew McMillan
d0fffe490a Set the default timezone to the database as well as for PHP. 2013-09-26 14:24:08 +02:00