Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package sogo Shortly after the release of 3.2.6, the SOGo upstreams published a hotfix release "3.2.6a" with two important fixes that -2 includes. I think we should have these two patches included in the version we're going to support. I've been running them at $work for months (the change had been sitting in git for ages) and they seem to cause no problems. unblock sogo/3.2.6-2 -- System Information: Debian Release: 9.0 APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru sogo-3.2.6/debian/changelog sogo-3.2.6/debian/changelog --- sogo-3.2.6/debian/changelog 2017-01-24 00:04:21.000000000 +0100 +++ sogo-3.2.6/debian/changelog 2017-04-11 01:52:41.000000000 +0200 @@ -1,3 +1,11 @@ +sogo (3.2.6-2) unstable; urgency=medium + + * Cherry pick important fixes from the upstream 3.2.6a release. + - [core] fixed "include in freebusy" + - [web] improved ACLs handling of inactive users + + -- Jordi Mallach <jo...@debian.org> Tue, 11 Apr 2017 01:52:41 +0200 + sogo (3.2.6-1) unstable; urgency=medium * New upstream release. diff -Nru sogo-3.2.6/debian/patches/improve-acl-handling-of-inactive-users.patch sogo-3.2.6/debian/patches/improve-acl-handling-of-inactive-users.patch --- sogo-3.2.6/debian/patches/improve-acl-handling-of-inactive-users.patch 1970-01-01 01:00:00.000000000 +0100 +++ sogo-3.2.6/debian/patches/improve-acl-handling-of-inactive-users.patch 2017-02-10 18:20:47.000000000 +0100 @@ -0,0 +1,152 @@ +commit d14b0b0b5e1b34dd9a407295247f7015d2728967 +Author: Francis Lachapelle <flachape...@inverse.ca> +Date: Thu Jan 26 12:48:21 2017 -0500 + + (js) Improve ACLs handling of inactive users + +diff --git a/NEWS b/NEWS +index 73b834ad7..5987fda3b 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,3 +1,12 @@ ++3.2.7 (2017-01-DD) ++------------------ ++ ++Enhancements ++ - [web] improved ACLs handling of inactive users ++ ++Bug fixes ++ - [core] fixed "include in freebusy" (reverts #3354) ++ + 3.2.6 (2017-01-23) + ------------------ + +diff --git a/UI/Templates/AdministrationUI/UIxAdministrationAclEditor.wox b/UI/Templates/AdministrationUI/UIxAdministrationAclEditor.wox +index 1fa3430bb..69c3bf38f 100644 +--- a/UI/Templates/AdministrationUI/UIxAdministrationAclEditor.wox ++++ b/UI/Templates/AdministrationUI/UIxAdministrationAclEditor.wox +@@ -80,12 +80,12 @@ + size="40">{{ user.$avatarIcon }}</sg-avatar-image> + </span> + <div class="sg-tile-content"> +- <div class="sg-md-subhead"><div>{{user.cn}}</div></div> ++ <div class="sg-md-subhead"><div>{{user.$fullname()}}</div></div> + <div class="sg-md-body"><div>{{user.c_email}}</div></div> + </div> + <md-button class="md-icon-button md-secondary" type="button" + ng-click="acl.selectAllRights(user)" +- ng-hide="user.uid != acl.selectedUid || user.$isSpecial()"> ++ ng-hide="!acl.showRights(user) || user.$isSpecial()"> + <md-icon>select_all</md-icon> + </md-button> + <md-button class="md-icon-button" type="button" +@@ -95,7 +95,7 @@ + </md-button> + </div> + </a> +- <md-card-content id="AccessRightList" ng-show="user.uid == acl.selectedUid"> ++ <md-card-content id="AccessRightList" ng-show="acl.showRights(user)"> + <var:if condition="canSubscribeUsers"> + <md-checkbox ng-model="user.isSubscribed" + label:arial-label="Subscribe User" +diff --git a/UI/Templates/UIxAclEditor.wox b/UI/Templates/UIxAclEditor.wox +index 21b8727a7..3868c4a0b 100644 +--- a/UI/Templates/UIxAclEditor.wox ++++ b/UI/Templates/UIxAclEditor.wox +@@ -57,12 +57,12 @@ + size="40">{{ user.$avatarIcon }}</sg-avatar-image> + </div> + <div class="sg-tile-content"> +- <div class="sg-md-subhead"><div>{{user.cn}}</div></div> ++ <div class="sg-md-subhead"><div>{{user.$fullname()}}</div></div> + <div class="sg-md-body"><div>{{user.c_email}}</div></div> + </div> + <md-button class="md-icon-button md-secondary" type="button" + ng-click="acl.selectAllRights(user)" +- ng-hide="user.uid != acl.selectedUid || user.$isSpecial()"> ++ ng-hide="!acl.showRights(user) || user.$isSpecial()"> + <md-icon>select_all</md-icon> + </md-button> + <md-button class="md-icon-button" type="button" +@@ -72,7 +72,7 @@ + </md-button> + </div> + </a> +- <md-card-content id="AccessRightList" ng-show="user.uid == acl.selectedUid"> ++ <md-card-content id="AccessRightList" ng-show="acl.showRights(user)"> + <var:if condition="canSubscribeUsers"> + <md-checkbox ng-model="user.isSubscribed" + label:arial-label="Subscribe User" +diff --git a/UI/WebServerResources/js/Administration/AdministrationAclController.js b/UI/WebServerResources/js/Administration/AdministrationAclController.js +index 0b1a23fda..3049005c5 100644 +--- a/UI/WebServerResources/js/Administration/AdministrationAclController.js ++++ b/UI/WebServerResources/js/Administration/AdministrationAclController.js +@@ -18,6 +18,7 @@ + vm.selectedUid = null; + vm.selectUser = selectUser; + vm.selectAllRights = selectAllRights; ++ vm.showRights = showRights; + vm.removeUser = removeUser; + vm.getTemplate = getTemplate; + vm.close = close; +@@ -56,6 +57,10 @@ + } + } + ++ function showRights(user) { ++ return vm.selectedUid == user.uid && user.rights; ++ } ++ + function userFilter($query) { + return User.$filter($query, stateFolder.$acl.users, { dry: true, uid: vm.user.uid }); + } +diff --git a/UI/WebServerResources/js/Common/AclController.js b/UI/WebServerResources/js/Common/AclController.js +index babbe54f4..bb0d3ccb2 100644 +--- a/UI/WebServerResources/js/Common/AclController.js ++++ b/UI/WebServerResources/js/Common/AclController.js +@@ -24,6 +24,7 @@ + vm.addUser = addUser; + vm.selectAllRights = selectAllRights; + vm.selectUser = selectUser; ++ vm.showRights = showRights; + vm.confirmation = { showing: false, + message: ''}; + +@@ -86,6 +87,10 @@ + vm.selectedUser.$rights(); + } + } ++ ++ function showRights(user) { ++ return vm.selectedUid == user.uid && user.rights; ++ } + } + + angular +diff --git a/UI/WebServerResources/js/Common/User.service.js b/UI/WebServerResources/js/Common/User.service.js +index 7d9a27544..5d9d860da 100644 +--- a/UI/WebServerResources/js/Common/User.service.js ++++ b/UI/WebServerResources/js/Common/User.service.js +@@ -126,12 +126,21 @@ + }; + + /** ++ * @function $fullname ++ * @memberof User.prototype ++ * @return a string representing the fullname ++ */ ++ User.prototype.$fullname = function() { ++ return this.cn || this.uid; ++ }; ++ ++ /** + * @function $shortFormat + * @memberof User.prototype + * @return the fullname along with the email address + */ + User.prototype.$shortFormat = function(options) { +- var fullname = this.cn || this.c_email; ++ var fullname = this.$fullname(); + var email = this.c_email; + var no_email = options && options.email === false; + if (!no_email && email && fullname != email) { diff -Nru sogo-3.2.6/debian/patches/revert-property-honor-include-in-busy.patch sogo-3.2.6/debian/patches/revert-property-honor-include-in-busy.patch --- sogo-3.2.6/debian/patches/revert-property-honor-include-in-busy.patch 1970-01-01 01:00:00.000000000 +0100 +++ sogo-3.2.6/debian/patches/revert-property-honor-include-in-busy.patch 2017-02-10 18:18:34.000000000 +0100 @@ -0,0 +1,49 @@ +commit 831c1bc9801bfd176d5ea2c1a606df4965fc35b8 +Author: Francis Lachapelle <flachape...@inverse.ca> +Date: Thu Jan 26 11:52:58 2017 -0500 + + Revert "(fix) properly honor "include in freebusy" + + This reverts commit eed5679068480963f0f5de9a9e784f642fbfb575. + +diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m +index d688a256b..f9974047e 100644 +--- a/SoObjects/Appointments/SOGoAppointmentFolder.m ++++ b/SoObjects/Appointments/SOGoAppointmentFolder.m +@@ -423,32 +423,26 @@ static Class iCalEventK = nil; + // + // If the user is the owner of the calendar, by default we include the freebusy information. + // +-// If the user is NOT the owner of the calendar but is subscribed, by default we exclude the freebusy information. ++// If the user is NOT the owner of the calendar, by default we exclude the freebusy information. + // + // We must include the freebusy information of other users if we are actually looking at their freebusy information + // but we aren't necessarily subscribed to their calendars. + // + - (BOOL) includeInFreeBusy + { +- NSString *userLogin, *subscriptionReference; + NSNumber *excludeFromFreeBusy; ++ NSString *userLogin; ++ BOOL is_owner; + +- BOOL is_owner, is_subscription; +- + userLogin = [[context activeUser] login]; + is_owner = [userLogin isEqualToString: self->owner]; +- +- // We check if we're subscribed. We must NOT use here [self isSubscribed] as it'll look +- // at the owner's settings, and not the activeUser's settings. +- subscriptionReference = [NSString stringWithFormat: @"%@:Calendar/%@", self->owner, [self nameInContainer]]; +- is_subscription = [[[[[self->context activeUser] userSettings] objectForKey: @"Calendar"] objectForKey: @"SubscribedFolders"] containsObject: subscriptionReference]; + + // Check if the owner (not the active user) has excluded the calendar from her/his free busy data. + excludeFromFreeBusy + = [self folderPropertyValueInCategory: @"FreeBusyExclusions" + forUser: [context activeUser]]; + +- if (is_subscription) ++ if ([self isSubscription]) + { + // If the user has not yet set an include/not include fb information let's EXCLUDE it. + if (!excludeFromFreeBusy) diff -Nru sogo-3.2.6/debian/patches/series sogo-3.2.6/debian/patches/series --- sogo-3.2.6/debian/patches/series 2017-01-11 23:25:52.000000000 +0100 +++ sogo-3.2.6/debian/patches/series 2017-02-10 18:21:29.000000000 +0100 @@ -3,3 +3,5 @@ 0005-Remove-build-date.patch 0006-Update-unit-test-expected-failures.patch disable_test_rendering.patch +improve-acl-handling-of-inactive-users.patch +revert-property-honor-include-in-busy.patch