"""passbook captcha factor""" from django.views.generic import FormView from passbook.factors.base import AuthenticationFactor from passbook.factors.captcha.forms import CaptchaForm class CaptchaFactor(FormView, AuthenticationFactor): """Simple captcha checker, logic is handeled in django-captcha module""" form_class = CaptchaForm def form_valid(self, form): return self.authenticator.user_ok() def get_form(self, form_class=None): form = CaptchaForm(**self.get_form_kwargs()) form.fields["captcha"].public_key = self.authenticator.current_factor.public_key form.fields[ "captcha" ].private_key = self.authenticator.current_factor.private_key form.fields["captcha"].widget.attrs["data-sitekey"] = form.fields[ "captcha" ].public_key return form