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.
56 lines
1.4 KiB
56 lines
1.4 KiB
import colander |
|
import deform |
|
|
|
from . import CSRFSchema |
|
|
|
from .helpers import ( |
|
deferred_unique_email_validator, |
|
deferred_unique_username_validator, |
|
) |
|
|
|
|
|
# schema for user registration |
|
|
|
class RegistrationSchema(CSRFSchema): |
|
''' new user registration ''' |
|
|
|
username = colander.SchemaNode( |
|
colander.String(), |
|
widget=deform.widget.TextInputWidget( |
|
readonly=True |
|
), |
|
description='automagically generated for you', |
|
validator=deferred_unique_username_validator, |
|
oid='registration_username' |
|
) |
|
|
|
first_name = colander.SchemaNode( |
|
colander.String(), |
|
oid='registration_first_name' |
|
) |
|
|
|
last_name = colander.SchemaNode( |
|
colander.String(), |
|
oid='registration_last_name' |
|
) |
|
|
|
email = colander.SchemaNode( |
|
colander.String(), |
|
validator=deferred_unique_email_validator |
|
) |
|
|
|
password = colander.SchemaNode( |
|
colander.String(), |
|
widget=deform.widget.CheckedPasswordWidget(), |
|
validator=colander.Length(min=8) |
|
) |
|
|
|
|
|
class ResetPasswordSchema(CSRFSchema): |
|
''' reset a forgotten password registration ''' |
|
|
|
password = colander.SchemaNode( |
|
colander.String(), |
|
widget=deform.widget.CheckedPasswordWidget(), |
|
validator=colander.Length(min=8) |
|
)
|
|
|