password change updates
This commit is contained in:
parent
1cbf88d563
commit
f39fc86a84
|
|
@ -114,5 +114,8 @@ public class SignalRTags : AcSignalRTags
|
|||
public const int UserChangePassword = 139;
|
||||
public const int UserForgotPassword = 140;
|
||||
|
||||
public const int GuestUpdateTransfer = 150;
|
||||
public const int DriverUpdateTransfer = 151;
|
||||
|
||||
public const int GetAllLogItemsByFilterText = 1000;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,16 +34,18 @@
|
|||
<div class="text-center mt-4 name">
|
||||
@_localizer["LoginTitleText"]
|
||||
</div>
|
||||
<div class="form-field">
|
||||
<DxMaskedInput @bind-Value="@emailAddress"
|
||||
Id="Email"
|
||||
CssClass="cw-320"
|
||||
CssClass="form-control"
|
||||
Mask="@EmailMask"
|
||||
MaskMode="MaskMode.RegEx">
|
||||
<DxRegExMaskProperties MaskAutoCompleteMode="@((MaskAutoCompleteMode)AutoCompleteMode)"
|
||||
Placeholder="Placeholder"
|
||||
PlaceholdersVisible="PlaceholderVisible" />
|
||||
</DxMaskedInput>
|
||||
<DxButton RenderStyle="ButtonRenderStyle.Primary" Click="() => SendMail(emailAddress)">Send</DxButton>
|
||||
</div>
|
||||
<DxButton CssClass="btn btn-primary mt-3" Click="() => SendMail(emailAddress)">Send</DxButton>
|
||||
<div class="text-center fs-6">
|
||||
No account yet? <a href="register">Sign up here!</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,18 +14,25 @@
|
|||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
||||
<div class="e-card cw-480">
|
||||
<div class="e-main d-flex align-items-center">
|
||||
<div class="flex-shrink-0">
|
||||
<img class="e-photo" src="_content/TIAMSharedUI/images/defaultavatar_60.png" alt="" />
|
||||
</div>
|
||||
<div class="e-info flex-grow-1 ms-3">
|
||||
<div class="e-name">@($"{Context.UserDto.Id}")</div>
|
||||
<p class="e-title"><i class="fa-solid fa-at"></i> @Context.UserDto.EmailAddress</p>
|
||||
<p class="e-title"><i class="fa-solid fa-phone"></i> @Context.UserDto.PhoneNumber</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="hr" />
|
||||
@{
|
||||
if(!IsForgotten)
|
||||
{
|
||||
<div class="e-main d-flex align-items-center">
|
||||
<div class="flex-shrink-0">
|
||||
<img class="e-photo" src="_content/TIAMSharedUI/images/defaultavatar_60.png" alt="" />
|
||||
</div>
|
||||
<div class="e-info flex-grow-1 ms-3">
|
||||
<div class="e-name">@($"{Context.UserDto.Id}")</div>
|
||||
<p class="e-title"><i class="fa-solid fa-at"></i> @Context.UserDto.EmailAddress</p>
|
||||
<p class="e-title"><i class="fa-solid fa-phone"></i> @Context.UserDto.PhoneNumber</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="hr" />
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
|
|
@ -33,10 +40,16 @@
|
|||
</div>
|
||||
|
||||
<div class="col-9 col-md-4">
|
||||
<DxTextBox hidden="@IsForgotten" @bind-Text="@OldPassword"
|
||||
NullText="Old password"
|
||||
Password="true"
|
||||
CssClass="form-field" />
|
||||
@{
|
||||
if(!IsForgotten)
|
||||
{
|
||||
<DxTextBox @bind-Text="@OldPassword"
|
||||
NullText="Old password"
|
||||
Password="true"
|
||||
CssClass="form-field" />
|
||||
}
|
||||
}
|
||||
|
||||
<DxTextBox @bind-Text="@NewPassword"
|
||||
NullText="New password"
|
||||
BindValueMode="BindValueMode.OnDelayedInput"
|
||||
|
|
|
|||
|
|
@ -43,8 +43,9 @@ namespace TIAMWebApp.Server.Controllers
|
|||
private readonly TransferBackendService _transferBackendService;
|
||||
private readonly IMessageSenderService _messageSenderService;
|
||||
private readonly AuthService _authService;
|
||||
private readonly UserAPIController _userApiController;
|
||||
|
||||
public TransferDataAPIController(AdminDal adminDal, TransferBackendService transferBackendService, IMessageSenderService messageSenderService, IEnumerable<IAcLogWriterBase> logWriters, AuthService authService)
|
||||
public TransferDataAPIController(AdminDal adminDal, TransferBackendService transferBackendService, IMessageSenderService messageSenderService, IEnumerable<IAcLogWriterBase> logWriters, AuthService authService, UserAPIController userApiController)
|
||||
{
|
||||
_adminDal = adminDal;
|
||||
_transferBackendService = transferBackendService;
|
||||
|
|
@ -52,6 +53,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
_logger = new TIAM.Core.Loggers.Logger<TransferDataAPIController>(logWriters.ToArray());
|
||||
_messageSenderService = messageSenderService;
|
||||
_authService = authService;
|
||||
_userApiController = userApiController;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -745,6 +747,29 @@ namespace TIAMWebApp.Server.Controllers
|
|||
return await _adminDal.UpdateTransferAsync(transfer);
|
||||
}
|
||||
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.GuestUpdateTransferRouteName)]
|
||||
[SignalR(SignalRTags.GuestUpdateTransfer)]
|
||||
public async Task<Transfer?> GuestUpdateTransfer(Transfer transfer)
|
||||
{
|
||||
_logger.Info($"UpdateTransfer called! transferId: {transfer.Id}");
|
||||
|
||||
return await _adminDal.UpdateTransferAsync(transfer);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.DriverUpdateTransferRouteName)]
|
||||
[SignalR(SignalRTags.DriverUpdateTransfer)]
|
||||
public async Task<Transfer?> DriverUpdateTransfer(Transfer transfer)
|
||||
{
|
||||
_logger.Info($"UpdateTransfer called! transferId: {transfer.Id}");
|
||||
|
||||
return await _adminDal.UpdateTransferAsync(transfer);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
[SignalR(SignalRTags.RemoveTransfer)]
|
||||
public async Task<Transfer?> RemoveTransfer(Transfer transfer)
|
||||
|
|
|
|||
|
|
@ -433,8 +433,8 @@ namespace TIAMWebApp.Server.Controllers
|
|||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route("GetUserById")]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.GetUserByIdRouteName)]
|
||||
public async Task<UserModelDto?> GetUserById([FromBody] Guid id)
|
||||
{
|
||||
_logger.Info($"GetUserById called with id: {id}");
|
||||
|
|
@ -483,21 +483,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
message.Message.ContextId = user.Id;
|
||||
message.Message.SenderId = Guid.Empty;
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), user.Id, Guid.NewGuid(), email));
|
||||
//string FormatEmailContent()
|
||||
//{
|
||||
// return $@"
|
||||
// <html>
|
||||
// <body>
|
||||
// <p>Dear {user.Profile.FirstName},</p>
|
||||
// <p>Please follow the link below to renew your password:</p>
|
||||
// <p>
|
||||
// <p><a href=""{Setting.BaseUrl}/renewpassword/{user.Id}/{email}"">Confirm Transfer</a></p>
|
||||
// <p>If you did not request this, please disregard this email.</p>
|
||||
// <p>Thank you,<br/>Tour I Am team</p>
|
||||
// </body>
|
||||
// </html>";
|
||||
//}
|
||||
//message.Message.Text = FormatEmailContent();
|
||||
|
||||
message.Message.Text = EmailTemplateHelper.GenerateForgotPasswordEmail(user.FullName, Setting.BaseUrl, user.Id.ToString(), user.ConfirmToken);
|
||||
_logger.Info(message.Message.Text);
|
||||
var messageElement = message.Message;
|
||||
|
|
@ -525,7 +511,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
{
|
||||
User? user;
|
||||
_logger.Info($"ValidateForgottenPasswordToken called with id: {parameters[0]}");
|
||||
if(parameters != null && parameters[0] != null && parameters[1] != null)
|
||||
if (parameters != null && parameters[0] != null && parameters[1] != null)
|
||||
{
|
||||
user = await userDal.GetUserByIdAsync(Guid.Parse(parameters[0]), false);
|
||||
if (user == null)
|
||||
|
|
@ -537,6 +523,10 @@ namespace TIAMWebApp.Server.Controllers
|
|||
if (parameters[1] == user.ConfirmToken)
|
||||
{
|
||||
_logger.Debug($"Generated token for user: {user.ConfirmToken}");
|
||||
//if user is not email validated, set email valid
|
||||
if (!user.EmailConfirmed)
|
||||
await SetEmailConfirmedMethod(user);
|
||||
|
||||
return "Success";
|
||||
|
||||
}
|
||||
|
|
@ -545,14 +535,43 @@ namespace TIAMWebApp.Server.Controllers
|
|||
_logger.Debug($"Generated token for user: {user.ConfirmToken}");
|
||||
return "Invalid token";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Invalid request";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.SetEmailConfirmedRouteName)]
|
||||
public async Task<bool> SetEmailConfirmed([FromBody] Guid userId)
|
||||
{
|
||||
_logger.Info($"SetEmailConfirmed called with id: {userId}");
|
||||
if(User!= null)
|
||||
{
|
||||
var user = await userDal.GetUserByIdAsync(userId, false);
|
||||
return await SetEmailConfirmedMethod(user);
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
private async Task<bool> SetEmailConfirmedMethod(User user)
|
||||
{
|
||||
user.EmailConfirmed = true;
|
||||
var result = await adminDal.UpdateUserAsync(user);
|
||||
if (result != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -72,6 +72,9 @@ namespace TIAMWebApp.Shared.Application.Models
|
|||
public const string ValidateForgottenPasswordTokenRouteName = "ValidateForgottenPasswordToken";
|
||||
public const string ValidateForgottenPasswordToken = UserAPI + ValidateForgottenPasswordTokenRouteName;
|
||||
|
||||
public const string SetEmailConfirmedRouteName = "SetEmailConfirmed";
|
||||
public const string SetEmailConfirmed = UserAPI + SetEmailConfirmedRouteName;
|
||||
|
||||
//Weatherdata
|
||||
//public const string WeatherForecast = "api/WeatherForecastAPI";
|
||||
public const string WeatherForecast = WeatherForecastAPI;
|
||||
|
|
@ -135,6 +138,12 @@ namespace TIAMWebApp.Shared.Application.Models
|
|||
public const string UpdateTransferRouteName = "UpdateTransfer";
|
||||
public const string UpdateTransfer = TransferDataAPI + UpdateTransferRouteName;
|
||||
|
||||
public const string GuestUpdateTransferRouteName = "GuestUpdateTransfer";
|
||||
public const string GuestUpdateTransfer = TransferDataAPI + GuestUpdateTransferRouteName;
|
||||
|
||||
public const string DriverUpdateTransferRouteName = "DriverUpdateTransfer";
|
||||
public const string DriverUpdateTransfer = TransferDataAPI + DriverUpdateTransferRouteName;
|
||||
|
||||
public const string UpdateTransferDestinationRouteName = "UpdateTransferDestintion";
|
||||
public const string UpdateTransferDestination = TransferDataAPI + UpdateTransferDestinationRouteName;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue