def verify(request): form = BrowserIDForm(data=request.POST) if form.is_valid(): url = settings.BROWSERID_VERIFICATION_URL audience = get_audience(request) extra_params = {'forceIssuer': settings.BROWSERID_UNVERIFIED_ISSUER, 'allowUnverified': 'true'} assertion = form.cleaned_data['assertion'] log.info('verifying Persona assertion. url: %s, audience: %s, ' 'extra_params: %s, assertion: %s' % (url, audience, extra_params, assertion)) result = verify_assertion(assertion, audience, extra_params) if result: log.info('Persona assertion ok: %s' % result) email = result.get('unverified-email', result.get('email')) user_hash = set_user(request, email) return {'has_pin': has_pin(request), 'pin_create': reverse('pin.create'), 'user_hash': user_hash} log.error('Persona assertion failed.') request.session.flush() return http.HttpResponseBadRequest()
def test_has_pin_is_confirmed(self, change_pin): self.request.session["uuid_has_pin"] = True self.request.session["uuid_has_confirmed_pin"] = True assert utils.has_pin(self.request) assert not change_pin.called