Properly set list values for identities

This commit is contained in:
Jeremy Tellier - ROG
2021-03-22 16:31:28 +01:00
parent 265a68cbc6
commit 7cdb6e2245
3 changed files with 31 additions and 17 deletions
+10 -4
View File
@@ -117,14 +117,13 @@ namespace ZitiDesktopEdge {
if (mfa.IsVerified) {
ShowMFARecoveryCodes(this.IdentityMenu.Identity);
if (this.IdentityMenu.Identity.Fingerprint==mfa.Fingerprint) {
/// Clint - Here too I am manually setting these to get the UIs right
this.IdentityMenu.Identity.IsMFAEnabled = true;
this.IdentityMenu.Identity.MFAInfo.IsAuthenticated = mfa.IsVerified;
this.IdentityMenu.UpdateView();
}
HideModal();
} else {
// ShowBlurb("Provided code could not be verified", ""); - This blurbs on remove MFA and it shouldnt
ShowBlurb("Provided code could not be verified", "");
}
} else {
ShowBlurb("Unexpected error when processing MFA", "");
@@ -239,6 +238,15 @@ namespace ZitiDesktopEdge {
MFASetup.BeginAnimation(Grid.MarginProperty, animateThick);
HideModal();
LoadIdentities(true);
if (isComplete) {
if (MFASetup.Type == 1) {
for (int i=0; i<identities.Count; i++) {
if (identities[i].Fingerprint==MFASetup.Identity.Fingerprint) {
identities[i] = MFASetup.Identity;
}
}
}
}
if (IdentityMenu.IsVisible) {
if (isComplete) {
if (MFASetup.Type == 2) {
@@ -881,8 +889,6 @@ namespace ZitiDesktopEdge {
IdentityMenu.SetHeight(this.Height - 160);
MainMenu.IdentitiesButton.Visibility = Visibility.Visible;
foreach (var id in ids) {
/// Clint - This next line doesnt seem right, should that be filled from the service
if (id.IsMFAEnabled && id.Services.Count > 0) id.MFAInfo.IsAuthenticated = true;
IdentityItem idItem = new IdentityItem();
idItem.ToggleStatus.IsEnabled = id.IsEnabled;
@@ -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;
+14 -5
View File
@@ -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;
}