Ejemplo n.º 1
0
        public async Task<JsonResult> ChangePassword(ChangePasswordAddressModel model)
        {
            var accessToken = await _dbContext
                .AccessToken
                .SingleOrDefaultAsync(t => t.Value == model.AccessToken);

            var targetUser = await _dbContext.Users.FindAsync(model.OpenId);
            var app = await _developerApiService.AppInfoAsync(accessToken.ApplyAppId);
            if (!_dbContext.LocalAppGrant.Exists(t => t.AppID == accessToken.ApplyAppId && t.APIUserId == targetUser.Id))
            {
                return Json(new AiurProtocal { Code = ErrorType.Unauthorized, Message = "This user did not grant your app!" });
            }
            if (!app.App.ChangePassword)
            {
                return this.Protocal(ErrorType.Unauthorized, "You app is not allowed to change users' password.");
            }
            var result = await _userManager.ChangePasswordAsync(targetUser, model.OldPassword, model.NewPassword);
            await _userManager.UpdateAsync(targetUser);
            if (result.Succeeded)
            {
                return Json(new AiurProtocal { Code = ErrorType.Success, Message = "Successfully changed this user's password!" });
            }
            else
            {
                return Json(new AiurProtocal { Code = ErrorType.WrongKey, Message = result.Errors.First().Description });
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ChangePassword(ChangePasswordAddressModel model)
        {
            var currentUser = await GetKahlaUser();

            await _userService.ChangePasswordAsync(currentUser.Id, await _appsContainer.AccessToken(), model.OldPassword, model.NewPassword);

            return(this.Protocol(ErrorType.Success, "Successfully changed your password!"));
        }
Ejemplo n.º 3
0
 public async Task<JsonResult> ChangePassword(ChangePasswordAddressModel model)
 {
     var user = await _grantChecker.EnsureGranted(model.AccessToken, model.OpenId, t => t.ChangePassword);
     var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);
     await _userManager.UpdateAsync(user);
     if (result.Succeeded)
     {
         return Json(new AiurProtocol { Code = ErrorType.Success, Message = "Successfully changed your password!" });
     }
     else
     {
         return Json(new AiurProtocol { Code = ErrorType.WrongKey, Message = result.Errors.First().Description });
     }
 }