From 6a6da39bc4f731b01294c4aba87ecf4c9f001da3 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 10 Dec 2024 18:48:05 +0100 Subject: [PATCH] =?UTF-8?q?refactor(HomeController):=20Aktualisiert,=20um?= =?UTF-8?q?=20zu=20pr=C3=BCfen,=20ob=20der=20UserSelectSMS-Wert=20falsch?= =?UTF-8?q?=20ist.=20=20-=20Relevante=20Variablen=20zu=20EnvelopeLocked.cs?= =?UTF-8?q?html=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/HomeController.cs | 32 +++++++++++-------- .../Views/Home/EnvelopeLocked.cshtml | 6 ++-- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 8204b9cd..f6407d04 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -182,18 +182,25 @@ namespace EnvelopeGenerator.Web.Controllers return await _envRcvService.ReadWithSecretByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync( SuccessAsync: async er_secret => { - async Task SendSmsView() + async Task TFAView(bool viaSms) { - var res = await _msgService.SendSmsCodeAsync(er_secret.PhoneNumber!, envelopeReceiverId: envelopeReceiverId); - if (res.Ok) - return View("EnvelopeLocked").WithData("ViaSms", true).WithData("Expiration", res.Expiration); - else if (!res.Allowed) - return View("EnvelopeLocked").WithData("ViaSms", true).WithData("Expiration", res.AllowedAt); + if (viaSms) + { + var res = await _msgService.SendSmsCodeAsync(er_secret.PhoneNumber!, envelopeReceiverId: envelopeReceiverId); + if (res.Ok) + return View("EnvelopeLocked").WithData("AccessCodeName", "smsCode").WithData("Expiration", res.Expiration); + else if (!res.Allowed) + return View("EnvelopeLocked").WithData("AccessCodeName", "smsCode").WithData("Expiration", res.AllowedAt); + else + { + var res_json = JsonConvert.SerializeObject(res); + _logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: $"An unexpected error occurred while sending an SMS code. Response: ${res_json}"); + return this.ViewInnerServiceError(); + } + } else { - var res_json = JsonConvert.SerializeObject(res); - _logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: $"An unexpected error occurred while sending an SMS code. Response: ${res_json}"); - return this.ViewInnerServiceError(); + return View("EnvelopeLocked").WithData("AccessCodeName", "authenticatorCode"); } } @@ -221,10 +228,7 @@ namespace EnvelopeGenerator.Web.Controllers if (er_secret.TFAEnabled) { if (auth.UserSelectSMS is bool userSelectSMS) - { - if(userSelectSMS) - return await SendSmsView(); - } + return await TFAView(userSelectSMS); else { // if If TFA is enabled but UserSelectSMS is null, there is an unauthorized request(e.g. via an application like postman) @@ -244,7 +248,7 @@ namespace EnvelopeGenerator.Web.Controllers { Response.StatusCode = StatusCodes.Status401Unauthorized; ViewData["ErrorMessage"] = _localizer[WebKey.WrongAccessCode].Value; - return await SendSmsView(); + return await TFAView(viaSms: true); } } else diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml index cb780996..379d9724 100644 --- a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml @@ -5,8 +5,10 @@ var logo = _logoOpt.Value; ViewData["Title"] = _localizer[WebKey.DocProtected]; var userCulture = ViewData["UserCulture"] as Culture; - bool viaSms = ViewData["ViaSms"] is bool _viaSms && _viaSms; - var accessCodeName = viaSms ? "smsCode" : "accessCode"; + string accessCodeName = ViewData["AccessCodeName"] is string _accessCodeName ? _accessCodeName : "accessCode"; + bool viaSms = accessCodeName == "smsCode"; + bool viaAuthenticator = accessCodeName == "authenticatorCode"; + bool viaTFA = viaSms || viaAuthenticator; DateTime? expiration = ViewData["Expiration"] is DateTime _expiration ? _expiration : null; bool tfaEnabled = ViewData["TFAEnabled"] is bool _tfaEnabled && _tfaEnabled; bool hasPhoneNumber = ViewData["HasPhoneNumber"] is bool _hasPhoneNumber && _hasPhoneNumber;