Web M&M
https://mam.matfyz.cz
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
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.
|
|
"""
|
|
|