Skip to content

Instantly share code, notes, and snippets.

@SevereOverfl0w
Created August 15, 2014 11:41
Show Gist options
  • Save SevereOverfl0w/b76a76de8e5b2f8b110f to your computer and use it in GitHub Desktop.
Save SevereOverfl0w/b76a76de8e5b2f8b110f to your computer and use it in GitHub Desktop.
class SigninSchema(colander.MappingSchema):
username = colander.SchemaNode(colander.String())
password = colander.SchemaNode(colander.String(), widget=widget.PasswordWidget())
def validator(self, node, data):
user = DBSession.query(User).filter_by(username = data['username']).first()
if user is None:
self.raise_invalid('Incorrect username', node['username'])
if not user.check_password(data['password']):
self.raise_invalid('Incorrect password', node['password'])
data['user_object'] = user
@view_config(route_name='signin', renderer='potterholics:templates/signin.mako')
def signin(request):
schema = SigninSchema()
form = Form(schema, buttons=('signin',))
if request.method == 'POST':
controls = request.POST.items()
try:
data = form.validate(controls)
except ValidationFailure, e:
pass
else:
user = data['user_object']
return {'form': form}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment