コード例 #1
0
import json, re

from app.helpers import render, utils, session

from app.models import Users

val_username	= form.regexp(r'^\w[\w\d_]{2,19}$', 'must be betweem 3 and 20 characters. username should containt only latin alphabet, digits and underscores')
val_password	= form.regexp(r'^.{3,}$', 'must have more than 3 characters')
val_email		= form.regexp(r'^.+@.+$', 'must be a valid email address')

LoginForm = form.Form(
	form.Textbox('username', val_username, description='Username'),
	form.Password('password',val_password, description='Password'),	
	form.Button('submit', type='submit', html='Sign in'),
	validators = [
		form.Validator("Username or Password is incorrect", lambda i: Users.check(i.username, i.password)),
	]
)

class Signin:
	def __makepage(self, loginform = None):
		if loginform is None: loginform = LoginForm()
		return render.layout(view.signin(loginform), title="Sign in")

	def GET(self):
		return self.__makepage()

	def POST(self):
		loginform = LoginForm()
		if not loginform.validates():
			return self.__makepage(loginform)