Created
August 15, 2014 11:41
-
-
Save SevereOverfl0w/b76a76de8e5b2f8b110f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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