public async Task <InvokeResult> CallSendInvite() { var sendPwdResetLink = new SendResetPasswordLink(); sendPwdResetLink.Email = EmailAddress; return(await RestClient.PostAsync("/api/auth/resetpassword/sendlink", sendPwdResetLink)); }
public async Task <InvokeResult> SendResetPasswordLinkAsync(SendResetPasswordLink sendResetPasswordLink) { var validationResult = _authRequestValidators.ValidateSendPasswordLinkRequest(sendResetPasswordLink); if (!validationResult.Successful) { return(validationResult); } var appUser = await _userManager.FindByEmailAsync(sendResetPasswordLink.Email); if (appUser == null) { _adminLogger.AddError("PasswordManager_SendResetPasswordLinkAsync", "CouldNotFindUser", new System.Collections.Generic.KeyValuePair <string, string>("email", sendResetPasswordLink.Email)); return(InvokeResult.FromErrors(new ErrorMessage(UserAdminResources.Err_ResetPwd_CouldNotFindUser))); } var token = await _userManager.GeneratePasswordResetTokenAsync(appUser); var encodedToken = System.Net.WebUtility.UrlEncode(token); var callbackUrl = $"{_appConfig.WebAddress}{ACTION_RESET_PASSWORD}?code={encodedToken}"; var mobileCallbackUrl = $"nuviot://resetpassword?code={token}"; #if DIAG _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Message, "PasswordManager_SendResetPasswordLinkAsync", "SentToken", token.ToKVP("token"), appUser.Id.ToKVP("appUserId"), encodedToken.ToKVP("encodedToken"), appUser.Email.ToKVP("toEmailAddress")); #endif var subject = UserAdminResources.Email_ResetPassword_Subject.Replace("[APP_NAME]", _appConfig.AppName); var body = UserAdminResources.Email_ResetPassword_Body.Replace("[CALLBACK_URL]", callbackUrl).Replace("[MOBILE_CALLBACK_URL]", mobileCallbackUrl); var result = await _emailSender.SendAsync(sendResetPasswordLink.Email, subject, body); if (result.Successful) { _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Message, "PasswordManager_SendResetPasswordLinkAsync", "SentLink", appUser.Id.ToKVP("appUserId"), appUser.Email.ToKVP("toEmailAddress")); var org = appUser.CurrentOrganization == null?EntityHeader.Create(Guid.Empty.ToId(), "????") : appUser.CurrentOrganization; await LogEntityActionAsync(appUser.Id, typeof(AppUser).Name, "SentResetPasswordLink", org, appUser.ToEntityHeader()); } else { _adminLogger.AddError("PasswordManager_SendResetPasswordLinkAsync", "Could Not Send Password Link", result.ErrorsToKVPArray()); } return(result); }
public InvokeResult ValidateSendPasswordLinkRequest(SendResetPasswordLink sendRestPasswordLink) { if (String.IsNullOrEmpty(sendRestPasswordLink.Email)) { _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Error, "AuthRequestValidators_ValidateSendPasswordLinkRequest", UserAdminErrorCodes.RegMissingEmail.Message); return(InvokeResult.FromErrors(UserAdminErrorCodes.RegMissingEmail.ToErrorMessage())); } var emailRegEx = new Regex(EMAIL_REGEX_FORMAT); if (!emailRegEx.Match(sendRestPasswordLink.Email).Success) { _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Error, "AuthRequestValidators_ValidateSendPasswordLinkRequest", UserAdminErrorCodes.RegInvalidEmailAddress.Message); return(InvokeResult.FromErrors(UserAdminErrorCodes.RegInvalidEmailAddress.ToErrorMessage())); } return(InvokeResult.Success); }
public Task <InvokeResult> SendResetPasswordLinkAsync([FromBody] SendResetPasswordLink sendResetPasswordLink) { return(_passwordMangaer.SendResetPasswordLinkAsync(sendResetPasswordLink)); }