From ffabc70fd7f69ae6c3d00aa7e8d36d1e359c2990 Mon Sep 17 00:00:00 2001 From: Jeremy Tellier - ROG Date: Thu, 2 Sep 2021 17:18:17 +0100 Subject: [PATCH] Move id timeout business logic to the UI --- .../Views/ItemRenderers/IdentityItem.xaml.cs | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/DesktopEdge/Views/ItemRenderers/IdentityItem.xaml.cs b/DesktopEdge/Views/ItemRenderers/IdentityItem.xaml.cs index b07151e4..f40e9844 100644 --- a/DesktopEdge/Views/ItemRenderers/IdentityItem.xaml.cs +++ b/DesktopEdge/Views/ItemRenderers/IdentityItem.xaml.cs @@ -40,6 +40,14 @@ namespace ZitiDesktopEdge { } } + public int GetMaxTimeout() { + int maxto = -1; + for (int i=0; i<_identity.Services.Count; i++) { + if (_identity.Services[i].TimeoutRemaining > maxto) maxto = _identity.Services[i].TimeoutRemaining; + } + return maxto; + } + public void RefreshUI () { ToggleSwitch.Enabled = _identity.IsEnabled; if (_identity.IsMFAEnabled) { @@ -49,11 +57,20 @@ namespace ZitiDesktopEdge { ServiceCountAreaLabel.Content = "services"; MainArea.Opacity = 1.0; if (_identity.MaxTimeout>0) { - if (_timer != null) _timer.Stop(); - _timer = new System.Windows.Forms.Timer(); - _timer.Interval = _identity.MaxTimeout*1000; - _timer.Tick += TimerTicked; - _timer.Start(); + int maxto = GetMaxTimeout(); + if (maxto > 0) { + if (_timer != null) _timer.Stop(); + _timer = new System.Windows.Forms.Timer(); + _timer.Interval = _identity.MaxTimeout * 1000; + _timer.Tick += TimerTicked; + _timer.Start(); + } else { + _identity.MFAInfo.IsAuthenticated = false; + ServiceCountArea.Visibility = Visibility.Collapsed; + MfaRequired.Visibility = Visibility.Visible; + ServiceCountAreaLabel.Content = "authorize"; + MainArea.Opacity = 0.6; + } } if (_identity.MinTimeout > 0) { if (_timingTimer != null) _timingTimer.Stop();