diff --git a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs index 7f27993ef..2845401bf 100644 --- a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs +++ b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs @@ -120,7 +120,7 @@ namespace Bit.App.Pages if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) { _vaultTimeoutPolicy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout)).First(); - var minutes = _policyService.GetPolicyInt(_vaultTimeoutPolicy, PolicyService.TIMEOUT_POLICY_MINUTES).GetValueOrDefault(); + var minutes = _policyService.GetPolicyInt(_vaultTimeoutPolicy, "minutes").GetValueOrDefault(); _vaultTimeouts = _vaultTimeouts.Where(t => t.Value <= minutes && (t.Value > 0 || t.Value == CustomVaultTimeoutValue) && @@ -295,7 +295,7 @@ namespace Bit.App.Pages if (_vaultTimeoutPolicy != null) { - var maximumTimeout = _policyService.GetPolicyInt(_vaultTimeoutPolicy, PolicyService.TIMEOUT_POLICY_MINUTES); + var maximumTimeout = _policyService.GetPolicyInt(_vaultTimeoutPolicy, "minutes"); if (newTimeout > maximumTimeout) { @@ -374,10 +374,6 @@ namespace Bit.App.Pages public async Task VaultTimeoutActionAsync() { - if (!string.IsNullOrEmpty(_policyService.GetPolicyString(_vaultTimeoutPolicy, PolicyService.TIMEOUT_POLICY_ACTION))) - { - return; - } var options = _vaultTimeoutActions.Select(o => o.Key == _vaultTimeoutActionDisplayValue ? $"✓ {o.Key}" : o.Key).ToArray(); var selection = await Page.DisplayActionSheet(AppResources.VaultTimeoutAction, @@ -601,38 +597,14 @@ namespace Bit.App.Pages } if (_vaultTimeoutPolicy != null) { - var maximumTimeout = _policyService.GetPolicyInt(_vaultTimeoutPolicy, PolicyService.TIMEOUT_POLICY_MINUTES).GetValueOrDefault(); - var timeoutAction = _policyService.GetPolicyString(_vaultTimeoutPolicy, PolicyService.TIMEOUT_POLICY_ACTION); - if (maximumTimeout != default && timeoutAction != default) + var maximumTimeout = _policyService.GetPolicyInt(_vaultTimeoutPolicy, "minutes").GetValueOrDefault(); + securityItems.Insert(0, new SettingsPageListItem { - securityItems.Insert(0, new SettingsPageListItem - { - Name = string.Format(AppResources.VaultTimeoutPolicyWithActionInEffect, - Math.Floor((float)maximumTimeout / 60), - maximumTimeout % 60, - timeoutAction == PolicyService.TIMEOUT_POLICY_ACTION_LOCK ? AppResources.Lock : AppResources.LogOut), - UseFrame = true, - }); - } - else if (maximumTimeout != default && timeoutAction == default) - { - securityItems.Insert(0, new SettingsPageListItem - { - Name = string.Format(AppResources.VaultTimeoutPolicyInEffect, - Math.Floor((float)maximumTimeout / 60), - maximumTimeout % 60), - UseFrame = true, - }); - } - else if (maximumTimeout == default && timeoutAction != default) - { - securityItems.Insert(0, new SettingsPageListItem - { - Name = string.Format(AppResources.VaultTimeoutActionPolicyInEffect, - timeoutAction == PolicyService.TIMEOUT_POLICY_ACTION_LOCK ? AppResources.Lock : AppResources.LogOut), - UseFrame = true, - }); - } + Name = string.Format(AppResources.VaultTimeoutPolicyInEffect, + Math.Floor((float)maximumTimeout / 60), + maximumTimeout % 60), + UseFrame = true, + }); } if (Device.RuntimePlatform == Device.Android) { diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs index 243501dac..16763104f 100644 --- a/src/App/Resources/AppResources.Designer.cs +++ b/src/App/Resources/AppResources.Designer.cs @@ -6677,15 +6677,6 @@ namespace Bit.App.Resources { } } - /// - /// Looks up a localized string similar to Your organization policies have set your vault timeout action to {0}.. - /// - public static string VaultTimeoutActionPolicyInEffect { - get { - return ResourceManager.GetString("VaultTimeoutActionPolicyInEffect", resourceCulture); - } - } - /// /// Looks up a localized string similar to Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?. /// @@ -6696,7 +6687,7 @@ namespace Bit.App.Resources { } /// - /// Looks up a localized string similar to Your organization policies have set your maximum allowed vault timeout to {0} hour(s) and {1} minute(s).. + /// Looks up a localized string similar to Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). /// public static string VaultTimeoutPolicyInEffect { get { @@ -6704,15 +6695,6 @@ namespace Bit.App.Resources { } } - /// - /// Looks up a localized string similar to Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.. - /// - public static string VaultTimeoutPolicyWithActionInEffect { - get { - return ResourceManager.GetString("VaultTimeoutPolicyWithActionInEffect", resourceCulture); - } - } - /// /// Looks up a localized string similar to Your vault timeout exceeds the restrictions set by your organization.. /// diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx index d7b15ae3f..61742c5f6 100644 --- a/src/App/Resources/AppResources.resx +++ b/src/App/Resources/AppResources.resx @@ -2141,13 +2141,7 @@ Scanning will happen automatically. This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password. - Your organization policies have set your maximum allowed vault timeout to {0} hour(s) and {1} minute(s). - - - Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}. - - - Your organization policies have set your vault timeout action to {0}. + Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s) Your vault timeout exceeds the restrictions set by your organization. diff --git a/src/Core/Abstractions/IPolicyService.cs b/src/Core/Abstractions/IPolicyService.cs index 8acca2c9a..caabeca3d 100644 --- a/src/Core/Abstractions/IPolicyService.cs +++ b/src/Core/Abstractions/IPolicyService.cs @@ -20,7 +20,6 @@ namespace Bit.Core.Abstractions string orgId); Task PolicyAppliesToUser(PolicyType policyType, Func policyFilter = null, string userId = null); int? GetPolicyInt(Policy policy, string key); - string GetPolicyString(Policy policy, string key); Task ShouldShowVaultFilterAsync(); } } diff --git a/src/Core/Services/PolicyService.cs b/src/Core/Services/PolicyService.cs index 448cd1112..c7b374643 100644 --- a/src/Core/Services/PolicyService.cs +++ b/src/Core/Services/PolicyService.cs @@ -17,11 +17,6 @@ namespace Bit.Core.Services private IEnumerable _policyCache; - public const string TIMEOUT_POLICY_MINUTES = "minutes"; - public const string TIMEOUT_POLICY_ACTION = "action"; - public const string TIMEOUT_POLICY_ACTION_LOCK = "lock"; - public const string TIMEOUT_POLICY_ACTION_LOGOUT = "logOut"; - public PolicyService( IStateService stateService, IOrganizationService organizationService) @@ -252,10 +247,6 @@ namespace Bit.Core.Services return null; } - public string GetPolicyString(Policy policy, string key) => - policy.Data.TryGetValue(key, out var val) ? val as string : null; - - public async Task ShouldShowVaultFilterAsync() { var personalOwnershipPolicyApplies = await PolicyAppliesToUser(PolicyType.PersonalOwnership); @@ -281,6 +272,17 @@ namespace Bit.Core.Services return null; } - + private string GetPolicyString(Policy policy, string key) + { + if (policy.Data.ContainsKey(key)) + { + var value = policy.Data[key]; + if (value != null) + { + return (string)value; + } + } + return null; + } } } diff --git a/src/Core/Services/VaultTimeoutService.cs b/src/Core/Services/VaultTimeoutService.cs index 2cef20fc4..43adc7866 100644 --- a/src/Core/Services/VaultTimeoutService.cs +++ b/src/Core/Services/VaultTimeoutService.cs @@ -247,7 +247,7 @@ namespace Bit.Core.Services { 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, PolicyService.TIMEOUT_POLICY_MINUTES); + var policyTimeout = _policyService.GetPolicyInt(policy, "minutes"); if (!policyTimeout.HasValue) { return vaultTimeout;