You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

67 lines
1.7 KiB

"""
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.
"""