Kontrola PSČ
This commit is contained in:
		
							parent
							
								
									b42d18f0a4
								
							
						
					
					
						commit
						0df3cb8509
					
				
					 1 changed files with 16 additions and 2 deletions
				
			
		|  | @ -97,8 +97,20 @@ class DodatecnaRegistraceUzivateleView(TemplateResponseMixin, View): | |||
| 				) | ||||
| 		osoba_id = int(token_data['osoba']) | ||||
| 		osoba = m.Osoba.objects.get(id=osoba_id) | ||||
| 		 | ||||
| 		# Zkontrolovat verifikační field | ||||
| 		... | ||||
| 		kanonicke_psc = lambda x : ''.join(filter(str.isdigit, x)) | ||||
| 		psc = kanonicke_psc(form_data['PSC_verifikace']) | ||||
| 		realne_psc = kanonicke_psc(osoba.psc) | ||||
| 		# Much crypto, very secure :-) | ||||
| 		if not hmac.compare_digest(psc, realne_psc): | ||||
| 			return render_to_response( | ||||
| 				context={ | ||||
| 					'error': 'Nesedí verifikační pole', | ||||
| 					}, | ||||
| 				status_code=400, | ||||
| 				) | ||||
| 
 | ||||
| 		# Vyrobit uživatele | ||||
| 		u = User.objects.create_user( | ||||
| 				username=form_data['username'], | ||||
|  | @ -134,7 +146,9 @@ class RegistraceUzivateleForm(Form): | |||
| 
 | ||||
| 	# Dodatečné fieldy + token… | ||||
| 	token = forms.CharField(widget=forms.HiddenInput(), required=True) | ||||
| 	verifikace_TODO = ... # TODO: Co verifikovat | ||||
| 	# TODO: Tohle asi blízký útočník (e.g. zapomenuté přihlášení na školním počítači) umí odhalit. | ||||
| 	PSC_verifikace = forms.CharField(max_length=8, required=True, label="PSČ tvého bydliště", | ||||
| 			help_text="Chceme si jen ověřit, že se někdo cizí nezmocnil tvého odkazu") | ||||
| 
 | ||||
| 	# TODO: clean_username, verifikace … | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky