def apex_callback(request): """ apex_callback(request): no return value, called with route_url('apex_callback', request) This is the URL that Velruse returns an OpenID request to """ redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) headers = [] if 'token' in request.POST: auth = apexid_from_token(request.POST['token']) if auth: user = AuthUser.get_by_login(auth['id']) if not user: auth_info = auth['profile']['accounts'][0] id = AuthID() DBSession.add(id) user = AuthUser( login=auth_info['userid'], provider=auth_info['domain'], ) if auth['profile'].has_key('verifiedEmail'): user.email = auth['profile']['verifiedEmail'] id.users.append(user) if apex_settings('default_user_group'): for name in apex_settings('default_user_group'). \ split(','): group = DBSession.query(AuthGroup). \ filter(AuthGroup.name==name.strip()).one() id.groups.append(group) if apex_settings('create_openid_after'): openid_after = get_module( apex_settings('create_openid_after')) openid_after().after_signup(user) DBSession.flush() if apex_settings('openid_required'): openid_required = False for required in apex_settings('openid_required').split(','): if not getattr(user, required): openid_required = True if openid_required: request.session['id'] = id.id request.session['userid'] = user.id return HTTPFound(location='%s?came_from=%s' % \ (route_url('apex_openid_required', request), \ request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)))) headers = apex_remember(request, user) redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) flash(_('Successfully Logged in, welcome!'), 'success') return HTTPFound(location=redir, headers=headers)
def apex_callback(request): """ apex_callback(request): no return value, called with route_url('apex_callback', request) This is the URL that Velruse returns an OpenID request to """ redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) headers = [] if 'token' in request.POST: auth = apexid_from_token(request.POST['token']) if auth: user = AuthUser.get_by_login(auth['id']) if not user: auth_info = auth['profile']['accounts'][0] id = AuthID() DBSession.add(id) user = AuthUser( login=auth_info['userid'], provider=auth_info['domain'], ) if auth['profile'].has_key('verifiedEmail'): user.email = auth['profile']['verifiedEmail'] id.users.append(user) if apex_settings('default_user_group'): for name in apex_settings('default_user_group'). \ split(','): group = DBSession.query(AuthGroup). \ filter(AuthGroup.name==name.strip()).one() id.groups.append(group) if apex_settings('create_openid_after'): openid_after = get_module(apex_settings('create_openid_after')) openid_after().after_signup(user) DBSession.flush() if apex_settings('openid_required'): openid_required = False for required in apex_settings('openid_required').split(','): if not getattr(user, required): openid_required = True if openid_required: request.session['id'] = id.id request.session['userid'] = user.id return HTTPFound(location='%s?came_from=%s' % \ (route_url('apex_openid_required', request), \ request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)))) headers = apex_remember(request, user) redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) flash(_('Successfully Logged in, welcome!'), 'success') return HTTPFound(location=redir, headers=headers)
def apex_callback(request): """ apex_callback(request): no return value, called with route_url('apex_callback', request) This is the URL that Velruse returns an OpenID request to """ redir = request.GET.get('came_from', route_url(apex_settings('came_from_route'), request)) headers = [] login_failed = True reason = _('Login failed!') if 'token' in request.POST: token = request.POST['token'] auth = apexid_from_token(token) if auth: login_failed = False user, email = None, '' if 'emails' in auth['profile']: emails = auth['profile']['emails'] if isinstance(emails[0], dict): email = auth['profile']['emails'][0]['value'] else: email = auth['profile']['emails'][0] else: email = auth['profile'].get('verifiedEmail', '').strip() # first try by email if email: user = AuthUser.get_by_email(email) # then by id if user is None: user = search_user(auth['apexid']) if not user: user_infos = {'login': auth['apexid'], 'username': auth['name']} if email: user_infos['email'] = email user = create_user(**user_infos) if apex_settings('create_openid_after'): openid_after = get_module(apex_settings('create_openid_after')) request = openid_after().after_signup(request, user) if apex_settings('openid_required'): openid_required = False for required in apex_settings('openid_required').split(','): if not getattr(user, required): openid_required = True if openid_required: request.session['id'] = user.id return HTTPFound(location='%s?came_from=%s' % \ (route_url('apex_openid_required', request), \ request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)))) using_ldap = 'ldap' in [a.get('domain', '') for a in auth.get( "profile", {}).get("accounts", [])] external_user = True internal_user = using_ldap headers = apex_remember(request, user.id, internal_user=internal_user, external_user=external_user) redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) flash(_('Successfully Logged in, welcome!'), 'success') else: auth = get_velruse_token(token) reasont = '' if auth.get('code', None): reasont += 'Code %s : ' % auth['code'] if auth.get('description', ''): reasont += _(auth['description']) if reasont: reason = reasont login_failed = True if login_failed: flash(reason) return HTTPFound(location=redir, headers=headers)
def apex_callback(request): """ apex_callback(request): no return value, called with route_url('apex_callback', request) This is the URL that Velruse returns an OpenID request to """ redir = request.GET.get( 'came_from', route_url(apex_settings('came_from_route'), request)) headers = [] login_failed = True reason = _('Login failed!') if 'token' in request.POST: token = request.POST['token'] auth = apexid_from_token(token) if auth: login_failed = False user, email = None, '' if 'emails' in auth['profile']: emails = auth['profile']['emails'] if isinstance(emails[0], dict): email = auth['profile']['emails'][0]['value'] else: email = auth['profile']['emails'][0] else: email = auth['profile'].get('verifiedEmail', '').strip() # first try by email if email: user = AuthUser.get_by_email(email) # then by id if user is None: user = search_user(auth['apexid']) if not user: user_infos = { 'login': auth['apexid'], 'username': auth['name'] } if email: user_infos['email'] = email user = create_user(**user_infos) if apex_settings('create_openid_after'): openid_after = get_module( apex_settings('create_openid_after')) request = openid_after().after_signup(request, user) if apex_settings('openid_required'): openid_required = False for required in apex_settings('openid_required').split(','): if not getattr(user, required): openid_required = True if openid_required: request.session['id'] = user.id return HTTPFound(location='%s?came_from=%s' % \ (route_url('apex_openid_required', request), \ request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)))) using_ldap = 'ldap' in [ a.get('domain', '') for a in auth.get("profile", {}).get("accounts", []) ] external_user = True internal_user = using_ldap headers = apex_remember(request, user.id, internal_user=internal_user, external_user=external_user) redir = request.GET.get('came_from', \ route_url(apex_settings('came_from_route'), request)) flash(_('Successfully Logged in, welcome!'), 'success') else: auth = get_velruse_token(token) reasont = '' if auth.get('code', None): reasont += 'Code %s : ' % auth['code'] if auth.get('description', ''): reasont += _(auth['description']) if reasont: reason = reasont login_failed = True if login_failed: flash(reason) return HTTPFound(location=redir, headers=headers)