Beispiel #1
0
        public async Task <IActionResult> ResetPasswordRequestAsync(PasswordResetInput model)
        {
            var account = await _userAccountService.GetByEmailAsync(model.Email, x => x.PasswordResetSecretCollection);

            if (account == null)
            {
                ModelState.AddModelError("", "Invalid email");
                return(BadRequest(ModelState.Errors()));
            }

            if (!account.PasswordResetSecretCollection.Any())
            {
                await _userAccountService.ResetPasswordAsync(model.Email);

                return(Ok());
            }

            var bytes = Encoding.UTF8.GetBytes(account.Guid.ToString());

            bytes = _protector.Protect(bytes);

            var vm = new PasswordResetWithSecretInputModel {
                ProtectedAccountID = Convert.ToBase64String(bytes),
                Questions          = account.PasswordResetSecretCollection.Select(
                    x => new PasswordResetSecretViewModel
                {
                    QuestionId = x.Guid,
                    Question   = x.Question
                }).ToArray()
            };

            return(Ok(vm));
        }
Beispiel #2
0
        public Task <ActionResult> PasswordResetStartAsync(string email)
        {
            PasswordResetInput input = new PasswordResetInput()
            {
                email = email
            };
            var request = new RestRequest(Method.POST);

            request.Resource = "auth/password_reset/start";
            request.AddJsonBody(input);
            return(this.Sdk.ExecuteAsync <ActionResult>(request));
        }
Beispiel #3
0
        public Task <ActionResult> PasswordResetCompleteAsync(string email, string token, string password)
        {
            PasswordResetInput input = new PasswordResetInput()
            {
                email    = email,
                password = password,
                token    = token
            };
            var request = new RestRequest(Method.POST);

            request.Resource = "auth/password_reset/complete";
            request.AddJsonBody(input);
            return(this.Sdk.ExecuteAsync <ActionResult>(request));
        }
        public object PasswordResetComplete(PasswordResetInput input)
        {
            return(base.ExecuteFunction <object>("PasswordResetComplete", delegate()
            {
                bool success = false;
                Account account = this.API.Direct.Accounts.GetByEmail(input.email);
                if (account != null)
                {
                    success = this.API.Direct.Accounts.PasswordResetComplete(account.account_id, input.token, input.password);
                }

                return base.Http200(new ActionResult()
                {
                    success = success
                });
            }));
        }
        public object PasswordResetStart(PasswordResetInput input)
        {
            return(base.ExecuteFunction <object>("PasswordResetStart", delegate()
            {
                string test = this.Request.Content.ReadAsAsync <string>().Result;
                Account account = this.API.Direct.Accounts.GetByEmail(input.email);
                if (account != null)
                {
                    this.API.Direct.Accounts.PasswordResetStart(account.account_id);
                }

                return base.Http200(new ActionResult()
                {
                    success = true
                });
            }));
        }