summaryrefslogtreecommitdiffstats
path: root/accounts/utils/login.py
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2016-01-25 00:15:12 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 04:22:16 +0100
commit7619809115e6fdc3d7df8705abb20f228863e7c2 (patch)
tree5afaeeb9020d418143b7cea3e1e2540efcc2140e /accounts/utils/login.py
parent753c03b3477071279299ca47ce76f5fcd346d5bd (diff)
downloadweb-7619809115e6fdc3d7df8705abb20f228863e7c2.tar.gz
web-7619809115e6fdc3d7df8705abb20f228863e7c2.tar.bz2
web-7619809115e6fdc3d7df8705abb20f228863e7c2.zip
Use Flask-Login for login handling
Diffstat (limited to 'accounts/utils/login.py')
-rw-r--r--accounts/utils/login.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/accounts/utils/login.py b/accounts/utils/login.py
new file mode 100644
index 0000000..9888e89
--- /dev/null
+++ b/accounts/utils/login.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from flask.ext.login import current_user
+from functools import wraps
+from werkzeug.exceptions import Forbidden
+from itsdangerous import base64_decode, base64_encode, compact_json
+
+
+def create_userid(username, password):
+ userid = (username, password)
+ return base64_encode(compact_json.dumps(userid))
+
+
+def parse_userid(value):
+ return compact_json.loads(base64_decode(value))
+
+
+def logout_required(f):
+ @wraps(f)
+ def logout_required_(*args, **kwargs):
+ if current_user.is_authenticated:
+ raise Forbidden(u'Diese Seite ist nur für nicht eingeloggte Benutzer gedacht!')
+ return f(*args, **kwargs)
+ return logout_required_
+