/// <summary> /// Активировать или деактивировать пользователя /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <BaseApiResponse> ActivateOrDeActivateUserAsync(UserActivation model) { var userDto = await UserSearcher.GetUserByIdAsync(model.Id); if (userDto == null) { return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору")); } var result = UserRightsExtensions.HasRightToEditUser(userDto, User, RolesSetting); if (!result.IsSucceeded) { return(result); } var userRepo = GetRepository <Client>(); var user = await userRepo.Query().FirstOrDefaultAsync(x => x.Id == model.Id); if (user == null) { return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору")); } if (model.DeActivated) { if (user.DeActivated) { return(new BaseApiResponse(false, "Пользователь уже является деактивированным")); } user.DeActivated = true; userRepo.UpdateHandled(user); return(await TrySaveChangesAndReturnResultAsync("Пользователь деактивирован")); } if (!user.DeActivated) { return(new BaseApiResponse(false, "Пользователь уже активирован")); } user.DeActivated = false; userRepo.UpdateHandled(user); return(await TrySaveChangesAndReturnResultAsync("Пользователь активирован")); }
/// <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)); }