Commit Graph

62 Commits

Author SHA1 Message Date
Ralf Becker
476dc6ad93 * CalDAV: expand-property reports queried by iCal from OS X 10.7.4
- expanded-group-member-set
- expanded-group-membership
- calendar-proxy-read-for
- calendar-proxy-write-for
Both calendar-proxy reports can be combined in one request, which is now also handled correct.
2012-07-15 09:15:57 +00:00
Ralf Becker
762b892e7d * CardDAV/GroupDAV/Addressbook: works now with LDAP backend (account only or all contacts), fixed not working update of accounts (SQL and LDAP), changed ctag generation to work with LDAP too 2012-02-29 10:04:41 +00:00
Ralf Becker
587c2cf595 use groupdav->log() for all permanent error-messages, to log the into request-log too, if both If-Match and If-Schdule-Tag-Match given use If-Match for organiser/owner and If-Schedule-Tag-Match for attendees/participants 2012-02-21 20:05:35 +00:00
Ralf Becker
a479b59858 * CardDAV/Addressbook: storing Apple AB type company (X-ABShowAs:COMPANY) as EGroupware fileAs company 2012-02-21 08:58:22 +00:00
Ralf Becker
f9a8f55065 fixed missing owner 2012-02-20 11:22:33 +00:00
Ralf Becker
bfd50d213e fixed not working PUT of groups/lists 2012-02-18 10:18:14 +00:00
Ralf Becker
e9502eda30 * Addressbook/CardDAV: fixed sync all in one addressbook changed AB to personal, use default addressbook for new contacts if synced, otherwise use always synced personal AB 2012-02-15 13:04:57 +00:00
Ralf Becker
34393ca041 propagate data from settings hook to handlers, to fix failed installs because setup was not detected 2012-02-14 17:39:40 +00:00
Ralf Becker
8b0cb9cfb7 added user-agent detection for Snow Leopard (OS X 10.6) addressbook, to stop it from messing up categories and photo, Lion (10.7) addressbook works find 2012-02-14 15:15:26 +00:00
Ralf Becker
ab84acc81f fixed several small issues around CardDAV and history logging in addressbook (dont log not set custom fields as there are not stored and therefore not changed) 2012-02-10 21:30:48 +00:00
Ralf Becker
e789762727 resurrect preference to sync all ABs into one (allways implied for OS X) and new pref to "Distributionlists as groups", plus explenation of the prefs
r37966: many bugfixes around distribution-lists/groups and some code restructuring
2012-02-10 11:44:52 +00:00
Ralf Becker
21dfe8ac02 implement RFC 5995 add member to collection via POST, but not yet set DAV:add-member due to problems with OS X clients 2012-02-10 11:28:56 +00:00
Ralf Becker
9d85196706 move logic of which addressbook/calendars are shared into app-handler
move app-specific settings to app-handler
2012-02-10 11:27:26 +00:00
Ralf Becker
ed2b6f99dc * Addressbook/CardDAV: fixed Apple iOS and OS X addressbook messed up phone numbers (Mobile is now mobile for both and iPhone is matched to EGroupware private cell)
also removed copy of supportedFields and using again default ones from addressbook_vcal, with Apple specific fixes in _get_handler()
2012-02-10 11:16:44 +00:00
Ralf Becker
6a8ef0cc35 first try to export distribution lists via CardDAV as vCard with "X-CALENDARSERVER-KIND:group", we might need a user-agent whitelist, as not all clients will understand that
fixed typo
fixed many issues with distribution lists as vCard groups, also adding/removing contacts from a list in web-GUI is working again
extend ctag to lists
limit groupVCard to contacts of same addressbook, as OS X and iOS only allows that and PUTs would remove contacts from other ABs, also fixed not working multiget report of lists/groups
fixed not working update of members
2012-02-10 11:11:38 +00:00
Ralf Becker
fcf6fa3aab fill displayname for contacts and task to easier identify it in autoindex 2012-02-10 11:02:01 +00:00
Ralf Becker
693a819d57 setting CardDAV:max-image-size on addressbook collections, so iOS scales it down before sending 2012-02-10 09:06:25 +00:00
Ralf Becker
83653c362f * CalDAV/CardDAV: /addressbook-accounts/ and PROPPATCH for addressbooks/calendars for every namespace but CalDAV, CardDAV or Calendarserver (displayname or *-describtion are ok) 2012-02-10 08:58:08 +00:00
Ralf Becker
0609f0a430 * CardDAV: fixed sometimes not working creation of new contacts from the device, if accounts are stored in LDAP
not sure why I used $this->bo->account_repository != "ldap", it makes no sense, as we specify the column explicitly, no idea if CardDAV works for an addressbook in LDAP, but now it works for accounts in LDAP too
2012-01-20 06:46:26 +00:00
Ralf Becker
296aefe51d skip "unknown xml" warning in addressbook-multiget report 2011-11-10 06:58:30 +00:00
Ralf Becker
80510b5412 * CalDAV/CardDAV: major rework fixing lots of bugs/incompatibilites and adding new features: eg. autocompletion of accounts and resources under iCal, searchable addressbook gateway for all addressbooks available
merged changes from Trunk up to r37094 from addressbook, calendar, infolog, phpgwapi, egw-pear and resources (only CalDAV/CardDAV related stuff of cause)
2011-11-06 09:40:33 +00:00
Ralf Becker
40dd19fd3e * CardDAV/GroupDAV: handle deleted contacts, as not existing (404 Not Found) 2011-06-19 09:01:15 +00:00
Ralf Becker
87ee0f0088 * CardDAV: store name part of URL from client PUT request, to fully comply with CardDAV spec 2011-04-05 20:39:13 +00:00
Ralf Becker
01d1b16b6e * GroupDAV/CardDAV: fixed empty addressbooks issue (url in PROPFIND contained empty id --> "/.vcf" instead "/123.vcf")
caused by not longer necessary special handling of contact_id in addressbook_sql, which is handled now in so_sql(_cf)
fix for PostgreSQL to NOT get SQL error ORDER BY must be in column list for GroupDAV/CardDAV propfinds
2011-03-23 09:37:19 +00:00
Ralf Becker
3bb9e89bcf * CalDAV/Lightning: fixed under some conditions infinit poping up alarms and user not able to add alarms
- Lightning pops up alarm, until Sequence/etag get updated: if user has no edit rights on an other users calendar, etag never got updated, now we update it
- fixed user was not able to add alarms via CalDAV, if he had no edit rights for event (was always possible in web UI)
- alarms from other users calendars are not included any more, as they make no sense but a lot of trouble
- fixed wrong condition on adding alarms, causing some alarms no being saved
2011-03-05 10:21:32 +00:00
Ralf Becker
44bc1a28c8 - moved ctag generation to addressbook_bo
- include deleted contacts in ctag generation, as otherwise deleting entries does NOT change ctag
- implemented AlterPingChanges using ctag for ActiveSync
2010-12-02 19:42:03 +00:00
Jörg Lehrke
d3532ed7a1 Fix Apple CardDAV issue 2010-10-29 08:45:40 +00:00
Ralf Becker
c67a61b692 returning "403 Forbidden" if addressbook_bo->save() fails, happens when writing new entries in ABs without ADD rights 2010-10-20 16:16:03 +00:00
Ralf Becker
e86f5fb663 fixed bug: GroupDAV/CardDAV PUT request to /addressbook/ changes owner, also checking now required ACL for moving contacts between addressbooks 2010-10-20 15:47:30 +00:00
Jörg Lehrke
33bd0fed50 Announce all available addressbooks and calendars of the current user with GroupDAV 2010-10-09 22:49:10 +00:00
Jörg Lehrke
40d786871e Improve Mac OS Addressbook.App CardDAV support as far as reasonable 2010-09-25 15:19:48 +00:00
Ralf Becker
ed733eef42 * iPhone and Mac Addressbook support aka Apple CalDAV/CardDAV autodetection
Addressbook does NOT allow to specify the URL, unlike iCal which allows it after autodetection fails.
This, some XML specifics set now for Apple addressbook user-agents and etags for addressbook collection itself
allow now to use EGroupware with iPhone or Mac addressbook. The later was working before, if you edited the URL
into a decompiled plist file, but failed now because of a new REPORT it tries on the principal, to find out shared
addessbooks, which we not yet support, but failed to tell in the correct way (501 Not Implemented).
Addressbook sync now the personal addressbook, because that is what we tell it as addressbook-home-set.
We should add some configuration so user can choose what addressbook to set as addressbook-home-set, or to set
the "all" addressbook (/addressbook). For the later we could add some prefs like SyncML to specify filters or
eg. a distribution list.
2010-09-25 09:08:37 +00:00
Jörg Lehrke
901f5873bc Fix GroupDAV ctag issues 2010-09-18 11:28:12 +00:00
Jörg Lehrke
37fed34972 Allow moving of existing cantacts between adressbooks 2010-07-23 18:06:18 +00:00
Jörg Lehrke
75b25bb796 Fix FroupDAV report issue 2010-07-02 05:01:15 +00:00
Jörg Lehrke
09bc2c09cd Fix CTag issues for GroupDAV 2010-06-29 13:52:56 +00:00
Jörg Lehrke
bce68a9e82 Fix CalDAV group attendee issue; various GroupDAV improvements 2010-06-27 22:16:22 +00:00
Jörg Lehrke
1431f149e2 Fix GroupDAV/Addressbook categories issue 2010-06-14 07:45:25 +00:00
Jörg Lehrke
30a3296c8e Optimze and clean up GroupDAV 2010-04-13 15:31:59 +00:00
Jörg Lehrke
7220d96847 Use iterator approach in GroupDAV; fix various issues 2010-03-15 09:55:16 +00:00
Jörg Lehrke
a8804a44ef GroupDAV updates 2010-03-06 23:06:43 +00:00
Ralf Becker
8d55e4800e fixed supported-report-set according to a calendarserver example and reorganized HTTP_WebDAV_Server to generally support hierachical properties 2010-01-07 04:24:45 +00:00
Ralf Becker
b446f6de4e supported-report-set as required for CardDAV and Sogo connector 2010-01-07 02:04:09 +00:00
Ralf Becker
2e99a3fb20 ctag for addressbook, sogo connector seem to require it, thought it should be optional, anyway ctag makes sense 2010-01-05 23:27:28 +00:00
Ralf Becker
d53f0c91bf ctag for addressbook, sogo connector seem to require it, thought it should be optional, anyway ctag makes sense 2010-01-05 23:25:17 +00:00
Ralf Becker
447c8b618a Using an iterator to query addressbook in chunks of 100 contacts to
allow to do propfinds on hugh addressbooks independent of memory_limit:
- regular groupdav_handler::profind() method gets split in a method just
  computing a filter and a callback to run that filter on the backend
- groupdav_propfind_iterator class is returned from profind method
  instead of an array with information about the files
- iterator calls groupdav_hander::propfind_callback if there are no more
  entries from the previous call
- constructor of groupdav_propfind_iterator allows to pass an extra array
  with files to return, to simplify modifying existing implementation
  (were eg. information about the current path, get's supplied from
  calling groupdav class).
2009-10-17 09:13:36 +00:00
Ralf Becker
4f69a5d1b0 using references to loop of items in profind and some cleanups 2009-10-16 08:36:28 +00:00
Ralf Becker
ae3ecf9891 "- using a referencing foreach to loop over contacts in propfind to minimize memory usage
- some other cleanups"
2009-10-16 08:01:28 +00:00
Ralf Becker
444018cdaf "fix for using GroupDAV with LDAP as addressbook backend" 2009-08-07 07:16:14 +00:00
Ralf Becker
1ba343a837 "fix for using GroupDAV with LDAP as addressbook backend" 2009-08-07 07:15:37 +00:00