diff options
Diffstat (limited to 'app/forms.py')
-rw-r--r-- | app/forms.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/app/forms.py b/app/forms.py index 8fbd4fb..182f6de 100644 --- a/app/forms.py +++ b/app/forms.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- from flask.ext.wtf import Form -from wtforms.fields import DateField, IntegerField, StringField, HiddenField +from wtforms.fields import DateField, IntegerField, StringField, HiddenField, PasswordField from wtforms import validators as v from wtforms import fields @@ -10,6 +10,7 @@ from wtforms.ext.sqlalchemy.fields import QuerySelectField import datetime from . import app +from .model import User today = datetime.date.today @@ -64,3 +65,23 @@ class ConstForm(Form): prev = QuerySelectField(u"Vorgänger", get_label="description", allow_blank=True) + +class LoginForm(Form): + username = StringField(u"Username", req) + pwd = PasswordField(u"Passwort", req) + + def __init__(self, *args, **kwargs): + Form.__init__(self,*args, **kwargs) + self.user = None + + def validate(self): + rv = Form.validate(self) + if not rv: + return False + + user = User.get_by(name = self.username.data) + if user is None or not user.check_password(self.pwd.data): + return False + + self.user = user + return True |