ContactBridge

Log | Files | Refs | README

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'))