Skip to content

Commit

Permalink
fix for bug stopping vault timeout to never (#1618)
Browse files Browse the repository at this point in the history
- use nullable int on settings page and in vault service
  • Loading branch information
jlf0dev authored and mpbw2 committed Oct 29, 2021
1 parent 19658da commit f8e7a62
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
8 changes: 4 additions & 4 deletions src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
Expand Up @@ -57,7 +57,7 @@ public class SettingsPageViewModel : BaseViewModel
};

private Policy _vaultTimeoutPolicy;
private int _vaultTimeout;
private int? _vaultTimeout;

public SettingsPageViewModel()
{
Expand Down Expand Up @@ -220,7 +220,7 @@ public async Task LockAsync()
await _vaultTimeoutService.LockAsync(true, true);
}

public async Task VaultTimeoutAsync(bool promptOptions = true, int newTimeout = 0)
public async Task VaultTimeoutAsync(bool promptOptions = true, int? newTimeout = 0)
{
var oldTimeout = _vaultTimeout;

Expand All @@ -237,7 +237,7 @@ public async Task VaultTimeoutAsync(bool promptOptions = true, int newTimeout =
var cleanSelection = selection.Replace("", string.Empty);
var selectionOption = _vaultTimeouts.FirstOrDefault(o => o.Key == cleanSelection);
_vaultTimeoutDisplayValue = selectionOption.Key;
newTimeout = selectionOption.Value.GetValueOrDefault();
newTimeout = selectionOption.Value;
}

if (_vaultTimeoutPolicy != null)
Expand Down Expand Up @@ -438,7 +438,7 @@ public void BuildList()
securityItems.Insert(1, new SettingsPageListItem
{
Name = AppResources.Custom,
Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout)),
Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout.GetValueOrDefault())),
});
}
if (_vaultTimeoutPolicy != null)
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Abstractions/IVaultTimeoutService.cs
Expand Up @@ -17,6 +17,6 @@ public interface IVaultTimeoutService
Task LockAsync(bool allowSoftLock = false, bool userInitiated = false);
Task LogOutAsync();
Task SetVaultTimeoutOptionsAsync(int? timeout, string action);
Task<int> GetVaultTimeout();
Task<int?> GetVaultTimeout();
}
}
8 changes: 4 additions & 4 deletions src/Core/Services/VaultTimeoutService.cs
Expand Up @@ -86,7 +86,7 @@ public async Task CheckVaultTimeoutAsync()
return;
}
var vaultTimeoutMinutes = await GetVaultTimeout();
if (vaultTimeoutMinutes < 0)
if (vaultTimeoutMinutes < 0 || vaultTimeoutMinutes == null)
{
return;
}
Expand Down Expand Up @@ -178,8 +178,8 @@ public async Task ClearAsync()
await _storageService.RemoveAsync(Constants.ProtectedPin);
}

public async Task<int> GetVaultTimeout() {
var vaultTimeout = (await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey)).GetValueOrDefault(-1);
public async Task<int?> GetVaultTimeout() {
var vaultTimeout = await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey);

if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) {
var policy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout)).First();
Expand All @@ -190,7 +190,7 @@ public async Task ClearAsync()
return vaultTimeout;
}

var timeout = Math.Min(vaultTimeout, policyTimeout.Value);
var timeout = vaultTimeout.HasValue ? Math.Min(vaultTimeout.Value, policyTimeout.Value) : policyTimeout.Value;

if (timeout < 0) {
timeout = policyTimeout.Value;
Expand Down

0 comments on commit f8e7a62

Please sign in to comment.