[PM-3547] Change logic to set user key for inactive account (#2715)

This commit is contained in:
André Bispo 2023-08-29 10:28:51 +01:00 committed by GitHub
parent 47be3d6aef
commit 68759fc608
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -59,13 +59,6 @@ namespace Bit.Core.Services
public async Task<bool> IsLockedAsync(string userId = null) public async Task<bool> IsLockedAsync(string userId = null)
{ {
// When checking if we need to lock inactive account, we don't want to
// set the key, so we only check if the account has an auto unlock key
if (userId != null && await _stateService.GetActiveUserIdAsync() != userId)
{
return await _cryptoService.HasAutoUnlockKeyAsync(userId);
}
var biometricSet = await IsBiometricLockSetAsync(userId); var biometricSet = await IsBiometricLockSetAsync(userId);
if (biometricSet && await _stateService.GetBiometricLockedAsync(userId)) if (biometricSet && await _stateService.GetBiometricLockedAsync(userId))
{ {
@ -78,8 +71,11 @@ namespace Bit.Core.Services
{ {
return true; return true;
} }
if (userId != null && await _stateService.GetActiveUserIdAsync() != userId)
{
await _cryptoService.SetUserKeyAsync(await _cryptoService.GetAutoUnlockKeyAsync(userId), userId); await _cryptoService.SetUserKeyAsync(await _cryptoService.GetAutoUnlockKeyAsync(userId), userId);
} }
}
// Check again to verify auto key was set // Check again to verify auto key was set
var hasKey = await _cryptoService.HasUserKeyAsync(userId); var hasKey = await _cryptoService.HasUserKeyAsync(userId);