Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

57 řádky
1.3KB

  1. import flask_login
  2. from flask import request
  3. from modules.core.core import cbpi, addon
  4. class User(flask_login.UserMixin):
  5. pass
  6. @addon.core.initializer(order=0)
  7. def log(cbpi):
  8. cbpi._login_manager = flask_login.LoginManager()
  9. cbpi._login_manager.init_app(cbpi._app)
  10. @cbpi._app.route('/login', methods=['POST'])
  11. def login():
  12. data = request.json
  13. password = cbpi.get_config_parameter("password", None)
  14. if password is None:
  15. return ('',500)
  16. if password == data.get("password",""):
  17. user = User()
  18. user.id = "craftbeerpi"
  19. flask_login.login_user(user)
  20. return ('',204)
  21. else:
  22. return ('',401)
  23. @cbpi._app.route('/logout', methods=['POST'])
  24. def logout():
  25. flask_login.logout_user()
  26. return 'Logged out'
  27. @cbpi._login_manager.user_loader
  28. def user_loader(user):
  29. if cbpi.get_config_parameter("password_security", "NO") == "YES":
  30. if user != "craftbeerpi":
  31. return
  32. user = User()
  33. user.id = user
  34. return user
  35. else:
  36. user = User()
  37. user.id = user
  38. return user
  39. @cbpi._login_manager.unauthorized_handler
  40. def unauthorized_handler():
  41. return ('Please login',401)