From 0e2c93864bfc6e5a54c2b283a4d93c76faf3f5a7 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 28 Aug 2018 12:34:27 -0400 Subject: [PATCH] (js) Prohibit subscribing a user with no rights --- NEWS | 6 ++++++ UI/Templates/UIxAclEditor.wox | 2 +- UI/WebServerResources/js/Common/Acl.service.js | 16 ++++++++++++++++ UI/WebServerResources/js/Common/AclController.js | 5 +++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index dbb545a59..02eab6443 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +4.X.Y (2018-MM-DD) +------------------ + +Enhancements + - [web] prohibit subscribing a user with no rights + 4.0.2 (2018-08-24) ------------------ diff --git a/UI/Templates/UIxAclEditor.wox b/UI/Templates/UIxAclEditor.wox index 9b3f5cf4f..e22286215 100644 --- a/UI/Templates/UIxAclEditor.wox +++ b/UI/Templates/UIxAclEditor.wox @@ -77,7 +77,7 @@ diff --git a/UI/WebServerResources/js/Common/Acl.service.js b/UI/WebServerResources/js/Common/Acl.service.js index aa0b9a06a..219c1503d 100644 --- a/UI/WebServerResources/js/Common/Acl.service.js +++ b/UI/WebServerResources/js/Common/Acl.service.js @@ -145,6 +145,22 @@ }); }; + /** + * @function $hasNoRight + * @memberof Acl.prototype + * @desc Check if user has any rights on the resource + * @return true if user has no right at all + */ + Acl.prototype.$hasNoRight = function(user) { + var o = _.find(user.rights, function(value, right) { + if (angular.isNumber(value)) + return (value === 1); + else + return (value !== 'None'); + }); + return _.isUndefined(o); + }; + /** * @function $resetUsersRights * @memberof Acl.prototype diff --git a/UI/WebServerResources/js/Common/AclController.js b/UI/WebServerResources/js/Common/AclController.js index ee3be2a12..1eb9ac079 100644 --- a/UI/WebServerResources/js/Common/AclController.js +++ b/UI/WebServerResources/js/Common/AclController.js @@ -26,6 +26,7 @@ vm.addUser = addUser; vm.selectAllRights = selectAllRights; vm.selectUser = selectUser; + vm.hasNoRight = hasNoRight; vm.showRights = showRights; vm.confirmation = { showing: false, message: ''}; @@ -104,6 +105,10 @@ } } + function hasNoRight(user) { + return folder.$acl.$hasNoRight(user); + } + function showRights(user) { return vm.selectedUid == user.uid && !user.inactive; }