From 717bab718c3ed0737ee7aa1751805f50e981d644 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 3 Jun 2016 09:00:34 -0400 Subject: [PATCH] (js) Fix user removal from ACLs in Admin module Fixes #3713 --- NEWS | 1 + .../Administration/AdministrationAclController.js | 2 +- UI/WebServerResources/js/Common/Acl.service.js | 13 ++++++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index bce1196f0..287dbeb93 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ Bug fixes - [web] fixed error handling when renaming a mailbox + - [web] fixed user removal from ACLs in Administration module (#3713) 3.1.1 (2016-06-02) ------------------ diff --git a/UI/WebServerResources/js/Administration/AdministrationAclController.js b/UI/WebServerResources/js/Administration/AdministrationAclController.js index c70975f2f..1eda87b1e 100644 --- a/UI/WebServerResources/js/Administration/AdministrationAclController.js +++ b/UI/WebServerResources/js/Administration/AdministrationAclController.js @@ -54,7 +54,7 @@ } function removeUser(user) { - stateFolder.$acl.$removeUser(user.uid).catch(function(data, status) { + stateFolder.$acl.$removeUser(user.uid, stateFolder.owner).catch(function(data, status) { Dialog.alert(l('Warning'), l('An error occured please try again.')); }); } diff --git a/UI/WebServerResources/js/Common/Acl.service.js b/UI/WebServerResources/js/Common/Acl.service.js index 2b903accd..8676e6a6f 100644 --- a/UI/WebServerResources/js/Common/Acl.service.js +++ b/UI/WebServerResources/js/Common/Acl.service.js @@ -112,10 +112,17 @@ * @desc Remove a user from the folder's ACL * @return a promise of the server call to remove the user from the folder's ACL */ - Acl.prototype.$removeUser = function(uid) { + Acl.prototype.$removeUser = function(uid, owner) { var _this = this, - param = {uid: uid}; - return Acl.$$resource.fetch(this.folderId, 'removeUserFromAcls', param).then(function() { + param = {uid: uid}, + acls; + + if (angular.isDefined(owner)) + acls = Acl.$$resource.userResource(owner).fetch(this.folderId, 'removeUserFromAcls', param); + else + acls = Acl.$$resource.fetch(this.folderId, 'removeUserFromAcls', param); + + return acls.then(function() { var i = _.indexOf(_.map(_this.users, 'uid'), uid); if (i >= 0) { _this.users.splice(i, 1);