public async Task <ResponseDto <UserDto> > ActivateUser(ActivateUserDto userDto) { var userEntity = await userRepository.GetUserByEmail(userDto.Email); if (userEntity != null) { userEntity.ActivationId = null; userEntity.IsActive = true; } var updatedUserEntity = await userRepository.UpdateUser(userEntity); if (updatedUserEntity != null) { return(new ResponseDto <UserDto> { Results = new UserDto { Email = updatedUserEntity.Email, Id = updatedUserEntity.Id, FullName = updatedUserEntity.FullName, CreatedDate = updatedUserEntity.CreatedDate, LastLogin = updatedUserEntity.LastLogin, IsActive = updatedUserEntity.IsActive } }); } return(null); }
public async Task ActivateUser_Test() { CreateUserDto createUserDto = new CreateUserDto() { UserName = "******", Password = User.DefaultPassword, Name = "John", Surname = "Smith", PhoneNumber = "13851400000", IsActive = true }; var userDto = await _userAppService.CreateAsync(createUserDto); await UsingDbContextAsync(async context => { var user = await context.Users.FirstOrDefaultAsync(u => u.Id == userDto.Id); user.FullName.ShouldBe("John Smith"); user.IsActive.ShouldBeTrue(); }); ActivateUserDto activateUserDto = new ActivateUserDto() { UserId = userDto.Id, IsActive = false }; var result = await _userAppService.ActivateUser(activateUserDto); await UsingDbContextAsync(async context => { var user = await context.Users.FirstOrDefaultAsync(u => u.Id == userDto.Id); user.FullName.ShouldBe("John Smith"); user.IsActive.ShouldBeFalse(); }); }
public void Execute(ActivateUserDto request) { User user; int actorId; // user ativating his own deactivated acocunt it must confirm his password if (_actor.Id == 0) { if (_actor.Id != 0 && _actor.RoleType != RoleType.Administrator && _actor.RoleType != RoleType.Moderator) { throw new NotAllowedException(UseCase.getUseCase(this.Id), _actor, "You can only reactivate your own user profile."); } _validator.ValidateAndThrow(request); user = _context.Users.FirstOrDefault(u => !u.IsDeleted && u.Id == request.Id); CheckIfNull(user); if (user.Id != request.Id) { throw new NotAllowedException(UseCase.getUseCase(this.Id), _actor, "You can only reactivate your profile if you deactivated it yourself."); } if (user.Password != request.Password) { throw new WrongPasswordException(UseCase.getUseCase(this.Id), _actor); } actorId = user.Id; } else { user = _context.Users.Include(u => u.Role).FirstOrDefault(u => !u.IsDeleted && u.Id == request.Id); CheckIfNull(user); // can't delete own user or user with role less than own role (moderator cannot delete other moderator's only amdinistrator can) if (_actor.RoleType != RoleType.Administrator && user.Role.RoleType == _actor.RoleType) { throw new DependencyException(UseCase.getUseCase(this.Id), _actor, $"You have no priviledges to activate user with the same role as yours."); } actorId = user.Id; } if (user.IsActive) { throw new ActionNotRepeatableException(UseCase.getUseCase(this.Id), _actor); } user.IsActive = true; user.DeactivatedAt = null; _context.SaveChanges(actorId); }
public async Task <bool> ActivateUser(ActivateUserDto input) { var user = await Repository.GetAsync(input.UserId); if (user == null) { return(false); } user.IsActive = input.IsActive; CheckErrors(await _userManager.UpdateAsync(user)); return(true); }
public async Task <bool> ActivateUserInTenantAsync(int tenantId, ActivateUserDto input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { var user = await _userManager.GetUserByIdAsync(input.UserId); if (user == null) { return(false); } user.IsActive = input.IsActive; CheckErrors(await _userManager.UpdateAsync(user)); return(true); } }
public async Task <IActionResult> ActivateUser([FromBody] ActivateUserDto userDto) { try { var user = await userService.ActivateUser(userDto); return(Ok(user)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, new ResponseDto <UserDto> { Errors = new List <ErrorDto> { new ErrorDto { ErrorCode = 1, ErrorMessage = ex.Message } } })); } }
public IActionResult Activate(int id, [FromBody] ActivateUserDto request, [FromServices] IActivateUserCommand command) { request.Id = id; _executor.ExecuteCommand(command, request); return(NoContent()); }