Kostra formuláře na dodatečné vyrobení uživatele
This commit is contained in:
parent
97de205ac1
commit
a0edc1e0a1
1 changed files with 67 additions and 0 deletions
67
seminar/views/registrace.py
Normal file
67
seminar/views/registrace.py
Normal file
|
@ -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.
|
||||||
|
"""
|
Loading…
Reference in a new issue