authentik/passbook/factors/captcha/factor.py

27 lines
858 B
Python
Raw Normal View History

2018-12-14 12:51:12 +00:00
"""passbook captcha factor"""
from django.views.generic import FormView
2019-10-07 15:33:48 +01:00
from passbook.factors.base import AuthenticationFactor
from passbook.factors.captcha.forms import CaptchaForm
2018-12-14 12:51:12 +00:00
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())
2019-12-31 11:51:16 +00:00
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