mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-21 06:16:00 +00:00
Fix change password with DomainBasedUID
When users use full domain to login (SOGoEnableDomainBasedUID) the user attributes in the cache were not being properly updated because in this case the key is `uid@domain` instead of just `uid`.
This commit is contained in:
committed by
Ludovic Marcotte
parent
d16eeb1a89
commit
f2289ec17f
@@ -595,10 +595,11 @@ static Class NSNullK;
|
||||
newPassword: (NSString *) newPassword
|
||||
perr: (SOGoPasswordPolicyError *) perr
|
||||
{
|
||||
NSString *jsonUser;
|
||||
NSString *jsonUser, *userLogin;
|
||||
NSMutableDictionary *currentUser;
|
||||
BOOL didChange;
|
||||
|
||||
SOGoSystemDefaults *sd;
|
||||
|
||||
jsonUser = [[SOGoCache sharedCache] userAttributesForLogin: login];
|
||||
currentUser = [jsonUser objectFromJSONString];
|
||||
|
||||
@@ -611,9 +612,7 @@ static Class NSNullK;
|
||||
didChange = YES;
|
||||
|
||||
if (!currentUser)
|
||||
{
|
||||
currentUser = [NSMutableDictionary dictionary];
|
||||
}
|
||||
currentUser = [NSMutableDictionary dictionary];
|
||||
|
||||
// It's important to cache the password here as we might have cached the
|
||||
// user's entry in -contactInfosForUserWithUIDorEmail: and if we don't
|
||||
@@ -621,9 +620,13 @@ static Class NSNullK;
|
||||
// cached for the user unless its entry expires from memcached's
|
||||
// internal cache.
|
||||
[currentUser setObject: [newPassword asSHA1String] forKey: @"password"];
|
||||
[[SOGoCache sharedCache]
|
||||
setUserAttributes: [currentUser jsonRepresentation]
|
||||
forLogin: login];
|
||||
sd = [SOGoSystemDefaults sharedSystemDefaults];
|
||||
if ([sd enableDomainBasedUID])
|
||||
userLogin = [NSString stringWithFormat: @"%@@%@", login, domain];
|
||||
else
|
||||
userLogin = login;
|
||||
[[SOGoCache sharedCache] setUserAttributes: [currentUser jsonRepresentation]
|
||||
forLogin: userLogin];
|
||||
}
|
||||
else
|
||||
didChange = NO;
|
||||
|
||||
Reference in New Issue
Block a user