No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

58 líneas
1.4KB

  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. print cbpi.get_config_parameter("password_security", "NO")
  30. print user
  31. if cbpi.get_config_parameter("password_security", "NO") == "YES":
  32. if user != "craftbeerpi":
  33. return
  34. user = User()
  35. user.id = user
  36. return user
  37. else:
  38. user = User()
  39. user.id = user
  40. return user
  41. @cbpi._login_manager.unauthorized_handler
  42. def unauthorized_handler():
  43. return ('Please login',401)