Your message dated Sun, 23 Apr 2017 13:52:19 +0000
with message-id <[email protected]>
and subject line unblock sogo
has caused the Debian Bug report #860977,
regarding unblock: sogo/3.2.6-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
860977: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860977
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
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 <[email protected]>  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 <[email protected]>
+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 <[email protected]>
+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

--- End Message ---
--- Begin Message ---
Unblocked sogo.

--- End Message ---

Reply via email to