Merge branch 'main' into hmm-what-about-socket

This commit is contained in:
Donald Cheng Hong Zou
2022-02-28 13:31:06 -05:00
11 changed files with 92 additions and 33 deletions

View File

@@ -4,7 +4,6 @@ Under Apache-2.0 License
"""
import sqlite3
from flask import g
import configparser
import hashlib
import ipaddress
@@ -22,7 +21,7 @@ from datetime import datetime, timedelta
from operator import itemgetter
# PIP installed library
import ifcfg
from flask import Flask, request, render_template, redirect, url_for, session, jsonify
from flask import Flask, request, render_template, redirect, url_for, session, jsonify, g
from flask_qrcode import QRcode
from icmplib import ping, traceroute
# TESTING
@@ -33,22 +32,27 @@ from util import regex_match, check_DNS, check_Allowed_IPs, check_remote_endpoin
check_IP_with_range, clean_IP_with_range
# Dashboard Version
DASHBOARD_VERSION = 'v3.0'
DASHBOARD_VERSION = 'v3.0.5'
# WireGuard's configuration path
WG_CONF_PATH = None
# Dashboard Config Name
configuration_path = os.getenv('CONFIGURATION_PATH', '.')
DB_PATH = os.path.join(configuration_path, 'db')
if not os.path.isdir(DB_PATH):
os.mkdir(DB_PATH)
DASHBOARD_CONF = os.path.join(configuration_path, 'wg-dashboard.ini')
# Upgrade Required
UPDATE = None
# Flask App Configuration
app = Flask("WGDashboard")
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 5206928
app.secret_key = secrets.token_urlsafe(16)
app.config['TEMPLATES_AUTO_RELOAD'] = True
# Enable QR Code Generator
QRcode(app)
socketio = SocketIO(app)
@@ -101,7 +105,6 @@ def get_conf_peer_key(config_name):
return config_name + " is not running."
# Get numbers of connected peer of a configuration
def get_conf_running_peer_number(config_name):
"""
Get number of running peers on wireguard interface.
@@ -130,7 +133,6 @@ def get_conf_running_peer_number(config_name):
return running
# Read [Interface] section from configuration file
def read_conf_file_interface(config_name):
"""
Get interface settings.
@@ -163,7 +165,6 @@ def read_conf_file(config_name):
@rtype: dict
"""
# Read Configuration File Start
conf_location = WG_CONF_PATH + "/" + config_name + ".conf"
f = open(conf_location, 'r')
file = f.read().split("\n")
@@ -296,6 +297,7 @@ def get_endpoint(config_name):
count += 2
def get_allowed_ip(conf_peer_data, config_name):
"""
Get allowed ips from all peers of a configuration
@@ -628,7 +630,6 @@ def close_DB(exception):
g.db.close()
# Before request
@app.before_request
def auth_req():
"""
@@ -680,7 +681,7 @@ def signin():
if "message" in session:
message = session['message']
session.pop("message")
return render_template('signin.html', message=message)
return render_template('signin.html', message=message, version=DASHBOARD_VERSION)
# Sign Out
@@ -1712,11 +1713,11 @@ def get_host_bind():
config.read('wg-dashboard.ini')
app_ip = config.get("Server", "app_ip")
app_port = config.get("Server", "app_port")
return app_ip, app_port
if __name__ == "__main__":
init_dashboard()
UPDATE = check_update()
config = configparser.ConfigParser(strict=False)
config.read('wg-dashboard.ini')