diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2016-01-25 00:15:12 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2016-02-02 04:22:16 +0100 |
commit | 7619809115e6fdc3d7df8705abb20f228863e7c2 (patch) | |
tree | 5afaeeb9020d418143b7cea3e1e2540efcc2140e /accounts/utils/login.py | |
parent | 753c03b3477071279299ca47ce76f5fcd346d5bd (diff) | |
download | web-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.py | 24 |
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_ + |