Fix conflicts with externalLoginWithEmail + DomainBasedUid

On multidomain environment (SOGoEnableDomainBasedUID) with email for imap
authentication (SOGoForceExternalLoginWithEmail) we need to use uid@domain
instead of just uid in method getEmailForUID
pull/85/head
Jesús García Sáez 2015-05-20 12:30:05 +02:00
parent 9922ec56d9
commit 37461e650d
1 changed files with 16 additions and 3 deletions

View File

@ -362,6 +362,7 @@ static Class NSNullK;
NSDictionary *contactInfos;
NSString *login;
SOGoDomainDefaults *dd;
SOGoSystemDefaults *sd;
contactInfos = [self contactInfosForUserWithUIDorEmail: uid
inDomain: domain];
@ -372,10 +373,22 @@ static Class NSNullK;
dd = [SOGoDomainDefaults defaultsForDomain: domain];
else
dd = [SOGoSystemDefaults sharedSystemDefaults];
login = [dd forceExternalLoginWithEmail] ? [self getEmailForUID: uid] : uid;
if ([dd forceExternalLoginWithEmail])
{
sd = [SOGoSystemDefaults sharedSystemDefaults];
if ([sd enableDomainBasedUID])
// On multidomain environment we must use uid@domain
// for getEmailForUID method
login = [NSString stringWithFormat: @"%@@%@", uid, domain];
else
login = uid;
login = [self getEmailForUID: login];
}
else
login = uid;
}
return login;
}