Projects
Kolab:16
kolab-syncroton
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 29
View file
kolab-syncroton.spec
Changed
@@ -46,9 +46,12 @@ Source0: https://mirror.kolabenterprise.com/pub/releases/%{name}-%{version}.tar.gz Source1: kolab-syncroton.logrotate +Source2: plesk.kolab_syncroton.inc.php Patch1: defaults.patch +Patch0001: 0001-Accept-MeetingResponse-commands-from-within-the-iOS-.patch + BuildArch: noarch # Use this build requirement to make sure we are using @@ -98,6 +101,8 @@ %patch1 -p1 +%patch0001 -p1 + %build %install @@ -118,7 +123,12 @@ cp -a lib %{buildroot}/%{_datadir}/%{name}/. cp -a index.php %{buildroot}/%{_datadir}/%{name}/. + +%if 0%{?plesk} +cp -a %SOURCE2 %{buildroot}/%{_sysconfdir}/roundcubemail/kolab_syncroton.inc.php +%else cp -a config/config.inc.php.dist %{buildroot}/%{_sysconfdir}/roundcubemail/kolab_syncroton.inc.php +%endif pushd %{buildroot}/%{_datadir}/%{name} ln -s ../../..%{_sysconfdir}/roundcubemail config @@ -201,6 +211,9 @@ %attr(0770,%{httpd_user},%{httpd_group}) %{_var}/log/%{name} %changelog +* Mon Jul 29 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.3.15-3 +- Fix MeetingResponse for Calendar events + * Thu Apr 11 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.3.15-2 - Update defaults
View file
0001-Accept-MeetingResponse-commands-from-within-the-iOS-.patch
Added
@@ -0,0 +1,91 @@ +From 882701777baf1991e5c33bf55b5b1985794fa67b Mon Sep 17 00:00:00 2001 +From: Jeroen van Meeuwen <kanarip@kanarip.ch> +Date: Mon, 29 Jul 2019 11:57:09 +0200 +Subject: [PATCH] Accept MeetingResponse commands from within the iOS calendar + application. + +Summary: Resolves Bifrost#T228115 + +Test Plan: +* Configure an ActiveSync account on an iOS device. + +* Create an invitation from another user with the current user as a participant. + +* Synchronize the iOS device. + +* Click or edit the event in the calendar to change from/to Accepted/Tentative (Maybe)/Decline. + +* Refresh web interface and view event details. + +* As the organizer, expect a response. + +Reviewers: #syncroton_developers + +Subscribers: #syncroton_developers + +Differential Revision: https://git.kolab.org/D773 +--- + lib/kolab_sync_data_calendar.php | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +diff --git a/lib/kolab_sync_data_calendar.php b/lib/kolab_sync_data_calendar.php +index e822c73..010dc23 100644 +--- a/lib/kolab_sync_data_calendar.php ++++ b/lib/kolab_sync_data_calendar.php +@@ -596,7 +596,11 @@ class kolab_sync_data_calendar extends kolab_sync_data implements Syncroton_Data + $event = $this->get_event_from_invitation($request); + + // find the event in calendar +- $existing = $this->find_event_by_uid($event['uid']); ++ if (array_key_exists('uid', $event)) { ++ $existing = $this->find_event_by_uid($event['uid']); ++ } else { ++ $existing = $this->find_event_by_uid($event->uID); ++ } + /* + switch ($status) { + case 'ACCEPTED': $event['free_busy'] = 'busy'; break; +@@ -665,7 +669,11 @@ class kolab_sync_data_calendar extends kolab_sync_data implements Syncroton_Data + // as it's expected by the specification. Server + // should delete an event in such a case, but we + // keep the event copy with appropriate attendee status instead. +- return empty($status) ? null : $this->serverId($event['uid'], $folder); ++ return empty($status) ? null : ( ++ array_key_exists('uid', $event) ? ++ $this->serverId($event['uid'], $folder) : ++ $this->serverId($event->uID, $folder) ++ ); + } + + /** +@@ -684,6 +692,14 @@ class kolab_sync_data_calendar extends kolab_sync_data implements Syncroton_Data + return $event; + } + ++ $collection = new Syncroton_Model_SyncCollection( ++ array('collectionId' => $request->collectionId) ++ ); ++ ++ if ($event = $this->getEntry($collection, $request->requestId)) { ++ return $event; ++ } ++ + throw new Syncroton_Exception_Status_MeetingResponse(Syncroton_Exception_Status_MeetingResponse::INVALID_REQUEST); + } + +@@ -723,8 +739,10 @@ class kolab_sync_data_calendar extends kolab_sync_data implements Syncroton_Data + + $this->update_attendee_status($old, $status); + +- if ($event['free_busy']) { +- $old['free_busy'] = $event['free_busy']; ++ if (array_key_exists('free_busy', $event)) { ++ if ($event['free_busy']) { ++ $old['free_busy'] = $event['free_busy']; ++ } + } + + // Updating an existing event is most-likely a response +-- +2.20.1 +
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +kolab-syncroton (2.3.15-0~kolab6) unstable; urgency=low + + * Fix MeetingResponse parsing for Calendar events + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Mon, 29 Jul 2019 15:13:40 +0200 + kolab-syncroton (2.3.15-0~kolab5) unstable; urgency=low * Correctly clause dependency on kolab-auth
View file
debian.rules
Changed
@@ -25,6 +25,7 @@ cp -a config/config.inc.php.dist $(CURDIR)/debian/kolab-syncroton/etc/roundcubemail/kolab_syncroton.inc.php if [ ! -f "/etc/plesk-release" ]; then \ + cp -v ../SOURCES/plesk.kolab_syncroton.inc.php $(CURDIR)/debian/kolab-syncroton/etc/roundcubemail/kolab_syncroton.inc.php; \ mkdir -p $(CURDIR)/debian/kolab-syncroton/etc/apache2/sites-available ; \ install -pm 644 $(CURDIR)/docs/kolab-syncroton.conf \ $(CURDIR)/debian/kolab-syncroton/etc/apache2/sites-available/kolab-syncroton.conf ; \
View file
debian.series
Changed
@@ -1,1 +1,2 @@ defaults.patch -p1 +0001-Accept-MeetingResponse-commands-from-within-the-iOS-.patch -p1
View file
kolab-syncroton.dsc
Changed
@@ -2,7 +2,7 @@ Source: kolab-syncroton Binary: kolab-syncroton Architecture: all -Version: 2.3.15-0~kolab5 +Version: 2.3.15-0~kolab6 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Homepage: http://www.kolab.org/
View file
plesk.kolab_syncroton.inc.php
Added
@@ -0,0 +1,123 @@ +<?php + +// This file lists all ActiveSync-related configuration options + +// Enables ActiveSync protocol debuging +$config['activesync_debug'] = true; + +// If specified all ActiveSync-related logs will be saved to this file +// Note: This doesn't change Roundcube Framework log locations +$config['activesync_log_file'] = null; + +// Type of ActiveSync cache. Supported values: 'db', 'apc' and 'memcache'. +// Note: This is only for some additional data like timezones mapping. +$config['activesync_cache'] = 'db'; + +// lifetime of ActiveSync cache +// possible units: s, m, h, d, w +$config['activesync_cache_ttl'] = '1d'; + +// Type of ActiveSync Auth cache. Supported values: 'db', 'apc' and 'memcache'. +// Note: This is only for username canonification map. +$config['activesync_auth_cache'] = 'db'; + +// lifetime of ActiveSync Auth cache +// possible units: s, m, h, d, w +$config['activesync_auth_cache_ttl'] = '1d'; + +// List of global addressbooks (GAL) +// Note: If empty 'autocomplete_addressbooks' setting will be used +$config['activesync_addressbooks'] = array(); + +// ActiveSync => Roundcube contact fields map for GAL search +/* Default: array( + 'alias' => 'nickname', + 'company' => 'organization', + 'displayName' => 'name', + 'emailAddress' => 'email', + 'firstName' => 'firstname', + 'lastName' => 'surname', + 'mobilePhone' => 'phone.mobile', + 'office' => 'office', + 'picture' => 'photo', + 'phone' => 'phone', + 'title' => 'jobtitle', +); +*/ +$config['activesync_gal_fieldmap'] = null; + +// List of device types that will sync the LDAP addressbook(s) as a normal folder. +// For devices that do not support GAL searching, e.g. Outlook. +// Note: To make the LDAP addressbook sources working we need two additional +// fields ('uid' and 'changed') specified in the fieldmap array +// of the LDAP configuration ('ldap_public' option). For example: +// 'uid' => 'nsuniqueid', +// 'changed' => 'modifytimestamp', +// Examples: +// array('windowsoutlook') # enable for Oultook only +// true # enable for all +$config['activesync_gal_sync'] = false; + +// GAL cache. As reading all contacts from LDAP may be slow, caching is recommended. +$config['activesync_gal_cache'] = 'db'; + +// TTL of GAL cache entries. Technically this causes that synchronized +// contacts will not be updated (queried) often than the specified interval. +$config['activesync_gal_cache_ttl'] = '1d'; + +// List of Roundcube plugins +// WARNING: Not all plugins used in Roundcube can be listed here +$config['activesync_plugins'] = array( + 'libcalendaring', + 'libkolab' +); + +// Defines for how many seconds we'll sleep between every +// action for detecting changes in folders. Default: 60 +$config['activesync_ping_timeout'] = 60; + +// Defines maximum Ping interval in seconds. Default: 900 (15 minutes) +$config['activesync_ping_interval'] = 900; + +// We start detecting changes n seconds since the last sync of a folder +// Default: 180 +$config['activesync_quiet_time'] = 0; + +// Defines maximum number of folders in a single Sync/Ping request. Default: 100. +$config['activesync_max_folders'] = 100; + +// When a device is reqistered, by default a set of folders are +// subscribed for syncronization, i.e. INBOX and personal folders with +// defined folder type: +// mail.drafts, mail.wastebasket, mail.sentitems, mail.outbox, +// event, event.default, +// contact, contact.default, +// task, task.default +// This default set can be extended by adding following values: +// 1 - all subscribed folders in personal namespace +// 2 - all folders in personal namespace +// 4 - all subscribed folders in other users namespace +// 8 - all folders in other users namespace +// 16 - all subscribed folders in shared namespace +// 32 - all folders in shared namespace +$config['activesync_init_subscriptions'] = 21; + +// Defines blacklist of devices (device type strings) that do not support folder hierarchies. +// When set to an array folder hierarchies are used on all devices not listed here. +// When set to null an old whitelist approach will be used where we do opposite +// action and enable folder hierarchies only on device types known to support it. +$config['activesync_multifolder_blacklist'] = array(); + +// Blacklist overwrites for specified object type. If set to an array +// it will have a precedence over 'activesync_multifolder_blacklist' list only for that type. +// Note: Outlook does not support multiple folders for contacts, +// in that case use $config['activesync_multifolder_blacklist_contact'] = array('windowsoutlook'); +$config['activesync_multifolder_blacklist_mail'] = null; +$config['activesync_multifolder_blacklist_event'] = null; +$config['activesync_multifolder_blacklist_contact'] = array('windowsoutlook'); +$config['activesync_multifolder_blacklist_note'] = null; +$config['activesync_multifolder_blacklist_task'] = null; + +// Enables adding sender name in the From: header of send email +// when a device uses email address only (e.g. iOS devices) +$config['activesync_fix_from'] = false;
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.