mirror of
https://github.com/bitwarden/mobile
synced 2025-12-14 23:33:34 +00:00
[AC-1045] vault timeout action policy (#2415)
* [EC-1045] lock action if policy and show message * [EC-1045] add text for policy message * [EC-1045] add consts to policy service * [EC-1045] missed a const * [AC-1045] fix build * [AC-1045] fix bug where UI wasn't updating after sync * [AC-1045] change FirstOrDefault to First to avoid nulls * [AC-1045] refactor get vault timeout functions * [AC-1045] don't filter action options unecessarily * [AC-1045] refactor build alert logic for readability * [AC-1045] use policy to filter timeout options instead of current timeout * [AC-1045] update timeout during sync instead of getter - remove encrypted from state since it's not encrypted - if policies return a timeout policy, check and update vault timeout * [AC-1045] default to custom if we can't find vault timeout option * [AC-1045] revert Encrypted Policies rename
This commit is contained in:
@@ -17,7 +17,6 @@ namespace Bit.Core.Services
|
||||
private readonly ISearchService _searchService;
|
||||
private readonly IMessagingService _messagingService;
|
||||
private readonly ITokenService _tokenService;
|
||||
private readonly IPolicyService _policyService;
|
||||
private readonly IKeyConnectorService _keyConnectorService;
|
||||
private readonly Func<Tuple<string, bool>, Task> _lockedCallback;
|
||||
private readonly Func<Tuple<string, bool, bool>, Task> _loggedOutCallback;
|
||||
@@ -32,7 +31,6 @@ namespace Bit.Core.Services
|
||||
ISearchService searchService,
|
||||
IMessagingService messagingService,
|
||||
ITokenService tokenService,
|
||||
IPolicyService policyService,
|
||||
IKeyConnectorService keyConnectorService,
|
||||
Func<Tuple<string, bool>, Task> lockedCallback,
|
||||
Func<Tuple<string, bool, bool>, Task> loggedOutCallback)
|
||||
@@ -46,7 +44,6 @@ namespace Bit.Core.Services
|
||||
_searchService = searchService;
|
||||
_messagingService = messagingService;
|
||||
_tokenService = tokenService;
|
||||
_policyService = policyService;
|
||||
_keyConnectorService = keyConnectorService;
|
||||
_lockedCallback = lockedCallback;
|
||||
_loggedOutCallback = loggedOutCallback;
|
||||
@@ -241,35 +238,12 @@ namespace Bit.Core.Services
|
||||
|
||||
public async Task<int?> GetVaultTimeout(string userId = null)
|
||||
{
|
||||
var vaultTimeout = await _stateService.GetVaultTimeoutAsync(userId);
|
||||
return await _stateService.GetVaultTimeoutAsync(userId);
|
||||
}
|
||||
|
||||
if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout, null, userId))
|
||||
{
|
||||
var policy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout, userId)).First();
|
||||
// Remove negative values, and ensure it's smaller than maximum allowed value according to policy
|
||||
var policyTimeout = _policyService.GetPolicyInt(policy, "minutes");
|
||||
if (!policyTimeout.HasValue)
|
||||
{
|
||||
return vaultTimeout;
|
||||
}
|
||||
|
||||
var timeout = vaultTimeout.HasValue ? Math.Min(vaultTimeout.Value, policyTimeout.Value) : policyTimeout.Value;
|
||||
|
||||
if (timeout < 0)
|
||||
{
|
||||
timeout = policyTimeout.Value;
|
||||
}
|
||||
|
||||
// We really shouldn't need to set the value here, but multiple services relies on this value being correct.
|
||||
if (vaultTimeout != timeout)
|
||||
{
|
||||
await _stateService.SetVaultTimeoutAsync(timeout, userId);
|
||||
}
|
||||
|
||||
return timeout;
|
||||
}
|
||||
|
||||
return vaultTimeout;
|
||||
public async Task<VaultTimeoutAction?> GetVaultTimeoutAction(string userId = null)
|
||||
{
|
||||
return await _stateService.GetVaultTimeoutActionAsync(userId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user