Example #1
0
def validate_user_registration_request_data(data):
    # Verify if request body has required fields
    if "name" not in data:
        return messages.NAME_FIELD_IS_MISSING
    if "username" not in data:
        return messages.USERNAME_FIELD_IS_MISSING
    if "password" not in data:
        return messages.PASSWORD_FIELD_IS_MISSING
    if "email" not in data:
        return messages.EMAIL_FIELD_IS_MISSING
    if "terms_and_conditions_checked" not in data:
        return messages.TERMS_AND_CONDITIONS_FIELD_IS_MISSING

    name = data["name"]
    username = data["username"]
    password = data["password"]
    email = data["email"]
    terms_and_conditions_checked = data["terms_and_conditions_checked"]

    if not (isinstance(name, str) and isinstance(username, str)
            and isinstance(password, str)):
        return messages.NAME_USERNAME_AND_PASSWORD_NOT_IN_STRING_FORMAT

    is_valid = validate_length(len(get_stripped_string(name)), NAME_MIN_LENGTH,
                               NAME_MAX_LENGTH, "name")
    if not is_valid[0]:
        return is_valid[1]

    is_valid = validate_length(
        len(get_stripped_string(username)),
        USERNAME_MIN_LENGTH,
        USERNAME_MAX_LENGTH,
        "username",
    )
    if not is_valid[0]:
        return is_valid[1]

    is_valid = validate_length(
        len(get_stripped_string(password)),
        PASSWORD_MIN_LENGTH,
        PASSWORD_MAX_LENGTH,
        "password",
    )
    if not is_valid[0]:
        return is_valid[1]

    # Verify business logic of request body
    if not terms_and_conditions_checked:
        return messages.TERMS_AND_CONDITIONS_ARE_NOT_CHECKED

    if not is_name_valid(name):
        return messages.NAME_INPUT_BY_USER_IS_INVALID

    if not is_email_valid(email):
        return messages.EMAIL_INPUT_BY_USER_IS_INVALID

    if not is_username_valid(username):
        return messages.USERNAME_INPUT_BY_USER_IS_INVALID

    return {}
Example #2
0
def validate_resend_email_request_data(data):
    # Verify if request body has required fields
    if "email" not in data:
        return messages.EMAIL_FIELD_IS_MISSING

    email = data["email"]
    if not is_email_valid(email):
        return messages.EMAIL_INPUT_BY_USER_IS_INVALID

    return {}
    def authenticate(username_or_email: str, password: str):
        """ User login process.

        The user can login with two options:
        -> username + password
        -> email + password

        Arguments:
            username_or_email: The username or email associated with the account being authenticated.
            password: The password associated with the account being authenticated.

        Returns:
            Returns authenticated user if username and password are valid, otherwise returns None.
        """

        if is_email_valid(username_or_email):
            user = UserModel.find_by_email(username_or_email)
        else:
            user = UserModel.find_by_username(username_or_email)

        if user and user.check_password(password):
            return user

        return None
Example #4
0
 def test_empty_email(self):
     email = ""
     is_valid = is_email_valid(email)
     self.assertFalse(is_valid)
Example #5
0
 def test_invalid_email_with_no_at(self):
     email = "invalidemail.com"
     is_valid = is_email_valid(email)
     self.assertFalse(is_valid)
Example #6
0
 def test_invalid_email_with_no_dot_after_at(self):
     email = "invalid@emailcom"
     is_valid = is_email_valid(email)
     self.assertFalse(is_valid)
Example #7
0
 def test_valid_email(self):
     email = "*****@*****.**"
     is_valid = is_email_valid(email)
     self.assertTrue(is_valid)