Files
craftbeerpi3/modules/login/__init__.py
T
2017-10-13 21:50:07 +02:00

57 lines
1.3 KiB
Python

import flask_login
from flask import request
from modules.core.core import cbpi, addon
class User(flask_login.UserMixin):
pass
@addon.core.initializer(order=0)
def log(cbpi):
cbpi._login_manager = flask_login.LoginManager()
cbpi._login_manager.init_app(cbpi._app)
@cbpi._app.route('/login', methods=['POST'])
def login():
data = request.json
password = cbpi.get_config_parameter("password", None)
if password is None:
return ('',500)
if password == data.get("password",""):
user = User()
user.id = "craftbeerpi"
flask_login.login_user(user)
return ('',204)
else:
return ('',401)
@cbpi._app.route('/logout', methods=['POST'])
def logout():
flask_login.logout_user()
return 'Logged out'
@cbpi._login_manager.user_loader
def user_loader(user):
if cbpi.get_config_parameter("password_security", "NO") == "YES":
if user != "craftbeerpi":
return
user = User()
user.id = user
return user
else:
user = User()
user.id = user
return user
@cbpi._login_manager.unauthorized_handler
def unauthorized_handler():
return ('Please login',401)