diff --git a/seminar/views/registrace.py b/seminar/views/registrace.py new file mode 100644 index 00000000..26e9056e --- /dev/null +++ b/seminar/views/registrace.py @@ -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. + """