Example #1
0
    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);
    }
Example #2
0
        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();
            });
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #6
0
        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
                        }
                    }
                }));
            }
        }
Example #7
0
 public IActionResult Activate(int id, [FromBody] ActivateUserDto request, [FromServices] IActivateUserCommand command)
 {
     request.Id = id;
     _executor.ExecuteCommand(command, request);
     return(NoContent());
 }