routes.py (1770B)
1 import json 2 from pathlib import Path 3 from flask import request, redirect, url_for, render_template, session 4 from . import web_interface 5 6 7 @web_interface.route('/') 8 @web_interface.route('/home') 9 def home(): 10 if not session.get('logged_in'): 11 return redirect(url_for('web_interface.login')) 12 13 messages_context = { 14 "api_endpoint": "messages", 15 "id_prefix": "message-", 16 "headers": [("ID", "10%"), ("Relevance", "10%"), ("Name", "25%"), ("Content", "55%"), ("", "0")] 17 } 18 19 spam_context = { 20 "api_endpoint": "spam", 21 "id_prefix": "spam-", 22 "headers": [("ID", "10%"), ("Relevance", "10%"), ("Name", "25%"), ("Content", "55%"), ("", "0")] 23 } 24 25 return render_template('/page/home.html', page_title='Messages', messages_context=messages_context, spam_context=spam_context) 26 27 28 @web_interface.route('/integrations') 29 def integrations(): 30 return render_template('/page/integrations.html', page_title="Integrations") 31 32 33 @web_interface.route('/login', methods=['GET', 'POST']) 34 def login(): 35 if request.method == 'POST': 36 username = request.form['username'] 37 password = request.form['password'] 38 39 current_dir = Path(__file__).parent 40 settings_path = current_dir / '..' / 'settings.json' 41 with open(settings_path, 'r') as f: 42 settings = json.load(f) 43 44 if username == settings['username'] and password == settings['password']: 45 session['logged_in'] = True 46 return redirect(url_for('web_interface.home')) 47 else: 48 return "Invalid credentials", 401 49 50 return render_template('login.html') 51 52 53 @web_interface.route('/logout') 54 def logout(): 55 session.pop('logged_in', None) 56 return redirect(url_for('web_interface.login'))