fix for lock & logout message parsing issue (#1832)

This commit is contained in:
Matt Portune 2022-03-08 14:26:35 -05:00 committed by GitHub
parent fd74164f82
commit c043528a16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 11 deletions

View file

@ -73,8 +73,9 @@ namespace Bit.App
}
else if (message.Command == "locked")
{
var (userId, userInitiated) =
message.Data as Tuple<string, bool> ?? new Tuple<string, bool>(null, false);
var extras = message.Data as Tuple<string, bool>;
var userId = extras?.Item1;
var userInitiated = extras?.Item2 ?? false;
Device.BeginInvokeOnMainThread(async () => await LockedAsync(userId, userInitiated));
}
else if (message.Command == "lockVault")
@ -83,8 +84,10 @@ namespace Bit.App
}
else if (message.Command == "logout")
{
var (userId, userInitiated, expired) =
message.Data as Tuple<string, bool, bool> ?? new Tuple<string, bool, bool>(null, true, false);
var extras = message.Data as Tuple<string, bool, bool>;
var userId = extras?.Item1;
var userInitiated = extras?.Item2 ?? true;
var expired = extras?.Item3 ?? false;
Device.BeginInvokeOnMainThread(async () => await LogOutAsync(userId, userInitiated, expired));
}
else if (message.Command == "loggedOut")

View file

@ -19,8 +19,8 @@ namespace Bit.Core.Services
private readonly ITokenService _tokenService;
private readonly IPolicyService _policyService;
private readonly IKeyConnectorService _keyConnectorService;
private readonly Func<(string userId, bool userInitiated), Task> _lockedCallback;
private readonly Func<(string userId, bool userInitiated, bool expired), Task> _loggedOutCallback;
private readonly Func<Tuple<string, bool>, Task> _lockedCallback;
private readonly Func<Tuple<string, bool, bool>, Task> _loggedOutCallback;
public VaultTimeoutService(
ICryptoService cryptoService,
@ -34,8 +34,8 @@ namespace Bit.Core.Services
ITokenService tokenService,
IPolicyService policyService,
IKeyConnectorService keyConnectorService,
Func<(string userId, bool userInitiated), Task> lockedCallback,
Func<(string userId, bool userInitiated, bool expired), Task> loggedOutCallback)
Func<Tuple<string, bool>, Task> lockedCallback,
Func<Tuple<string, bool, bool>, Task> loggedOutCallback)
{
_cryptoService = cryptoService;
_stateService = stateService;
@ -183,7 +183,7 @@ namespace Bit.Core.Services
await _stateService.SetBiometricLockedAsync(isBiometricLockSet, userId);
if (isBiometricLockSet)
{
_lockedCallback?.Invoke((userId, userInitiated));
_lockedCallback?.Invoke(new Tuple<string, bool>(userId, userInitiated));
return;
}
}
@ -200,14 +200,14 @@ namespace Bit.Core.Services
_collectionService.ClearCache();
_searchService.ClearIndex();
}
_lockedCallback?.Invoke((userId, userInitiated));
_lockedCallback?.Invoke(new Tuple<string, bool>(userId, userInitiated));
}
public async Task LogOutAsync(bool userInitiated = true, string userId = null)
{
if(_loggedOutCallback != null)
{
await _loggedOutCallback.Invoke((userId, userInitiated, false));
await _loggedOutCallback.Invoke(new Tuple<string, bool, bool>(userId, userInitiated, false));
}
}