diff --git a/NEWS b/NEWS index 02e26d14a..1331c5bf2 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +3.2.5 (2016-12-DD) +------------------ + +Bug fixes + - [web] fixed confusion between owner and active user in ACLs management of Administration module + 3.2.4 (2016-12-01) ------------------ diff --git a/UI/MainUI/SOGoUserHomePage.m b/UI/MainUI/SOGoUserHomePage.m index 527bab135..0af82ce68 100644 --- a/UI/MainUI/SOGoUserHomePage.m +++ b/UI/MainUI/SOGoUserHomePage.m @@ -535,14 +535,14 @@ { NSString *uid; NSDictionary *contact; - NSString *contactInfo, *login; + NSString *contactInfo, *owner; NSMutableArray *jsonResponse; NSMutableDictionary *jsonLine; NSArray *allUsers; int count, max; BOOL activeUserIsInDomain; - login = [[context activeUser] login]; + owner = [[self clientObject] ownerInContext: context]; activeUserIsInDomain = ([domain length] == 0 || [[[context activeUser] domain] isEqualToString: domain]); // We sort our array - this is pretty useful for the Web @@ -556,8 +556,8 @@ contact = [allUsers objectAtIndex: count]; uid = [contact objectForKey: @"c_uid"]; - // We do NOT return the current authenticated user - if (!activeUserIsInDomain || ![uid isEqualToString: login]) + // We do NOT return the owner from which the search is performed + if (!activeUserIsInDomain || ![uid isEqualToString: owner]) { jsonLine = [NSMutableDictionary dictionary]; if ([domain length]) diff --git a/UI/WebServerResources/js/Administration/AdministrationAclController.js b/UI/WebServerResources/js/Administration/AdministrationAclController.js index 1f4bd19d9..0b1a23fda 100644 --- a/UI/WebServerResources/js/Administration/AdministrationAclController.js +++ b/UI/WebServerResources/js/Administration/AdministrationAclController.js @@ -57,7 +57,7 @@ } function userFilter($query) { - return User.$filter($query, stateFolder.$acl.users, { dry: true }); + return User.$filter($query, stateFolder.$acl.users, { dry: true, uid: vm.user.uid }); } function removeUser(user) { diff --git a/UI/WebServerResources/js/Common/User.service.js b/UI/WebServerResources/js/Common/User.service.js index ec15c6f8b..7d9a27544 100644 --- a/UI/WebServerResources/js/Common/User.service.js +++ b/UI/WebServerResources/js/Common/User.service.js @@ -43,7 +43,7 @@ * @return a promise of an array of matching User objects */ User.$filter = function(search, excludedUsers, options) { - var _this = this, param = {search: search}; + var _this = this, resource = User.$$resource, param = {search: search}; if (!options || !options.dry) { if (!search) { @@ -57,8 +57,11 @@ } User.$query = search; } + else if (options && options.uid) { + resource = User.$$resource.userResource(options.uid); + } - return User.$$resource.fetch(null, 'usersSearch', param).then(function(response) { + return resource.fetch(null, 'usersSearch', param).then(function(response) { var results, index, user, users, compareUids = function(data) { return this.uid == data.uid;