예제 #1
0
def get_user_by_email(email):
    """Gets a User by `email`
    Returns None if not found
    """
    from htk.apps.accounts.models import UserEmail
    if is_valid_email(email):
        # check for confirmed email addresses
        user_emails = UserEmail.objects.filter(email__iexact=email, is_confirmed=True)
        num_results = user_emails.count()
        if num_results == 1:
            user = user_emails[0].user
        elif num_results > 1:
            # there should only be one User with this email...
            # if there are more, we have a data error!
            raise NonUniqueEmail(email)
        else:
            # num_results == 0, so check UserModel for active users with email
            UserModel = get_user_model()
            try:
                user = UserModel.objects.get(email__iexact=email, is_active=True)
            except UserModel.MultipleObjectsReturned:
                user = None
                request = get_current_request()
                rollbar.report_exc_info()
                raise NonUniqueEmail(email)
            except UserModel.DoesNotExist:
                # also check newly registered accounts
                # if not user.is_active, handling will get passed downstream
                user = get_incomplete_signup_user_by_email(email)
    else:
        user = None
    return user
예제 #2
0
def get_user_by_email(email):
    """Gets a User by `email`
    Returns None if not found
    """
    from htk.apps.accounts.models import UserEmail

    if is_valid_email(email):
        # check for confirmed email addresses
        user_emails = UserEmail.objects.filter(email__iexact=email, is_confirmed=True)
        num_results = user_emails.count()
        if num_results == 1:
            user = user_emails[0].user
        elif num_results > 1:
            # there should only be one User with this email...
            # if there are more, we have a data error!
            raise NonUniqueEmail(email)
        else:
            # num_results == 0, so check UserModel for active users with email
            UserModel = get_user_model()
            try:
                user = UserModel.objects.get(email__iexact=email, is_active=True)
            except UserModel.MultipleObjectsReturned:
                user = None
                request = get_current_request()
                rollbar.report_exc_info()
                raise NonUniqueEmail(email)
            except UserModel.DoesNotExist:
                # also check newly registered accounts
                # if not user.is_active, handling will get passed downstream
                user = get_incomplete_signup_user_by_email(email)
    else:
        user = None
    return user
예제 #3
0
def authenticate_user_by_username_email(username_email, password):
    if is_valid_email(username_email):
        email = username_email
        auth_user = authenticate_user_by_email(email, password)
    else:
        username = username_email
        auth_user = authenticate_user(username, password)
    return auth_user
예제 #4
0
def authenticate_user_by_username_email(request, username_email, password):
    if is_valid_email(username_email):
        email = username_email
        auth_user = authenticate_user_by_email(request, email, password)
    else:
        username = username_email
        auth_user = authenticate_user(request, username, password)
    return auth_user
예제 #5
0
def extract_user_email(username_email):
    """Gets the user for `username_email`
    `username_email` is a string that could be either a username OR an email
    """
    email = None
    if is_valid_email(username_email):
        email = username_email
        user = get_user_by_email(email)
    else:
        username = username_email
        user = get_user_by_username(username)

    return (user, email)
예제 #6
0
def extract_user_email(username_email):
    """Gets the user for `username_email`
    `username_email` is a string that could be either a username OR an email
    """
    email = None
    if is_valid_email(username_email):
        email = username_email
        user = get_user_by_email(email)
    else:
        username = username_email
        user = get_user_by_username(username)

    return (user, email,)
예제 #7
0
def get_user_by_email(email):
    """Gets a User by `email`
    Returns None if not found
    """
    from htk.apps.accounts.models import UserEmail
    if is_valid_email(email):
        # check for confirmed email addresses
        user_emails = UserEmail.objects.filter(email__iexact=email, is_confirmed=True)
        num_results = user_emails.count()
        if num_results == 1:
            user = user_emails[0].user
        elif num_results > 1:
            # there should only be one User with this email...
            # if there are more, we have a data error!
            raise NonUniqueEmail(email)
        else:
            # num_results == 0
            # also check newly registered accounts
            # if not user.is_active, handling will get passed downstream
            user = get_incomplete_signup_user_by_email(email)
    else:
        user = None
    return user