1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-14 23:33:34 +00:00

[PM-3313] Fix Android SSO Login (#2663)

* [PM-3313] Catch exception on AuthPendingRequest

* [PM-3313] Fix lock timeout action if user doesn't have a master password.

* code format
This commit is contained in:
André Bispo
2023-08-05 01:37:02 +01:00
committed by GitHub
parent 4f62f5e5bc
commit faa9b1a9f7
2 changed files with 15 additions and 10 deletions

View File

@@ -131,13 +131,13 @@ namespace Bit.App.Pages
_vaultTimeoutDisplayValue ??= _vaultTimeoutOptions.Where(o => o.Value == CustomVaultTimeoutValue).First().Key; _vaultTimeoutDisplayValue ??= _vaultTimeoutOptions.Where(o => o.Value == CustomVaultTimeoutValue).First().Key;
var savedVaultTimeoutAction = await _vaultTimeoutService.GetVaultTimeoutAction(); var savedVaultTimeoutAction = await _vaultTimeoutService.GetVaultTimeoutAction();
var action = savedVaultTimeoutAction ?? VaultTimeoutAction.Lock; var timeoutAction = savedVaultTimeoutAction ?? VaultTimeoutAction.Lock;
if (!_hasMasterPassword && savedVaultTimeoutAction == null) if (!_hasMasterPassword && timeoutAction == VaultTimeoutAction.Lock)
{ {
action = VaultTimeoutAction.Logout; timeoutAction = VaultTimeoutAction.Logout;
await _vaultTimeoutService.SetVaultTimeoutOptionsAsync(_vaultTimeout, VaultTimeoutAction.Logout); await _vaultTimeoutService.SetVaultTimeoutOptionsAsync(_vaultTimeout, VaultTimeoutAction.Logout);
} }
_vaultTimeoutActionDisplayValue = _vaultTimeoutActionOptions.FirstOrDefault(o => o.Value == action).Key; _vaultTimeoutActionDisplayValue = _vaultTimeoutActionOptions.FirstOrDefault(o => o.Value == timeoutAction).Key;
if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout))
{ {

View File

@@ -1334,16 +1334,21 @@ namespace Bit.Core.Services
public async Task<PendingAdminAuthRequest> GetPendingAdminAuthRequestAsync(string userId = null) public async Task<PendingAdminAuthRequest> GetPendingAdminAuthRequestAsync(string userId = null)
{ {
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId }, try
await GetDefaultStorageOptionsAsync()); {
return await _storageMediatorService.GetAsync<PendingAdminAuthRequest>(Constants.PendingAdminAuthRequest(reconciledOptions.UserId), true); // GetAsync will throw an ArgumentException exception if there isn't a value to deserialize
return await _storageMediatorService.GetAsync<PendingAdminAuthRequest>(await ComposeKeyAsync(Constants.PendingAdminAuthRequest, userId), true);
}
catch (ArgumentException)
{
return null;
}
} }
public async Task SetPendingAdminAuthRequestAsync(PendingAdminAuthRequest value, string userId = null) public async Task SetPendingAdminAuthRequestAsync(PendingAdminAuthRequest value, string userId = null)
{ {
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId }, await _storageMediatorService.SaveAsync(await ComposeKeyAsync(Constants.PendingAdminAuthRequest, userId), value, true);
await GetDefaultStorageOptionsAsync());
await _storageMediatorService.SaveAsync(Constants.PendingAdminAuthRequest(reconciledOptions.UserId), value, true);
} }
public ConfigResponse GetConfigs() public ConfigResponse GetConfigs()