Browse Source

Kontrola PSČ

export_seznamu_prednasek
Pavel "LEdoian" Turinsky 4 years ago
parent
commit
0df3cb8509
  1. 18
      seminar/views/doregistrace.py

18
seminar/views/doregistrace.py

@ -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…
Cancel
Save