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