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_id = int(token_data['osoba'])
|
||||||
osoba = m.Osoba.objects.get(id=osoba_id)
|
osoba = m.Osoba.objects.get(id=osoba_id)
|
||||||
|
|
||||||
# Zkontrolovat verifikační field
|
# 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
|
# Vyrobit uživatele
|
||||||
u = User.objects.create_user(
|
u = User.objects.create_user(
|
||||||
username=form_data['username'],
|
username=form_data['username'],
|
||||||
|
@ -134,7 +146,9 @@ class RegistraceUzivateleForm(Form):
|
||||||
|
|
||||||
# Dodatečné fieldy + token…
|
# Dodatečné fieldy + token…
|
||||||
token = forms.CharField(widget=forms.HiddenInput(), required=True)
|
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 …
|
# TODO: clean_username, verifikace …
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue