Example #1
0
def external_first_login_authenticate(user, response):
    """
    Create a special unauthenticated session for user login through external identity provider for the first time.

    :param user: the user with external credential
    :param response: the response to return
    :return: the response
    """

    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_external_id_provider': user['external_id_provider'],
        'auth_user_external_id': user['external_id'],
        'auth_user_fullname': user['fullname'],
        'auth_user_access_token': user['access_token'],
        'auth_user_external_first_login': True,
        'service_url': user['service_url'],
    })
    user_identity = '{}#{}'.format(user['external_id_provider'],
                                   user['external_id'])
    print_cas_log(
        f'Finalizing first-time login from external IdP - data updated: user=[{user_identity}]',
        LogLevel.INFO,
    )
    response = create_session(response, data=data)
    print_cas_log(
        f'Finalizing first-time login from external IdP - anonymous session created: user=[{user_identity}]',
        LogLevel.INFO,
    )
    return response
Example #2
0
def authenticate_two_factor(user):
    """Begins authentication for two factor auth users

    :param user: User to be authenticated
    :return: Response object directed to two-factor view
    """
    data = session.data if session._get_current_object() else {}
    data.update({
        'two_factor_auth': {
            'auth_user_username': user.username,
            'auth_user_id': user._primary_key,
            'auth_user_fullname': user.fullname,
        }
    })

    # Redirect to collect two factor code from user
    next_url = data.get('next_url', False)

    # NOTE: Avoid circular import /hrybacki
    from website.util import web_url_for
    if next_url:
        response = redirect(web_url_for('two_factor', next=next_url))
    else:
        response = redirect(web_url_for('two_factor'))
    response = create_session(response, data)
    return response
Example #3
0
def authenticate(user, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
    })
    response = create_session(response, data=data)
    return response
Example #4
0
def authenticate(user, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
    })
    response = create_session(response, data=data)
    return response
Example #5
0
def authenticate(user, access_token, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
        'auth_user_access_token': access_token,
    })
    user.date_last_login = datetime.utcnow()
    user.save()
    response = create_session(response, data=data)
    return response
Example #6
0
def authenticate(user, access_token, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
        'auth_user_access_token': access_token,
    })
    user.date_last_login = datetime.utcnow()
    user.save()
    response = create_session(response, data=data)
    return response
Example #7
0
def authenticate(user, access_token, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
        'auth_user_access_token': access_token,
    })
    user.date_last_login = datetime.utcnow()
    user.clean_email_verifications()
    user.update_affiliated_institutions_by_email_domain()
    user.save()
    response = create_session(response, data=data)
    return response
Example #8
0
def authenticate(user, access_token, response):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
        'auth_user_access_token': access_token,
    })
    user.update_date_last_login()
    user.clean_email_verifications()
    user.update_affiliated_institutions_by_email_domain()
    user.save()
    response = create_session(response, data=data)
    return response
Example #9
0
def external_first_login_authenticate(user, response):
    """
    Create a special unauthenticated session for user login through external identity provider for the first time.

    :param user: the user with external credential
    :param response: the response to return
    :return: the response
    """

    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_external_id_provider': user['external_id_provider'],
        'auth_user_external_id': user['external_id'],
        'auth_user_fullname': user['fullname'],
        'auth_user_access_token': user['access_token'],
        'auth_user_external_first_login': True,
    })
    response = create_session(response, data=data)
    return response
Example #10
0
def external_first_login_authenticate(user, response):
    """
    Create a special unauthenticated session for user login through external identity provider for the first time.

    :param user: the user with external credential
    :param response: the response to return
    :return: the response
    """

    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_external_id_provider': user['external_id_provider'],
        'auth_user_external_id': user['external_id'],
        'auth_user_fullname': user['fullname'],
        'auth_user_access_token': user['access_token'],
        'auth_user_external_first_login': True,
    })
    response = create_session(response, data=data)
    return response
Example #11
0
def authenticate_two_factor(user):
    """Begins authentication for two factor auth users

    :param user: User to be authenticated
    :return: Response object directed to two-factor view
    """
    data = session.data if session._get_current_object() else {}
    data.update({'two_factor_auth': {
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
    }})

    # Redirect to collect two factor code from user
    next_url = data.get('next_url', False)

    # NOTE: Avoid circular import /hrybacki
    from website.util import web_url_for
    if next_url:
        response = redirect(web_url_for('two_factor', next=next_url))
    else:
        response = redirect(web_url_for('two_factor'))
    response = create_session(response, data)
    return response
Example #12
0
def authenticate(user, access_token, response, user_updates=None):
    data = session.data if session._get_current_object() else {}
    data.update({
        'auth_user_username': user.username,
        'auth_user_id': user._primary_key,
        'auth_user_fullname': user.fullname,
        'auth_user_access_token': access_token,
    })
    print_cas_log(
        f'Finalizing authentication - data updated: user=[{user._id}]',
        LogLevel.INFO)
    enqueue_task(
        update_user_from_activity.s(user._id,
                                    timezone.now().timestamp(),
                                    cas_login=True,
                                    updates=user_updates))
    print_cas_log(
        f'Finalizing authentication - user update queued: user=[{user._id}]',
        LogLevel.INFO)
    response = create_session(response, data=data)
    print_cas_log(
        f'Finalizing authentication - session created: user=[{user._id}]',
        LogLevel.INFO)
    return response
Example #13
0
def _get_current_user():
    uid = session._get_current_object() and session.data.get('auth_user_id')
    return User.load(uid)
Example #14
0
def _get_current_user():
    # avoid cirdep
    from osf.models import OSFUser
    uid = session._get_current_object() and session.data.get('auth_user_id')
    return OSFUser.load(uid)
Example #15
0
def get_current_user_id():
    return session._get_current_object() and session.data.get('auth_user_id')
Example #16
0
def _get_current_user():
    uid = session._get_current_object() and session.data.get('auth_user_id')
    return User.load(uid)
Example #17
0
def get_current_user_id():
    return session._get_current_object() and session.data.get('auth_user_id')
Example #18
0
def _get_current_user():
    # avoid cirdep
    from osf_models.models import OSFUser
    uid = session._get_current_object() and session.data.get('auth_user_id')
    return OSFUser.objects.get(guid__guid=uid)