Esempio n. 1
0
        public IActionResult ResetPassword([FromBody] User user)
        {
            if (user == null)
            {
                return(BadRequest("Invalid user: object was null"));
            }

            if (!ModelState.IsValid)
            {
                _logger.LogError("Invalid user object sent from client");
                return(BadRequest("Invalid user object sent from client"));
            }

            var dbUser = _repository.User.GetUserByEmail(user.Email);

            if (dbUser == null)
            {
                _logger.LogError($"User with email {user.Email} was not found");
                return(BadRequest($"User with email {user.Email} was not found"));
            }

            var newPassword = AuthControllerExtensions.GenerateFirstPassword();

            dbUser.Password = newPassword;

            _repository.User.ChangePassword(dbUser);
            _repository.Save();

            _emailSender.SendEmailAsync(user.Email, "Your password for Studi App has been resetted.", $"<b>Your password: {newPassword}</b>");

            return(Accepted());
        }
Esempio n. 2
0
        public IActionResult Register([FromBody] User user)
        {
            if (User == null)
            {
                return(BadRequest("Object sent was null"));
            }

            if (!ModelState.IsValid)
            {
                _logger.LogError("Invalid user: object state is not valid");
                return(BadRequest("Invalid user: object state is not valid"));
            }

            if (!user.ValidateRegisterUser())
            {
                return(BadRequest("Invalid user: Some properties were empty!"));
            }

            if (user.Email != null)
            {
                if (!AuthControllerExtensions.IsValidEmail(user.Email))
                {
                    return(BadRequest("Email format is not valid!"));
                }

                if (_repository.User.CheckIfExisting(user.Email))
                {
                    return(BadRequest("User with this email is already existing!"));
                }
            }

            if (!_repository.University.CheckIfExisting(user.University_Id))
            {
                return(BadRequest("Choosen UniversityId was not found!"));
            }

            try
            {
                var userPwd = AuthControllerExtensions.GenerateFirstPassword();
                user.Password = userPwd;

                _repository.User.RegisterUser(user);
                _repository.Save();

                _emailSender.SendEmailAsync(user.Email, "Your password for Studi App", $"<b>Your password: {userPwd}</b>");

                return(Accepted());
            } catch (Exception e)

            { _logger.LogError($"Something went wrong inside Register action: {e.Message}");
              return(StatusCode(500, "Internal server error")); }
        }