public async Task <InvokeResult> CallSendInvite()
        {
            var sendPwdResetLink = new SendResetPasswordLink();

            sendPwdResetLink.Email = EmailAddress;
            return(await RestClient.PostAsync("/api/auth/resetpassword/sendlink", sendPwdResetLink));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public Task <InvokeResult> SendResetPasswordLinkAsync([FromBody] SendResetPasswordLink sendResetPasswordLink)
 {
     return(_passwordMangaer.SendResetPasswordLinkAsync(sendResetPasswordLink));
 }