27 lines
		
	
	
		
			858 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			858 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""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
 |