Пример #1
0
        /// <summary>
        /// Изменить пароль администратором
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> ChangePasswordByAdminAsync(ResetPasswordByAdminModel model)
        {
            var user = await UserManager.FindByIdAsync(model.Id);

            if (user == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден"));
            }

            var userDto = await UserSearcher.GetUserByIdAsync(user.Id);

            var result = UserRightsExtensions.HasRightToEditUser(userDto, User, RolesSetting);

            if (!result.IsSucceeded)
            {
                return(result);
            }

            return(await ChangePasswordBaseAsync(user, model.Password));
        }
Пример #2
0
        /// <summary>
        /// Данный метод не может быть вынесен в API (Базовый метод)
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userManager"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> ChangePasswordBaseAsync(ResetPasswordByAdminModel model, UserManager <ApplicationUser> userManager)
        {
            var user = await userManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден"));
            }

            var code = await userManager.GeneratePasswordResetTokenAsync(user);

            var resetResult = await userManager.ResetPasswordAsync(user, code, model.Password);

            if (!resetResult.Succeeded)
            {
                return(new BaseApiResponse(resetResult.Succeeded, resetResult.Errors.First().Description));
            }

            return(new BaseApiResponse(true, $"Вы изменили пароль для пользователя {user.Email}"));
        }