Return NSDictionary contact entries from [MembershipAwareSource membersForGroupWithUID] instead of SOGoUser objects.

Optimization for user sources that are capable of fetching lists of group members at once, might save a lot of expensive SOGoUser lookups.
This commit is contained in:
Johannes Kanefendt
2019-11-26 22:20:28 +01:00
parent 2e98929900
commit 278d4ab4cb
5 changed files with 74 additions and 48 deletions
+4 -4
View File
@@ -396,7 +396,7 @@
NSString *email;
SOGoObject <SOGoContactObject> *contact;
SOGoObject <SOGoSource> *source;
SOGoUser *user;
NSDictionary *user;
id <WOActionResults> result;
unsigned int i, max;
@@ -416,14 +416,14 @@
{
user = [allUsers objectAtIndex: i];
allUserEmails = [NSMutableArray array];
emails = [[user allEmails] objectEnumerator];
emails = [[user objectForKey: @"c_emails"] objectEnumerator];
while ((email = [emails nextObject])) {
[allUserEmails addObject: [NSDictionary dictionaryWithObjectsAndKeys:
email, @"value", @"work", @"type", nil]];
}
userData = [NSDictionary dictionaryWithObjectsAndKeys:
[user loginInDomain], @"c_uid",
[user cn], @"c_cn",
[user objectForKey: @"c_uid"], @"c_uid",
[user objectForKey: @"c_cn"], @"c_cn",
allUserEmails, @"emails", nil];
[allUsersData addObject: userData];
}