diff --git a/UI/Common/UIxAclEditor.h b/UI/Common/UIxAclEditor.h index e4d0b1d35..72a34dbaf 100644 --- a/UI/Common/UIxAclEditor.h +++ b/UI/Common/UIxAclEditor.h @@ -29,7 +29,7 @@ { BOOL prepared; BOOL publishInFreeBusy; - NSArray *acls; + NSArray *aclUsers; NSArray *savedUIDs; NSMutableArray *users; NSString *currentUser; diff --git a/UI/Common/UIxAclEditor.m b/UI/Common/UIxAclEditor.m index e0328ace9..e87a15259 100644 --- a/UI/Common/UIxAclEditor.m +++ b/UI/Common/UIxAclEditor.m @@ -29,6 +29,7 @@ #import #import #import +#import #import "UIxAclEditor.h" @@ -38,7 +39,7 @@ { if ((self = [super init])) { - acls = nil; + aclUsers = nil; prepared = NO; publishInFreeBusy = NO; users = [NSMutableArray new]; @@ -59,10 +60,10 @@ - (NSArray *) aclsForObject { - if (!acls) - acls = [[self clientObject] acls]; + if (!aclUsers) + aclUsers = [[self clientObject] aclUsers]; - return acls; + return aclUsers; } - (NSString *) _displayNameForUID: (NSString *) uid @@ -92,24 +93,20 @@ - (void) _prepareUsers { NSEnumerator *aclsEnum; - NSDictionary *currentAcl; NSString *currentUID, *ownerLogin; ownerLogin = [[self clientObject] ownerInContext: context]; aclsEnum = [[self aclsForObject] objectEnumerator]; - currentAcl = [aclsEnum nextObject]; - while (currentAcl) + currentUID = [aclsEnum nextObject]; + while (currentUID) { - currentUID = [currentAcl objectForKey: @"c_uid"]; if (!([currentUID isEqualToString: ownerLogin] - || [currentUID isEqualToString: SOGoDefaultUserID] - || [users containsObject: currentUID])) - [users addObject: currentUID]; - currentAcl = [aclsEnum nextObject]; - - prepared = YES; + || [currentUID isEqualToString: SOGoDefaultUserID])) + [users addObjectUniquely: currentUID]; + currentUID = [aclsEnum nextObject]; } + prepared = YES; } - (NSArray *) usersForObject diff --git a/UI/WebServerResources/UIxAclEditor.js b/UI/WebServerResources/UIxAclEditor.js index 74845b325..0745c2fe0 100644 --- a/UI/WebServerResources/UIxAclEditor.js +++ b/UI/WebServerResources/UIxAclEditor.js @@ -119,7 +119,9 @@ function onOpenUserRights(event) { function onAclLoadHandler() { defaultUserID = $("defaultUserID").value; - Event.observe($("defaultRolesBtn"), "click", openRightsForDefaultUser); + var defaultRolesBtn = $("defaultRolesBtn"); + if (defaultRolesBtn) + Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser); var ul = $("userList"); var lis = ul.childNodesWithTag("li"); for (var i = 0; i < lis.length; i++)