1234567891011121314151617181920212223242526272829303132 |
- from functools import wraps
- from flask import request, Response
- from core.ConfigurationManager import SettingLoader
- def check_auth(username, password):
- """This function is called to check if a username /
- password combination is valid.
- """
- settings = SettingLoader.get_settings()
- return username == settings.rest_api.login and password == settings.rest_api.password
- def authenticate():
- """Sends a 401 response that enables basic auth"""
- return Response(
- 'Could not verify your access level for that URL.\n'
- 'You have to login with proper credentials', 401,
- {'WWW-Authenticate': 'Basic realm="Login Required"'})
- def requires_auth(f):
- @wraps(f)
- def decorated(*args, **kwargs):
- settings = SettingLoader.get_settings()
- if settings.rest_api.password_protected:
- auth = request.authorization
- if not auth or not check_auth(auth.username, auth.password):
- return authenticate()
- return f(*args, **kwargs)
- return decorated
|