Commit graph

138 commits

Author SHA1 Message Date
Aleksander Machniak
d4362d8836 Always fetch xml from IMAP and parse objects on select
Temporarily we still store data and xml as before, but do not use them on select.
2019-05-07 10:37:44 +02:00
Aleksander Machniak
9d883ed07d Properly set skip_deleted and threading on Kolab storage IMAP operations (T1145)
Summary:
Fixes race-conditions between Kolab folders and Roundcube core
where skip_deleted/threading could be set for operations outside
of Kolab plugins, causing e.g. inability to see \Deleted messages.

Fixes T1145.

Reviewers: #roundcube_kolab_plugins_developers, vanmeeuwen

Reviewed By: #roundcube_kolab_plugins_developers, vanmeeuwen

Maniphest Tasks: T1145

Differential Revision: https://git.kolab.org/D112
2016-04-14 11:42:00 +02:00
Aleksander Machniak
9d5dd5bf16 Unified get_objects/count/get_uids/select methods argument handling (#5209) 2016-03-09 11:46:26 +01:00
Aleksander Machniak
9daf32495a Fix regression in get_object() (T1098)
Also remove the second argument as it was useless.
2016-03-07 17:54:01 +01:00
Aleksander Machniak
6c25221b95 Performance: Make objects moving faster (less SQL and less IMAP operations) using COPYUID 2016-02-24 13:57:58 +01:00
Aleksander Machniak
52053f355a Performance: Optimize kolab_storage_folder::get_object() to use one sql query instead of two
Before the change to get an object by UID we first resolve UID to IMAP-UID
and then fetch the object data by IMAP-UID - two select queries. Now we
directly select the data by UID.
2016-02-13 11:33:01 +01:00
Aleksander Machniak
2172f4340c Performance: Consolidate metadata requests (#3989)
This changes number of cache requests from 4 to 2 for each groupware folder.
2016-02-12 13:45:58 +01:00
Aleksander Machniak
e7eed4dff1 Make Content-Type check case-insensitive (#5109) 2016-02-11 15:37:21 +01:00
Aleksander Machniak
3239eeb947 Don't use private namespace for folder uniqueid annotations (T491) 2015-07-21 04:36:34 -04:00
Aleksander Machniak
f575dace67 Fix so save() and delete() update in-memory tags cache (T133) - fixes duplicated tags issue 2015-06-24 07:08:35 -04:00
Aleksander Machniak
96ae7b7857 Fix PHP Fatal error: Call to undefined method kolab_storage_folder::raise_error() 2015-05-14 08:44:30 -04:00
Thomas Bruederli
6effb4c9c3 Support X-APPLE-FILENAME parameter for attachments; make attachment cid really unique 2015-04-28 15:48:27 +02:00
Thomas Bruederli
02ef2e6050 Split recurring event into a new series when modifying with this-and-future option (#4386); optimize copying of attachments into new event 2015-02-20 00:11:40 +01:00
Thomas Bruederli
17e6662a23 Add unit/functional tests for kolab_storage_folder error checking methods 2015-02-03 22:14:06 +01:00
Thomas Bruederli
29645a4736 Fix db table reference; forward constructor argument (#4471) 2015-02-03 17:26:03 +01:00
Thomas Bruederli
5982ce8732 Add error checking/reporting facilities to kolab_storage_folder instances (#4378) 2015-02-03 13:15:56 +01:00
Thomas Bruederli
17cf1f4892 Update folder reference in cache (was accidentally removed in 038e269d) 2015-02-03 12:31:12 +01:00
Thomas Bruederli
038e269d51 Check (expected) folder type and disable access to folder contents or cache if invalid (#4378) 2015-01-29 16:48:42 +01:00
Thomas Bruederli
ae93c7b345 Create domain-aware cache identifiers for groupware folders (#3991) 2014-11-27 09:33:40 +01:00
Aleksander Machniak
ac4f6e7562 Avoid unused variables (also fixed some bugs) found in static code analysis 2014-11-21 10:03:18 +01:00
Aleksander Machniak
2a46aceb2b Use new rcube_message::get_part_body() method 2014-10-22 14:58:47 +02:00
Thomas Bruederli
a3d5f717a2 Fix moving events to another calendar/folder and reloading it (#3748) 2014-10-09 16:37:31 +02:00
Thomas Bruederli
372cf33d18 Use folder name for UID if writing to IMAP metadata fails 2014-09-25 10:09:58 +02:00
Thomas Bruederli
b278db0ec3 Pre-select confidential event/tasks folder for iTip invitations marked as confidential (#3451)
+ display privacy classification of iTip attachments in mail invitation view.
2014-09-23 12:27:57 +02:00
Thomas Bruederli
aada053324 Support reading attachments fully stored in XML payload instead of separate MIME parts 2014-07-18 12:00:25 +02:00
Thomas Bruederli
645d06be5e Reset cached properties when iterating folders using the same kolab_storage_folder instance 2014-06-26 09:58:48 +02:00
Thomas Bruederli
510089523e Refactored kolab_storage_folder classes and consolidated some functions 2014-05-15 13:15:58 +02:00
Thomas Bruederli
df08826c03 Improve listing of user folders: also list them if one has access to a child folder 2014-05-15 11:57:12 +02:00
Thomas Bruederli
00b1c7631b Render calendar folders as a searchable treelist widget 2014-05-12 20:47:47 +02:00
Thomas Bruederli
6b1de94b51 Fix Content-Type strings for files and notes; accept application/vnd.kolab+xml when searching for xml part 2014-03-27 19:20:22 +01:00
Thomas Bruederli
af6d366a1f Optimize access to kolab contacts using a sorted and limited query (#2828)
- Add columns for sorting in kolab_cache_contact
- Extend bin/modcache.sh script to update existing cache records
- Add setters for ORDER BY and LIMIT clauses
- Adapt the kolab_addressbook plugin to fetch contacts page-wise

ATTENTION: This changeset contains database schema changes!
Run `bin/updatedb.sh --dir plugins/libkolab/SQL --package libkolab`

Afterwards, the cached data needs to be updated. To do so, either run
  `plugins/libkolab/bin/modcache.sh update --type=contact`
or execute the following query
  DELETE FROM `kolab_folders` WHERE `type`='contact';
2014-02-10 11:46:50 +01:00
Thomas Bruederli
965a9b74b3 Fix anually recurrence end date on 32bit systems by replacing (overflowing) unix timestamps with DateTime objects (#2613) 2014-01-22 11:22:23 +01:00
Thomas Bruederli
21286f0bbb Make generated folder UIDs really unique 2013-11-21 14:34:58 +01:00
Aleksander Machniak
a25fc1a961 Implement cache object update with UPDATE query instead of DELETE + INSERT (Request #2351) 2013-11-20 10:43:17 +01:00
Thomas Bruederli
f24a1da34b Set _mailbox property when saving Kolab objects (#2474) 2013-11-04 12:08:50 +01:00
Aleksander Machniak
5f3c4106a4 Fix undefined variable in set_folder() 2013-10-31 09:06:24 +01:00
Jeroen van Meeuwen (Kolab Systems)
4065542e07 Merge branch 'dev/kolab-cache-refactoring'
Conflicts:
	plugins/libkolab/lib/kolab_storage_cache.php
2013-10-17 16:48:08 +02:00
Thomas Bruederli
6a2262f820 Make some getter methods available for others 2013-10-10 16:46:20 +02:00
Aleksander Machniak
ee30f6fb83 Fix typo in last commit 2013-10-09 10:01:42 +02:00
Aleksander Machniak
e8f2cd98a3 Fix get_objects() when called with no argument, folder type is used 2013-10-09 09:58:19 +02:00
Thomas Bruederli
6fb8c71095 Fix queries to kolab_storage that include (obsolete) 'type' 2013-10-07 19:20:45 +02:00
Thomas Bruederli
6b89e36c4e Merge remote-tracking branch 'origin/libkolab-cache-bypass' into dev/kolab-cache-refactoring 2013-10-07 17:34:17 +02:00
Aleksander Machniak
16d9509a5d Improved performance of kolab cache by bypassing Roundcube messages cache (Request #1740) 2013-10-07 09:56:06 +02:00
Thomas Bruederli
87335f387f Split kolab_cache table into folder-type specific tables and specialized kolab_storage_cache_* classes; the object type is now implicit 2013-10-04 17:14:34 +02:00
Thomas Bruederli
38f5215467 Add methods to read and set a folder's UID (migrated from iRony) 2013-10-03 12:02:19 +02:00
Aleksander Machniak
5327dfc641 Implemented unified cross-plugin HTTP_Request2 object configuration (Request #2149) 2013-09-26 14:53:52 +02:00
Thomas Bruederli
a2883e9402 Fix phpdoc 2013-09-26 10:46:13 +02:00
Thomas Bruederli
27690e5300 Fix after ical parser refactoring: unset 'data' field to avoid binary data being written to cache 2013-09-04 17:37:45 +02:00
Thomas Bruederli
2654abfcaf Get around name inconsistencies 2013-07-24 18:23:53 +02:00
Aleksander Machniak
aea5e2009c Add type argument to get_object() - when you fetch object by uid
and it's type is different than folder type (e.g. distribution-list)
it need to be specified here.
2013-07-03 09:19:16 +02:00