diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ResetPasswordDto.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ResetPasswordDto.cs index 2423e6c778..695fcfca91 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ResetPasswordDto.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ResetPasswordDto.cs @@ -8,6 +8,8 @@ namespace Volo.Abp.Account { public Guid UserId { get; set; } + public Guid? TenantId { get; set; } + [Required] public string ResetToken { get; set; } diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AccountAppService.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AccountAppService.cs index 05ff98b35b..22c7e20b54 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AccountAppService.cs +++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AccountAppService.cs @@ -62,16 +62,19 @@ namespace Volo.Abp.Account public virtual async Task ResetPasswordAsync(ResetPasswordDto input) { - await IdentityOptions.SetAsync(); + using (CurrentTenant.Change(input.TenantId)) + { + await IdentityOptions.SetAsync(); - var user = await UserManager.GetByIdAsync(input.UserId); - (await UserManager.ResetPasswordAsync(user, input.ResetToken, input.Password)).CheckErrors(); + var user = await UserManager.GetByIdAsync(input.UserId); + (await UserManager.ResetPasswordAsync(user, input.ResetToken, input.Password)).CheckErrors(); - await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext - { - Identity = IdentitySecurityLogIdentityConsts.Identity, - Action = IdentitySecurityLogActionConsts.ChangePassword - }); + await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext + { + Identity = IdentitySecurityLogIdentityConsts.Identity, + Action = IdentitySecurityLogActionConsts.ChangePassword + }); + } } protected virtual async Task GetUserByEmail(string email) diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs index c961fe7e14..6aed769f76 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs @@ -58,8 +58,6 @@ namespace Volo.Abp.Account.Web.Pages.Account public virtual Task OnGetAsync() { - //TODO: It would be good to try to switch tenant if needed - CheckCurrentTenant(TenantId); return Task.FromResult(Page()); } @@ -74,7 +72,8 @@ namespace Volo.Abp.Account.Web.Pages.Account { UserId = UserId, ResetToken = ResetToken, - Password = Password + Password = Password, + TenantId = TenantId } ); } @@ -101,7 +100,8 @@ namespace Volo.Abp.Account.Web.Pages.Account { if (!Equals(Password, ConfirmPassword)) { - ModelState.AddModelError("ConfirmPassword", L["'{0}' and '{1}' do not match.", "ConfirmPassword", "Password"]); + ModelState.AddModelError("ConfirmPassword", + L["'{0}' and '{1}' do not match.", "ConfirmPassword", "Password"]); } base.ValidateModel();