Refactoring (EnvelopeController): Vereinheitlichung der Verarbeitung von gesperrten Ansichten

- Methode „CreateEnvelopeLockedView” hinzugefügt, um die Logik für die Anzeige gesperrter/umschlossener Ansichten zu zentralisieren
- Aktion „Main“ aktualisiert, um „CreateEnvelopeLockedView“ anstelle von Redirect zu verwenden
- Veraltete Methode „EnvelopeLocked“ entfernt
- TFA-bezogene Ansichten und Handler aktualisiert, um auf „CreateEnvelopeLockedView“ anstelle von „EnvelopeLocked“ zu verweisen
- Dokumentenlade- und Anmeldelogik in wiederverwendbare Methoden vereinfacht
This commit is contained in:
2025-09-18 18:18:59 +02:00
parent 2e6eeafd74
commit 29e6ba8733

View File

@@ -55,7 +55,7 @@ public class EnvelopeController : ViewControllerBase
[HttpGet("{envelopeReceiverId}")] [HttpGet("{envelopeReceiverId}")]
[Obsolete("Use MediatR")] [Obsolete("Use MediatR")]
public async Task<IActionResult> Main([FromRoute] string envelopeReceiverId) public async Task<IActionResult> Main([FromRoute] string envelopeReceiverId, CancellationToken cancel)
{ {
try try
{ {
@@ -110,7 +110,7 @@ public class EnvelopeController : ViewControllerBase
} }
#endregion #endregion
return Redirect($"{envelopeReceiverId}/Locked"); return await CreateEnvelopeLockedView(er, cancel);
} }
catch(Exception ex) catch(Exception ex)
{ {
@@ -119,57 +119,35 @@ public class EnvelopeController : ViewControllerBase
} }
} }
[HttpGet("{envelopeReceiverId}/Locked")] public async Task<IActionResult> CreateEnvelopeLockedView(EnvelopeReceiverDto er, CancellationToken cancel)
[Obsolete("Use DigitalData.Core.Exceptions and .Middleware")]
public async Task<IActionResult> EnvelopeLocked(EnvelopeReceiverDto er, CancellationToken cancel)
{ {
ViewData["EnvelopeKey"] = envelopeReceiverId; if (User.IsInRole(ReceiverRole.FullyAuth))
try
{ {
if (er is null) if (er.Envelope!.Documents?.FirstOrDefault() is DocumentDto doc && doc.ByteData is not null)
{ {
Response.StatusCode = StatusCodes.Status401Unauthorized; ViewData["DocumentBytes"] = doc.ByteData;
return this.ViewEnvelopeNotFound();
} }
if (User.IsInRole(ReceiverRole.FullyAuth))
return await CreateShowEnvelopeView(er);
else else
{ {
ViewData["TFAEnabled"] = er.Envelope!.TFAEnabled; _logger.LogEnvelopeError(uuid: er.Envelope.Uuid, er.Receiver?.Signature, message: "No document byte-data was found in ENVELOPE_DOCUMENT table.");
ViewData["HasPhoneNumber"] = er.HasPhoneNumber; return this.ViewDocumentNotFound();
ViewData["SenderEmail"] = er.Envelope.User!.Email;
ViewData["EnvelopeTitle"] = er.Envelope.Title;
return View("EnvelopeLocked");
} }
}
catch(Exception ex)
{
_logger.LogEnvelopeError(uuid: er.Envelope?.Uuid, er.Receiver!.Signature, exception: ex);
return this.ViewInnerServiceError();
}
}
[Obsolete("Use MediatR")] await HttpContext.SignInEnvelopeAsync(er, ReceiverRole.FullyAuth);
private async Task<IActionResult> CreateShowEnvelopeView(EnvelopeReceiverDto er)
{ //add PSPDFKit licence key
if (er.Envelope!.Documents?.FirstOrDefault() is DocumentDto doc && doc.ByteData is not null) ViewData["PSPDFKitLicenseKey"] = _configuration["PSPDFKitLicenseKey"];
{
ViewData["DocumentBytes"] = doc.ByteData; return View("ShowEnvelope", er);
} }
else else
{ {
_logger.LogEnvelopeError(uuid: er.Envelope.Uuid, er.Receiver?.Signature, message: "No document byte-data was found in ENVELOPE_DOCUMENT table."); ViewData["TFAEnabled"] = er.Envelope!.TFAEnabled;
return this.ViewDocumentNotFound(); ViewData["HasPhoneNumber"] = er.HasPhoneNumber;
ViewData["SenderEmail"] = er.Envelope.User!.Email;
ViewData["EnvelopeTitle"] = er.Envelope.Title;
return View("EnvelopeLocked");
} }
await HttpContext.SignInEnvelopeAsync(er, ReceiverRole.FullyAuth);
//add PSPDFKit licence key
ViewData["PSPDFKitLicenseKey"] = _configuration["PSPDFKitLicenseKey"];
return View("ShowEnvelope", er);
} }
[Obsolete("Use MediatR")] [Obsolete("Use MediatR")]
@@ -233,11 +211,11 @@ public class EnvelopeController : ViewControllerBase
return this.ViewInnerServiceError(); return this.ViewInnerServiceError();
} }
return View("EnvelopeLocked").WithData("CodeType", "smsCode").WithData("SmsExpiration", expiration); return View("CreateEnvelopeLockedView").WithData("CodeType", "smsCode").WithData("SmsExpiration", expiration);
} }
else else
{ {
return View("EnvelopeLocked") return View("CreateEnvelopeLockedView")
.WithData("CodeType", "authenticatorCode") .WithData("CodeType", "authenticatorCode")
.WithData("TfaRegDeadline", er_secret.Receiver?.TfaRegDeadline); .WithData("TfaRegDeadline", er_secret.Receiver?.TfaRegDeadline);
} }
@@ -253,7 +231,7 @@ public class EnvelopeController : ViewControllerBase
//EnvelopeStatusQuery.AccessCodeIncorrect //EnvelopeStatusQuery.AccessCodeIncorrect
await _historyService.RecordAsync(er_secret.EnvelopeId, er_secret.Receiver!.EmailAddress, EnvelopeStatus.AccessCodeIncorrect); await _historyService.RecordAsync(er_secret.EnvelopeId, er_secret.Receiver!.EmailAddress, EnvelopeStatus.AccessCodeIncorrect);
Response.StatusCode = StatusCodes.Status401Unauthorized; Response.StatusCode = StatusCodes.Status401Unauthorized;
return View("EnvelopeLocked") return View("CreateEnvelopeLockedView")
.WithData("EnvelopeKey", envelopeReceiverId) .WithData("EnvelopeKey", envelopeReceiverId)
.WithData("TFAEnabled", er_secret.Envelope!.TFAEnabled) .WithData("TFAEnabled", er_secret.Envelope!.TFAEnabled)
.WithData("HasPhoneNumber", er_secret.HasPhoneNumber) .WithData("HasPhoneNumber", er_secret.HasPhoneNumber)
@@ -367,7 +345,7 @@ public class EnvelopeController : ViewControllerBase
else else
{ {
Response.StatusCode = StatusCodes.Status401Unauthorized; Response.StatusCode = StatusCodes.Status401Unauthorized;
return View("EnvelopeLocked") return View("CreateEnvelopeLockedView")
.WithData("EnvelopeKey", envelopeReceiverId) .WithData("EnvelopeKey", envelopeReceiverId)
.WithData("TFAEnabled", er_secret.Envelope!.TFAEnabled) .WithData("TFAEnabled", er_secret.Envelope!.TFAEnabled)
.WithData("HasPhoneNumber", er_secret.HasPhoneNumber) .WithData("HasPhoneNumber", er_secret.HasPhoneNumber)