mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-08-12 02:13:18 +00:00
fix(preferences): Can not save preferences when there is a constraint on mail
This commit is contained in:
@@ -1946,38 +1946,45 @@ static NSArray *reminderValues = nil;
|
||||
|
||||
[[[user userDefaults] source] setValues: v];
|
||||
|
||||
if ([[user userDefaults] synchronize] && [self userHasMailAccess])
|
||||
{
|
||||
NSException *error;
|
||||
SOGoMailAccount *account;
|
||||
SOGoMailAccounts *folder;
|
||||
SOGoDomainDefaults *dd;
|
||||
if ([self userHasMailAccess]) {
|
||||
if ([[user userDefaults] synchronize])
|
||||
{
|
||||
NSException *error;
|
||||
SOGoMailAccount *account;
|
||||
SOGoMailAccounts *folder;
|
||||
SOGoDomainDefaults *dd;
|
||||
|
||||
dd = [[context activeUser] domainDefaults];
|
||||
dd = [[context activeUser] domainDefaults];
|
||||
|
||||
// We check if the Sieve server is available *ONLY* if at least one of the option is enabled
|
||||
if (!([dd sieveScriptsEnabled] || [dd vacationEnabled] || [dd forwardEnabled] || [dd notificationEnabled])
|
||||
|| [self _isSieveServerAvailable])
|
||||
{
|
||||
BOOL forceActivation = ![[v objectForKey: @"hasActiveExternalSieveScripts"] boolValue];
|
||||
// We check if the Sieve server is available *ONLY* if at least one of the option is enabled
|
||||
if (!([dd sieveScriptsEnabled] || [dd vacationEnabled] || [dd forwardEnabled] || [dd notificationEnabled])
|
||||
|| [self _isSieveServerAvailable])
|
||||
{
|
||||
BOOL forceActivation = ![[v objectForKey: @"hasActiveExternalSieveScripts"] boolValue];
|
||||
|
||||
folder = [[[context activeUser] homeFolderInContext: context] mailAccountsFolder: @"Mail"
|
||||
inContext: context];
|
||||
account = [folder lookupName: @"0" inContext: context acquire: NO];
|
||||
folder = [[[context activeUser] homeFolderInContext: context] mailAccountsFolder: @"Mail"
|
||||
inContext: context];
|
||||
account = [folder lookupName: @"0" inContext: context acquire: NO];
|
||||
|
||||
if ((error = [account updateFiltersAndForceActivation: forceActivation]))
|
||||
{
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 500
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: [error reason], @"message", nil]];
|
||||
}
|
||||
}
|
||||
else
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 503
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"message", nil]];
|
||||
} else {
|
||||
if ((error = [account updateFiltersAndForceActivation: forceActivation]))
|
||||
{
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 500
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: [error reason], @"message", nil]];
|
||||
}
|
||||
}
|
||||
else
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 503
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"message", nil]];
|
||||
} else {
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 500
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Error during the validation", @"message", nil]];
|
||||
}
|
||||
} else {
|
||||
if (![[user userDefaults] synchronize]) {
|
||||
results = (id <WOActionResults>) [self responseWithStatus: 500
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Error during the validation", @"message", nil]];
|
||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Error during the validation", @"message", nil]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((v = [o objectForKey: @"settings"]))
|
||||
|
||||
Reference in New Issue
Block a user