refactor(HomeController): ReadWithSecretByUuidSignatureAsync implementiert, um alle Informationen in einer einzigen Sql-Transaktion zu erhalten.
- Methode hinzugefügt, um geheimes dto in dto zu konvertieren
This commit is contained in:
@@ -5,5 +5,7 @@
|
|||||||
public string? AccessCode { get; init; }
|
public string? AccessCode { get; init; }
|
||||||
|
|
||||||
public string? PhoneNumber { get; init; }
|
public string? PhoneNumber { get; init; }
|
||||||
|
|
||||||
|
public EnvelopeReceiverDto WithoutSecrets => this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,6 +18,7 @@ using static EnvelopeGenerator.Common.Constants;
|
|||||||
using Ganss.Xss;
|
using Ganss.Xss;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using DigitalData.Core.Client;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers
|
||||||
{
|
{
|
||||||
@@ -169,36 +170,30 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
|
|
||||||
//check access code
|
//check access code
|
||||||
EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
|
EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
|
||||||
var verification = await _envRcvService.VerifyAccessCodeAsync(uuid: uuid, signature: signature, accessCode: auth.AccessCode!);
|
|
||||||
if (verification.IsFailed)
|
|
||||||
{
|
|
||||||
_logger.LogNotice(verification.Notices);
|
|
||||||
Response.StatusCode = StatusCodes.Status401Unauthorized;
|
|
||||||
return View("EnvelopeLocked")
|
|
||||||
.WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return await _envRcvService.ReadByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync<EnvelopeReceiverDto, IActionResult>(
|
return await _envRcvService.ReadWithSecretByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync<EnvelopeReceiverSecretDto, IActionResult>(
|
||||||
SuccessAsync: async er =>
|
SuccessAsync: async er_secret =>
|
||||||
{
|
{
|
||||||
//check the access code verification
|
//check the access code verification
|
||||||
if (verification.IsWrong())
|
if (er_secret.AccessCode != auth.AccessCode)
|
||||||
{
|
{
|
||||||
//Constants.EnvelopeStatus.AccessCodeIncorrect
|
//Constants.EnvelopeStatus.AccessCodeIncorrect
|
||||||
await _historyService.RecordAsync(er.EnvelopeId, er.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeIncorrect);
|
await _historyService.RecordAsync(er_secret.EnvelopeId, er_secret.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeIncorrect);
|
||||||
Response.StatusCode = StatusCodes.Status401Unauthorized;
|
Response.StatusCode = StatusCodes.Status401Unauthorized;
|
||||||
return View("EnvelopeLocked")
|
return View("EnvelopeLocked")
|
||||||
.WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value);
|
.WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _historyService.RecordAsync(er.EnvelopeId, er.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeCorrect);
|
await _historyService.RecordAsync(er_secret.EnvelopeId, er_secret.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeCorrect);
|
||||||
|
|
||||||
//check if the user has phone is added
|
//check if the user has phone is added
|
||||||
if (er.HasPhoneNumber)
|
if (er_secret.HasPhoneNumber)
|
||||||
{
|
{
|
||||||
return View("EnvelopeLocked").WithData("ViaSms", true);
|
return View("EnvelopeLocked").WithData("ViaSms", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var er = er_secret.WithoutSecrets;
|
||||||
|
|
||||||
ViewData["EnvelopeKey"] = envelopeReceiverId;
|
ViewData["EnvelopeKey"] = envelopeReceiverId;
|
||||||
//check rejection
|
//check rejection
|
||||||
var rejRcvrs = await _historyService.ReadRejectingReceivers(er.Envelope!.Id);
|
var rejRcvrs = await _historyService.ReadRejectingReceivers(er.Envelope!.Id);
|
||||||
|
|||||||
Reference in New Issue
Block a user