Allow custom email to be one of the user's profile

Fixes #3551
This commit is contained in:
Francis Lachapelle 2016-10-03 10:29:30 -04:00
parent 3badf13c22
commit 0fc3791f37
3 changed files with 18 additions and 8 deletions

2
NEWS
View file

@ -5,7 +5,7 @@ New features
-
Enhancements
-
- [web] allow custom email address to be one of the user's profile (#3551)
Bug fixes
- [eas] make sure we don't sleep for too long when EAS processes need interruption

View file

@ -607,11 +607,11 @@
*encryption, *scheme, *action, *query, *customEmail, *defaultEmail, *sieveServer;
NSMutableDictionary *mailAccount, *identity, *mailboxes, *receipts;
NSNumber *port;
NSMutableArray *identities;
NSArray *mails;
NSMutableArray *identities, *mails;
NSURL *url, *cUrl;
unsigned int count, max, default_identity;
NSInteger defaultPort;
NSUInteger index;
[self userDefaults];
@ -692,7 +692,7 @@
defaultEmail = [NSString stringWithFormat: @"%@@%@", [self loginInDomain], [self domain]];
default_identity = 0;
identities = [NSMutableArray new];
mails = [self allEmails];
mails = [NSMutableArray arrayWithArray: [self allEmails]];
[mailAccount setObject: [mails objectAtIndex: 0] forKey: @"name"];
replyTo = [_defaults mailReplyTo];
@ -709,6 +709,17 @@
{
if ([customEmail length] == 0)
customEmail = [mails objectAtIndex: 0];
else if ([fullName length] == 0)
{
// Custom email but default fullname; if the custom email is
// one of the user's emails, remove the duplicated entry
index = [mails indexOfObject: customEmail];
if (index != NSNotFound)
{
[mails removeObjectAtIndex: index];
max--;
}
}
if ([fullName length] == 0)
{

View file

@ -1670,10 +1670,9 @@ static NSArray *reminderValues = nil;
value = [[identity objectForKey: @"email"]
stringByTrimmingSpaces];
/* We make sure that the "custom" value is different from the values
returned by the user directory service. */
if ([value length] == 0
|| [[user allEmails] containsObject: value])
/* We make sure that the "custom" value is different from the system email */
if ([value length] == 0)
|| [[user systemEmail] isEqualToString: value])
value = nil;
[userDefaults setMailCustomEmail: value];