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
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
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
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
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
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
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
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
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
def _get_current_user(): uid = session._get_current_object() and session.data.get('auth_user_id') return User.load(uid)
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)
def get_current_user_id(): return session._get_current_object() and session.data.get('auth_user_id')
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)