Commit | Line | Data |
---|---|---|
8e1e744d | 1 | # GNU MediaGoblin -- federated, autonomous media hosting |
cf29e8a8 | 2 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. |
24181820 CAW |
3 | # |
4 | # This program is free software: you can redistribute it and/or modify | |
5 | # it under the terms of the GNU Affero General Public License as published by | |
6 | # the Free Software Foundation, either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU Affero General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU Affero General Public License | |
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
17 | import wtforms | |
25ba955e | 18 | import re |
24181820 | 19 | |
ae3bc7fa | 20 | from mediagoblin.tools.translate import fake_ugettext_passthrough as _ |
4b1adc13 | 21 | |
24181820 CAW |
22 | |
23 | class RegistrationForm(wtforms.Form): | |
24 | username = wtforms.TextField( | |
4b1adc13 | 25 | _('Username'), |
24181820 CAW |
26 | [wtforms.validators.Required(), |
27 | wtforms.validators.Length(min=3, max=30), | |
6be33a77 | 28 | wtforms.validators.Regexp(r'^\w+$')]) |
f5def6fe | 29 | password = wtforms.PasswordField( |
4b1adc13 | 30 | _('Password'), |
24181820 | 31 | [wtforms.validators.Required(), |
0d6e5ddd | 32 | wtforms.validators.Length(min=6, max=30)]) |
24181820 | 33 | email = wtforms.TextField( |
4b1adc13 | 34 | _('Email address'), |
24181820 | 35 | [wtforms.validators.Required(), |
6be33a77 | 36 | wtforms.validators.Email()]) |
a3776717 CAW |
37 | |
38 | ||
39 | class LoginForm(wtforms.Form): | |
40 | username = wtforms.TextField( | |
4b1adc13 | 41 | _('Username'), |
a3776717 CAW |
42 | [wtforms.validators.Required(), |
43 | wtforms.validators.Regexp(r'^\w+$')]) | |
44 | password = wtforms.PasswordField( | |
4b1adc13 | 45 | _('Password'), |
a3776717 | 46 | [wtforms.validators.Required()]) |
25ba955e AV |
47 | |
48 | ||
49 | class ForgotPassForm(wtforms.Form): | |
50 | username = wtforms.TextField( | |
f646e2e1 | 51 | _('Username or email'), |
25ba955e AV |
52 | [wtforms.validators.Required()]) |
53 | ||
243c3843 NY |
54 | def validate_username(form, field): |
55 | if not (re.match(r'^\w+$', field.data) or | |
56 | re.match(r'^.+@[^.].*\.[a-z]{2,10}$', field.data, | |
57 | re.IGNORECASE)): | |
f646e2e1 | 58 | raise wtforms.ValidationError(_(u'Incorrect input')) |
25ba955e AV |
59 | |
60 | ||
61 | class ChangePassForm(wtforms.Form): | |
62 | password = wtforms.PasswordField( | |
63 | 'Password', | |
64 | [wtforms.validators.Required(), | |
4e9d467f | 65 | wtforms.validators.Length(min=6, max=30)]) |
25ba955e AV |
66 | userid = wtforms.HiddenField( |
67 | '', | |
68 | [wtforms.validators.Required()]) | |
69 | token = wtforms.HiddenField( | |
70 | '', | |
71 | [wtforms.validators.Required()]) |