|
|
@ -1,4 +1,6 @@
|
|
|
|
from flask import Flask, request, render_template, jsonify, redirect, url_for, g
|
|
|
|
from flask import Flask, request, render_template, jsonify, redirect, url_for, g
|
|
|
|
|
|
|
|
from flask_session import Session
|
|
|
|
|
|
|
|
import redis
|
|
|
|
import sqlite3
|
|
|
|
import sqlite3
|
|
|
|
from flask_oidc import OpenIDConnect
|
|
|
|
from flask_oidc import OpenIDConnect
|
|
|
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
@ -11,15 +13,21 @@ from math import ceil, floor
|
|
|
|
app = Flask(__name__)
|
|
|
|
app = Flask(__name__)
|
|
|
|
app.config.update({
|
|
|
|
app.config.update({
|
|
|
|
'SECRET_KEY': os.environ['SECRET'],
|
|
|
|
'SECRET_KEY': os.environ['SECRET'],
|
|
|
|
'DEBUG': False,
|
|
|
|
'DEBUG': True,
|
|
|
|
'OIDC_CLIENT_SECRETS': json.loads(os.environ['CLIENT_SECRETS']),
|
|
|
|
'OIDC_CLIENT_SECRETS': json.loads(os.environ['CLIENT_SECRETS']),
|
|
|
|
'OIDC_ID_TOKEN_COOKIE_SECURE': False,
|
|
|
|
'OIDC_ID_TOKEN_COOKIE_SECURE': True,
|
|
|
|
'OIDC_USER_INFO_ENABLED': True,
|
|
|
|
'OIDC_USER_INFO_ENABLED': True,
|
|
|
|
'OIDC_OPENID_REALM': 'hottis',
|
|
|
|
'OIDC_OPENID_REALM': 'hottis',
|
|
|
|
'OIDC_SCOPES': ['openid', 'email', 'profile']
|
|
|
|
'OIDC_SCOPES': ['openid', 'email'],
|
|
|
|
|
|
|
|
'SESSION_TYPE': 'redis',
|
|
|
|
|
|
|
|
'SESSION_PERMANENT': False,
|
|
|
|
|
|
|
|
'SESSION_USE_SIGNER': True,
|
|
|
|
|
|
|
|
'SESSION_KEY_PREFIX': 'nutri',
|
|
|
|
|
|
|
|
'SESSION_REDIS': redis.StrictRedis(host='redis-master.redis.svc.cluster.local', port=6379, db=4)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
oidc = OpenIDConnect(app)
|
|
|
|
oidc = OpenIDConnect(app)
|
|
|
|
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
|
|
app.logger.handlers = logging.getLogger('gunicorn.error').handlers
|
|
|
|
app.logger.handlers = logging.getLogger('gunicorn.error').handlers
|
|
|
|
|
|
|
|
|
|
|
|
datapw = 'dasrtwegdffgtewrt4335wferg'
|
|
|
|
datapw = 'dasrtwegdffgtewrt4335wferg'
|
|
|
@ -73,14 +81,14 @@ def schulrunden(zahl, stellen=0, ist_kcal=False):
|
|
|
|
|
|
|
|
|
|
|
|
# Index-Route
|
|
|
|
# Index-Route
|
|
|
|
@app.route('/')
|
|
|
|
@app.route('/')
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def index():
|
|
|
|
def index():
|
|
|
|
return render_template('index.html')
|
|
|
|
return render_template('index.html')
|
|
|
|
|
|
|
|
|
|
|
|
# ...
|
|
|
|
# ...
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/get_products')
|
|
|
|
@app.route('/get_products')
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def get_products():
|
|
|
|
def get_products():
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
conn = psycopg2.connect()
|
|
|
|
conn = psycopg2.connect()
|
|
|
@ -95,7 +103,7 @@ def get_products():
|
|
|
|
|
|
|
|
|
|
|
|
# Route zum Hinzufügen und Berechnen von Lebensmitteln
|
|
|
|
# Route zum Hinzufügen und Berechnen von Lebensmitteln
|
|
|
|
@app.route('/add_lm', methods=['GET'])
|
|
|
|
@app.route('/add_lm', methods=['GET'])
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def add_lm():
|
|
|
|
def add_lm():
|
|
|
|
food = request.args.get('food')
|
|
|
|
food = request.args.get('food')
|
|
|
|
weight = float(request.args.get('weight'))
|
|
|
|
weight = float(request.args.get('weight'))
|
|
|
@ -125,7 +133,7 @@ def convert_decimal(value):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/add_nutrition', methods=['POST'])
|
|
|
|
@app.route('/add_nutrition', methods=['POST'])
|
|
|
|
@oidc.accept_token(['openid'])
|
|
|
|
# @oidc.accept_token(['openid'])
|
|
|
|
def add_nutrition():
|
|
|
|
def add_nutrition():
|
|
|
|
app.logger.info("add_nutrition")
|
|
|
|
app.logger.info("add_nutrition")
|
|
|
|
|
|
|
|
|
|
|
@ -155,18 +163,18 @@ def add_nutrition():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/nutrition')
|
|
|
|
@app.route('/nutrition')
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def nutrition():
|
|
|
|
def nutrition():
|
|
|
|
return render_template('nutrition.html')
|
|
|
|
return render_template('nutrition.html')
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/get_token')
|
|
|
|
@app.route('/get_token')
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def get_token():
|
|
|
|
def get_token():
|
|
|
|
return jsonify(token=oidc.get_access_token())
|
|
|
|
return jsonify(token=oidc.get_access_token())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/get_database_entries')
|
|
|
|
@app.route('/get_database_entries')
|
|
|
|
@oidc.require_login
|
|
|
|
# @oidc.require_login
|
|
|
|
def get_database_entries():
|
|
|
|
def get_database_entries():
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
# Ersetzen Sie diese Werte mit Ihren Datenbank-Verbindungsinformationen
|
|
|
|
# Ersetzen Sie diese Werte mit Ihren Datenbank-Verbindungsinformationen
|
|
|
@ -197,7 +205,7 @@ def get_database_entries():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/delete_nutrition', methods=['POST'])
|
|
|
|
@app.route('/delete_nutrition', methods=['POST'])
|
|
|
|
@oidc.accept_token(['openid'])
|
|
|
|
# @oidc.accept_token(['openid'])
|
|
|
|
def delete_nutrition():
|
|
|
|
def delete_nutrition():
|
|
|
|
data = request.get_json()
|
|
|
|
data = request.get_json()
|
|
|
|
foodNames = data['foodNames']
|
|
|
|
foodNames = data['foodNames']
|
|
|
@ -220,6 +228,7 @@ def delete_nutrition():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/random')
|
|
|
|
@app.route('/random')
|
|
|
|
|
|
|
|
@oidc.require_login
|
|
|
|
def random_page():
|
|
|
|
def random_page():
|
|
|
|
# Diese Route gibt die HTML-Seite 'random.html' zurück
|
|
|
|
# Diese Route gibt die HTML-Seite 'random.html' zurück
|
|
|
|
return render_template('random.html')
|
|
|
|
return render_template('random.html')
|
|
|
@ -227,4 +236,4 @@ def random_page():
|
|
|
|
|
|
|
|
|
|
|
|
exposed_app = ProxyFix(app, x_for=1, x_host=1)
|
|
|
|
exposed_app = ProxyFix(app, x_for=1, x_host=1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|