diff --git a/NEWS b/NEWS index 8d83f674b..11de6bcc7 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,7 @@ Bug fixes - [web] prevented form to be marked dirty when changing password (#4138) - [web] restored support for SOGoLDAPContactInfoAttribute - [web] avoid duplicated email addresses in LDAP-based addressbook (#4129) + - [web] fixed mail delegation of pristine user accounts (#4160) - [core] cherry-picked comma escaping fix from v2 (#3296) - [core] fix sogo-tool restore potentially crashing on corrupted data (#4048) - [core] handle properly mails using windows-1255 charset (#4124) diff --git a/SoObjects/Mailer/SOGoMailAccount.m b/SoObjects/Mailer/SOGoMailAccount.m index 133f5296a..acfab8aa0 100644 --- a/SoObjects/Mailer/SOGoMailAccount.m +++ b/SoObjects/Mailer/SOGoMailAccount.m @@ -1092,13 +1092,20 @@ static NSString *inboxFolderName = @"INBOX"; - (void) _setDelegates: (NSArray *) newDelegates { + NSMutableDictionary *mailSettings; SOGoUser *ownerUser; SOGoUserSettings *settings; ownerUser = [SOGoUser userWithLogin: [self ownerInContext: context]]; settings = [ownerUser userSettings]; - [[settings objectForKey: @"Mail"] setObject: newDelegates - forKey: @"DelegateTo"]; + mailSettings = [settings objectForKey: @"Mail"]; + if (!mailSettings) + { + mailSettings = [NSMutableDictionary dictionaryWithCapacity: 1]; + [settings setObject: mailSettings forKey: @"Mail"]; + } + [mailSettings setObject: newDelegates + forKey: @"DelegateTo"]; [settings synchronize]; } diff --git a/SoObjects/Mailer/SOGoUser+Mailer.m b/SoObjects/Mailer/SOGoUser+Mailer.m index 71591cfc9..300e1249a 100644 --- a/SoObjects/Mailer/SOGoUser+Mailer.m +++ b/SoObjects/Mailer/SOGoUser+Mailer.m @@ -45,11 +45,18 @@ - (void) _setMailDelegators: (NSArray *) newDelegators { + NSMutableDictionary *mailSettings; SOGoUserSettings *settings; settings = [self userSettings]; - [[settings objectForKey: @"Mail"] setObject: newDelegators - forKey: @"DelegateFrom"]; + mailSettings = [settings objectForKey: @"Mail"]; + if (!mailSettings) + { + mailSettings = [NSMutableDictionary dictionaryWithCapacity: 1]; + [settings setObject: mailSettings forKey: @"Mail"]; + } + [mailSettings setObject: newDelegators + forKey: @"DelegateFrom"]; [settings synchronize]; }