From 7494bb3ae6e60ea96e81c8bc1a73472ce83e168d Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 22 Jun 2020 17:12:05 -0400 Subject: [PATCH] fix(preferences): improve handling of forward addresses Fixes #5053 --- SoObjects/SOGo/SOGoSieveManager.m | 2 +- .../js/Preferences/Preferences.service.js | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/SoObjects/SOGo/SOGoSieveManager.m b/SoObjects/SOGo/SOGoSieveManager.m index 6e3253d00..d09b74b85 100644 --- a/SoObjects/SOGo/SOGoSieveManager.m +++ b/SoObjects/SOGo/SOGoSieveManager.m @@ -1094,7 +1094,7 @@ static NSString *sieveScriptName = @"sogo"; addresses = [values objectForKey: @"forwardAddress"]; if ([addresses isKindOfClass: [NSString class]]) - addresses = [NSArray arrayWithObject: addresses]; + addresses = [addresses componentsSeparatedByString: @","]; for (i = 0; i < [addresses count]; i++) { diff --git a/UI/WebServerResources/js/Preferences/Preferences.service.js b/UI/WebServerResources/js/Preferences/Preferences.service.js index d808987be..d1efa4206 100644 --- a/UI/WebServerResources/js/Preferences/Preferences.service.js +++ b/UI/WebServerResources/js/Preferences/Preferences.service.js @@ -65,8 +65,7 @@ mailAccount.port = null; }); - // We convert our list of autoReplyEmailAddresses/forwardAddress into a string. - // We also convert our date objects into real date, otherwise we'll have strings + // We convert our date objects into real date, otherwise we'll have strings // or undefined values and the md-datepicker does NOT like this. if (data.Vacation) { if (data.Vacation.startDate) @@ -109,8 +108,12 @@ data.Vacation.endDate = new Date(); } - if (data.Forward && angular.isUndefined(data.Forward.forwardAddress)) - data.Forward.forwardAddress = []; + if (data.Forward) { + if (angular.isString(data.Forward.forwardAddress)) + data.Forward.forwardAddress = data.Forward.forwardAddress.split(/, */); + else if (!angular.isArray(data.Forward.forwardAddress)) + data.Forward.forwardAddress = []; + } // Split calendar categories colors keys and values if (angular.isUndefined(data.SOGoCalendarCategories))