Browse Source

Kostra formuláře na dodatečné vyrobení uživatele

export_seznamu_prednasek
Pavel "LEdoian" Turinsky 3 years ago
parent
commit
a0edc1e0a1
  1. 67
      seminar/views/registrace.py

67
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.
"""
Loading…
Cancel
Save