summaryrefslogtreecommitdiffstats
path: root/accounts/views
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2016-01-25 01:50:44 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 04:22:17 +0100
commitca5e2f13aa205f71f9cb95fc0f05b2df8b03fc5b (patch)
treea5bbdfce5a2d7bdccc4439e81f72833dc6523b1f /accounts/views
parent0f5553f09a8297738430e4cbc50e3bff48895ad6 (diff)
downloadweb-ca5e2f13aa205f71f9cb95fc0f05b2df8b03fc5b.tar.gz
web-ca5e2f13aa205f71f9cb95fc0f05b2df8b03fc5b.tar.bz2
web-ca5e2f13aa205f71f9cb95fc0f05b2df8b03fc5b.zip
Create new login blueprint
The login and logout view are now in the login blueprint.
Diffstat (limited to 'accounts/views')
-rw-r--r--accounts/views/default/__init__.py36
-rw-r--r--accounts/views/login/__init__.py38
-rw-r--r--accounts/views/login/forms.py8
3 files changed, 50 insertions, 32 deletions
diff --git a/accounts/views/default/__init__.py b/accounts/views/default/__init__.py
index 88105bd..edcac21 100644
--- a/accounts/views/default/__init__.py
+++ b/accounts/views/default/__init__.py
@@ -6,7 +6,7 @@ from flask import Blueprint
from flask import current_app, redirect, request, g, flash, url_for
from flask.ext.login import login_required, login_user, logout_user, current_user
-from accounts.forms import LoginForm, RegisterForm, RegisterCompleteForm, \
+from accounts.forms import RegisterForm, RegisterCompleteForm, \
LostPasswordForm, SettingsForm
from accounts.utils import *
from accounts.utils.confirmation import Confirmation
@@ -17,27 +17,6 @@ from accounts.models import Account
bp = Blueprint('default', __name__)
-@bp.route('/login', methods=['GET', 'POST'])
-@templated('login.html')
-def login():
- if current_user.is_authenticated:
- return redirect(url_for('.index'))
-
- form = LoginForm(request.form)
- if form.validate_on_submit():
- try:
- user = current_app.user_backend.auth(form.username.data,
- form.password.data)
- login_user(user)
- flash(u'Erfolgreich eingeloggt', 'success')
- return redirect(url_for('.index'))
- except (current_app.user_backend.NoSuchUserError,
- current_app.user_backend.InvalidPasswordError):
- flash(u'Ungültiger Benutzername und/oder Passwort', 'error')
-
- return {'form': form}
-
-
@bp.route('/register', methods=['GET', 'POST'])
@templated('register.html')
@logout_required
@@ -50,7 +29,7 @@ def register():
u'um diese zu überprüfen. Bitte folge den Anweisungen in der '
u'E-Mail.', 'success')
- return redirect(url_for('.login'))
+ return redirect(url_for('.index'))
return {'form': form}
@@ -69,7 +48,7 @@ def register_complete(token):
pass
else:
flash(u'Du hast den Benutzer bereits angelegt! Du kannst dich jetzt einfach einloggen:')
- return redirect(url_for('.login'))
+ return redirect(url_for('.index'))
form = RegisterCompleteForm(request.form)
if form.validate_on_submit():
@@ -120,7 +99,7 @@ def lost_password():
flash(u'Wir haben dir eine E-Mail mit einem Link zum Passwort ändern '
u'geschickt. Bitte folge den Anweisungen in der E-Mail.', 'success')
- return redirect(url_for('.login'))
+ return redirect(url_for('.index'))
return {'form': form}
@@ -229,13 +208,6 @@ def change_mail(token):
return redirect(url_for('.index'))
-@bp.route('/logout')
-def logout():
- logout_user()
- flash(u'Erfolgreich ausgeloggt.', 'success')
- return redirect(url_for('.login'))
-
-
@bp.route('/about')
@templated('about.html')
def about():
diff --git a/accounts/views/login/__init__.py b/accounts/views/login/__init__.py
new file mode 100644
index 0000000..4546b14
--- /dev/null
+++ b/accounts/views/login/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+
+from flask import Blueprint
+from flask import current_app, redirect, request, g, flash, render_template, url_for
+from flask.ext.login import login_user, logout_user, current_user
+
+from .forms import LoginForm
+
+
+bp = Blueprint('login', __name__)
+
+
+@bp.route('/login', methods=['GET', 'POST'])
+def login():
+ if current_user.is_authenticated:
+ return redirect(url_for('default.index'))
+
+ form = LoginForm(request.form)
+ if form.validate_on_submit():
+ try:
+ user = current_app.user_backend.auth(form.username.data,
+ form.password.data)
+ login_user(user)
+ flash(u'Erfolgreich eingeloggt', 'success')
+ return redirect(url_for('default.index'))
+ except (current_app.user_backend.NoSuchUserError,
+ current_app.user_backend.InvalidPasswordError):
+ flash(u'Ungültiger Benutzername und/oder Passwort', 'error')
+
+ return render_template("login/login.html", form=form)
+
+
+@bp.route('/logout')
+def logout():
+ logout_user()
+ flash(u'Erfolgreich ausgeloggt.', 'success')
+ return redirect(url_for('.login'))
diff --git a/accounts/views/login/forms.py b/accounts/views/login/forms.py
new file mode 100644
index 0000000..a82fa39
--- /dev/null
+++ b/accounts/views/login/forms.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+from flask.ext.wtf import Form
+from wtforms import TextField, PasswordField, validators
+
+
+class LoginForm(Form):
+ username = TextField(u'Benutzername')
+ password = PasswordField('Passwort', [validators.Required()])