33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """passbook multi-factor authentication engine"""
 | |
| from django.forms import ModelForm
 | |
| from django.http import HttpRequest
 | |
| from django.utils.translation import gettext as _
 | |
| from django.views.generic import TemplateView
 | |
| 
 | |
| from passbook.core.models import User
 | |
| from passbook.factors.view import AuthenticationView
 | |
| from passbook.lib.config import CONFIG
 | |
| 
 | |
| 
 | |
| class AuthenticationFactor(TemplateView):
 | |
|     """Abstract Authentication factor, inherits TemplateView but can be combined with FormView"""
 | |
| 
 | |
|     form: ModelForm = None
 | |
|     required: bool = True
 | |
|     authenticator: AuthenticationView
 | |
|     pending_user: User
 | |
|     request: HttpRequest = None
 | |
|     template_name = 'login/form_with_user.html'
 | |
| 
 | |
|     def __init__(self, authenticator: AuthenticationView):
 | |
|         self.authenticator = authenticator
 | |
|         self.pending_user = None
 | |
| 
 | |
|     def get_context_data(self, **kwargs):
 | |
|         kwargs['config'] = CONFIG.y('passbook')
 | |
|         kwargs['is_login'] = True
 | |
|         kwargs['title'] = _('Log in to your account')
 | |
|         kwargs['primary_action'] = _('Log in')
 | |
|         kwargs['user'] = self.pending_user
 | |
|         return super().get_context_data(**kwargs)
 | 
