mirror of
https://github.com/Manuel83/craftbeerpi3
synced 2026-08-09 18:52:40 +02:00
57 lines
1.3 KiB
Python
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)
|