diff --git a/DesktopEdge/MainWindow.xaml.cs b/DesktopEdge/MainWindow.xaml.cs index 9cc705e7..d62fe2d2 100644 --- a/DesktopEdge/MainWindow.xaml.cs +++ b/DesktopEdge/MainWindow.xaml.cs @@ -241,6 +241,15 @@ namespace ZitiDesktopEdge { MFASetup.BeginAnimation(Grid.MarginProperty, animateThick); HideModal(); LoadIdentities(true); + if (isComplete) { + if (MFASetup.Type == 1) { + for (int i=0; i 0) id.MFAInfo.IsAuthenticated = true; IdentityItem idItem = new IdentityItem(); idItem.ToggleStatus.IsEnabled = id.IsEnabled; diff --git a/DesktopEdge/Views/ItemRenderers/MenuEditToggle.xaml.cs b/DesktopEdge/Views/ItemRenderers/MenuEditToggle.xaml.cs index f7834360..12e5feae 100644 --- a/DesktopEdge/Views/ItemRenderers/MenuEditToggle.xaml.cs +++ b/DesktopEdge/Views/ItemRenderers/MenuEditToggle.xaml.cs @@ -57,14 +57,13 @@ namespace ZitiDesktopEdge { _identity = value; if (_identity.IsMFAEnabled) { RecoveryButton.Visibility = Visibility.Visible; - // Clint: Need to know if we are authenticated or not and show or hide this - // if (_identity.IsMFAAuthentcated) { - AuthOff.Visibility = Visibility.Visible; - AuthOn.Visibility = Visibility.Collapsed; - // } else { - // AuthOff.Visibility = Visibility.Collapsed; - // AuthOn.Visibility = Visibility.Visible; - // } + if (!_identity.MFAInfo.IsAuthenticated) { + AuthOff.Visibility = Visibility.Visible; + AuthOn.Visibility = Visibility.Collapsed; + } else { + AuthOff.Visibility = Visibility.Collapsed; + AuthOn.Visibility = Visibility.Visible; + } } else { RecoveryButton.Visibility = Visibility.Collapsed; AuthOff.Visibility = Visibility.Collapsed; diff --git a/DesktopEdge/Views/Screens/MFAScreen.xaml.cs b/DesktopEdge/Views/Screens/MFAScreen.xaml.cs index 19d97ffa..5201d7db 100644 --- a/DesktopEdge/Views/Screens/MFAScreen.xaml.cs +++ b/DesktopEdge/Views/Screens/MFAScreen.xaml.cs @@ -41,6 +41,15 @@ namespace ZitiDesktopEdge { private bool _executing = false; public int Type { get; set; } + public ZitiIdentity Identity { + get { + return this._identity; + } + set { + this._identity = value; + } + } + public MFAScreen() { InitializeComponent(); } @@ -220,8 +229,7 @@ namespace ZitiDesktopEdge { this.OnError?.Invoke("Authentication Failed"); this._executing = false; } else { - MfaRecoveryCodesResponse codeResponse = await serviceClient.ReturnMFACodes(this._identity.Fingerprint, code); - this._identity.MFAInfo.RecoveryCodes = codeResponse.Payload; + this._identity.MFAInfo.IsAuthenticated = true; this.OnClose?.Invoke(true); this._executing = false; } @@ -249,13 +257,14 @@ namespace ZitiDesktopEdge { this._executing = false; } } else if (this.Type == 4) { - SvcResponse authResult = await serviceClient.GenerateMFACodes(this._identity.Fingerprint, code); - if (authResult?.Code != 0) { - Logger.Error("AuthMFA failed. " + authResult.Message); + MfaRecoveryCodesResponse codeResponse = await serviceClient.GenerateMFACodes(this._identity.Fingerprint, code); + if (codeResponse?.Code != 0) { + Logger.Error("AuthMFA failed. " + codeResponse.Message); AuthCode.Text = ""; this.OnError?.Invoke("Authentication Failed"); this._executing = false; } else { + this._identity.MFAInfo.RecoveryCodes = codeResponse.Payload; this.OnClose?.Invoke(true); this._executing = false; }