def openid_add(context, request): user = request.user form = AddOpenIDForm(request, request.POST) remove_form = RemoveOpenIDForm(request) remove_form.openids.query = model.session.query(model.IdentityURL).with_parent(user) ret = dict( add_openid_form=form, remove_openid_form=remove_form, ) # Add an OpenID identity URL if not form.validate(): return ret try: return HTTPSeeOther(location=openid_begin( identifier=form.new_openid.data, return_url=request.route_url('controls.openid.add_finish'), request=request, sreg=False, )) except OpenIDError as exc: form.new_openid.errors.append(exc.args[0]) return ret
def openid_add(context, request): user = request.user form = AddOpenIDForm(request, request.POST) remove_form = RemoveOpenIDForm(request) remove_form.openids.query = model.session.query( model.IdentityURL).with_parent(user) ret = dict( add_openid_form=form, remove_openid_form=remove_form, ) # Add an OpenID identity URL if not form.validate(): return ret try: return HTTPSeeOther(location=openid_begin( identifier=form.new_openid.data, return_url=request.route_url('controls.openid.add_finish'), request=request, sreg=False, )) except OpenIDError as exc: form.new_openid.errors.append(exc.args[0]) return ret
def login_begin(context, request): """Step one of logging in with OpenID; redirect to the provider.""" form = LoginForm(request.POST) if not form.validate(): return {'form': form} # Ensure the return key, if present and valid, will be passed # to openid_finish() return_url = request.route_url('account.login_finish') if form.return_key.data in get_stash_keys(request): return_url = update_params(return_url, return_key=form.return_key.data) if request.user: # Logged-in user trying to update their OpenID expiry time sreg = False settings = request.registry.settings max_auth_age = settings.get('auth.openid.expiry_seconds', DEFAULT_CONFIDENCE_EXPIRY) else: # Someone either logging in or registering # Problem is that we don't want sreg (as part of opeinid_begin) unless # the user is registering, but we don't know whether the user is # registering or just logging in until we resolve their identity URL... # which we do in openid_begin. # Possibly use checkid_immediate instead sreg = True max_auth_age = False try: return HTTPSeeOther(location=openid_begin( identifier=form.openid_identifier.data, return_url=return_url, request=request, max_auth_age=max_auth_age, sreg=sreg)) except OpenIDError as exc: request.session.flash(exc.message, level='error', icon='key--exclamation') return {'form': form}