Kostra formuláře na dodatečné vyrobení uživatele
This commit is contained in:
		
							parent
							
								
									97de205ac1
								
							
						
					
					
						commit
						a0edc1e0a1
					
				
					 1 changed files with 67 additions and 0 deletions
				
			
		
							
								
								
									
										67
									
								
								seminar/views/registrace.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								seminar/views/registrace.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | |||
| """ | ||||
| Registrace uživatelů k existujícím osobám | ||||
| 
 | ||||
| V tomto souboru bude asi všechno, co je relevantní (kromě template), protože to | ||||
| je dostatečně malá a jednorázová věc. | ||||
| 
 | ||||
| Proto všechno kromě view začíná podtržítkem, aby se to nenatáhlo jako součást | ||||
| seminar.views | ||||
| """ | ||||
| 
 | ||||
| #TODO: Logování (tohle logovat chce skoro určitě) | ||||
| 
 | ||||
| from django.forms import Form | ||||
| from django.views.generic.edit import FormView | ||||
| import hmac | ||||
| 
 | ||||
| from django.conf.settings import AUTH_USER_MODEL, SECRET_KEY | ||||
| from seminar.models import Osoba | ||||
| 
 | ||||
| class DodatecnaRegistraceUzivateleView(FormView): | ||||
| 	form = _RegistraceUzivateleForm | ||||
| 	template_name = ... | ||||
| 	success_url_pattern = ... | ||||
| 
 | ||||
| 	def form_valid(self, form): | ||||
| 		pass | ||||
| 
 | ||||
| class KontrolaUdajuASouhlasyView(FormView): | ||||
| 	... | ||||
| 
 | ||||
| class _RegistraceUzivateleForm(Form): | ||||
| 	#model = AUTH_USER_MODEL | ||||
| 	# Zkopírováno z přihlášky :-) | ||||
| 	username = forms.CharField(label='Přihlašovací jméno',  | ||||
| 			max_length=256,  | ||||
| 			required=True, | ||||
| 			help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři') | ||||
| 	password = forms.CharField( | ||||
| 			label='Heslo', | ||||
| 			max_length=256, | ||||
| 			required=True, | ||||
| 			widget=forms.PasswordInput()) | ||||
| 	password_check = forms.CharField( | ||||
| 			label='Ověření hesla', | ||||
| 			max_length=256, | ||||
| 			required=True, | ||||
| 			widget=forms.PasswordInput()) | ||||
| 
 | ||||
| 	# Dodatečné fieldy + token… | ||||
| 	token = ... | ||||
| 	verifikace_TODO = ... # TODO: Co verifikovat | ||||
| 
 | ||||
| 	# TODO: clean_username, verifikace … | ||||
| 
 | ||||
| 
 | ||||
| # Pozor, tokeny existují dva: jeden do URL do mailu, druhý do hidden položky ve formuláři. | ||||
| 
 | ||||
| def _gen_token(usecase: str, data: dict[str, object]): | ||||
| 	... | ||||
| 
 | ||||
| def _verify_token(usecase: str, data: dict[str, object]): | ||||
| 	... | ||||
| 
 | ||||
| def _invite(osoba: Osoba): | ||||
| 	""" | ||||
| 	Pošle dané osobě e-mail s odkazem na registraci. | ||||
| 	""" | ||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky