refactor(HomeController): Aktualisiert, um zu prüfen, ob der UserSelectSMS-Wert falsch ist.

- Relevante Variablen zu EnvelopeLocked.cshtml hinzugefügt
This commit is contained in:
Developer 02 2024-12-10 18:48:05 +01:00
parent 137d8e09d4
commit 6a6da39bc4
2 changed files with 22 additions and 16 deletions

View File

@ -182,13 +182,15 @@ namespace EnvelopeGenerator.Web.Controllers
return await _envRcvService.ReadWithSecretByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync( return await _envRcvService.ReadWithSecretByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync(
SuccessAsync: async er_secret => SuccessAsync: async er_secret =>
{ {
async Task<IActionResult> SendSmsView() async Task<IActionResult> TFAView(bool viaSms)
{
if (viaSms)
{ {
var res = await _msgService.SendSmsCodeAsync(er_secret.PhoneNumber!, envelopeReceiverId: envelopeReceiverId); var res = await _msgService.SendSmsCodeAsync(er_secret.PhoneNumber!, envelopeReceiverId: envelopeReceiverId);
if (res.Ok) if (res.Ok)
return View("EnvelopeLocked").WithData("ViaSms", true).WithData("Expiration", res.Expiration); return View("EnvelopeLocked").WithData("AccessCodeName", "smsCode").WithData("Expiration", res.Expiration);
else if (!res.Allowed) else if (!res.Allowed)
return View("EnvelopeLocked").WithData("ViaSms", true).WithData("Expiration", res.AllowedAt); return View("EnvelopeLocked").WithData("AccessCodeName", "smsCode").WithData("Expiration", res.AllowedAt);
else else
{ {
var res_json = JsonConvert.SerializeObject(res); var res_json = JsonConvert.SerializeObject(res);
@ -196,6 +198,11 @@ namespace EnvelopeGenerator.Web.Controllers
return this.ViewInnerServiceError(); return this.ViewInnerServiceError();
} }
} }
else
{
return View("EnvelopeLocked").WithData("AccessCodeName", "authenticatorCode");
}
}
if (auth.HasMulti) if (auth.HasMulti)
{ {
@ -221,10 +228,7 @@ namespace EnvelopeGenerator.Web.Controllers
if (er_secret.TFAEnabled) if (er_secret.TFAEnabled)
{ {
if (auth.UserSelectSMS is bool userSelectSMS) if (auth.UserSelectSMS is bool userSelectSMS)
{ return await TFAView(userSelectSMS);
if(userSelectSMS)
return await SendSmsView();
}
else else
{ {
// if If TFA is enabled but UserSelectSMS is null, there is an unauthorized request(e.g. via an application like postman) // 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; Response.StatusCode = StatusCodes.Status401Unauthorized;
ViewData["ErrorMessage"] = _localizer[WebKey.WrongAccessCode].Value; ViewData["ErrorMessage"] = _localizer[WebKey.WrongAccessCode].Value;
return await SendSmsView(); return await TFAView(viaSms: true);
} }
} }
else else

View File

@ -5,8 +5,10 @@
var logo = _logoOpt.Value; var logo = _logoOpt.Value;
ViewData["Title"] = _localizer[WebKey.DocProtected]; ViewData["Title"] = _localizer[WebKey.DocProtected];
var userCulture = ViewData["UserCulture"] as Culture; var userCulture = ViewData["UserCulture"] as Culture;
bool viaSms = ViewData["ViaSms"] is bool _viaSms && _viaSms; string accessCodeName = ViewData["AccessCodeName"] is string _accessCodeName ? _accessCodeName : "accessCode";
var accessCodeName = viaSms ? "smsCode" : "accessCode"; bool viaSms = accessCodeName == "smsCode";
bool viaAuthenticator = accessCodeName == "authenticatorCode";
bool viaTFA = viaSms || viaAuthenticator;
DateTime? expiration = ViewData["Expiration"] is DateTime _expiration ? _expiration : null; DateTime? expiration = ViewData["Expiration"] is DateTime _expiration ? _expiration : null;
bool tfaEnabled = ViewData["TFAEnabled"] is bool _tfaEnabled && _tfaEnabled; bool tfaEnabled = ViewData["TFAEnabled"] is bool _tfaEnabled && _tfaEnabled;
bool hasPhoneNumber = ViewData["HasPhoneNumber"] is bool _hasPhoneNumber && _hasPhoneNumber; bool hasPhoneNumber = ViewData["HasPhoneNumber"] is bool _hasPhoneNumber && _hasPhoneNumber;