.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import time
|
||||||
|
|
||||||
from config import ClientInterface
|
from config import ClientInterface
|
||||||
|
|
||||||
@@ -27,9 +28,12 @@ ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def run_subprocess(cmd, check=True):
|
def run_subprocess(cmd, check=True, delay=0):
|
||||||
cmd_split = cmd.split(" ")
|
cmd_split = cmd.split(" ")
|
||||||
return subprocess.run(cmd_split, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=check).stdout.decode("utf-8")
|
output = subprocess.run(cmd_split, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=check).stdout.decode("utf-8")
|
||||||
|
if delay > 0:
|
||||||
|
time.sleep(delay)
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
def run_subprocess_interface(cmd, check=True):
|
def run_subprocess_interface(cmd, check=True):
|
||||||
@@ -173,3 +177,21 @@ def vpn_disconnect():
|
|||||||
if run_subprocess("nordvpn d").find("You are disconnected from NordVPN") != -1:
|
if run_subprocess("nordvpn d").find("You are disconnected from NordVPN") != -1:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def killswitch_status():
|
||||||
|
if run_subprocess("nordvpn settings").find("Kill Switch: disabled") != -1:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def killswich_enable():
|
||||||
|
if run_subprocess("nordvpn set killswitch on", delay=2).find("Kill Switch is set to 'enabled' successfully") != -1:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def killswich_disaable():
|
||||||
|
if run_subprocess("nordvpn set killswitch off", delay=2).find("Kill Switch is set to 'disabled' successfully") != -1:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|||||||
@@ -4,14 +4,24 @@ from flask_login import current_user, login_required, login_user, logout_user
|
|||||||
from app import app
|
from app import app
|
||||||
from app.forms import LoginForm, WPAForm
|
from app.forms import LoginForm, WPAForm
|
||||||
from app.models import ConfigTable, Passwords, User
|
from app.models import ConfigTable, Passwords, User
|
||||||
from app.network_utils import connect_network, disconnect_network, scan_networks, vpn_connect, vpn_connected, vpn_disconnect
|
from app.network_utils import (
|
||||||
|
connect_network,
|
||||||
|
disconnect_network,
|
||||||
|
killswich_disaable,
|
||||||
|
killswich_enable,
|
||||||
|
killswitch_status,
|
||||||
|
scan_networks,
|
||||||
|
vpn_connect,
|
||||||
|
vpn_connected,
|
||||||
|
vpn_disconnect,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
@app.route("/index")
|
@app.route("/index")
|
||||||
@login_required
|
@login_required
|
||||||
def index():
|
def index():
|
||||||
return render_template("index.html", networks=scan_networks(), vpn=vpn_connected())
|
return render_template("index.html", networks=scan_networks(), vpn=vpn_connected(), killswitch=killswitch_status())
|
||||||
|
|
||||||
|
|
||||||
@app.route("/login", methods=["GET", "POST"])
|
@app.route("/login", methods=["GET", "POST"])
|
||||||
@@ -87,3 +97,21 @@ def vpndisconnect():
|
|||||||
return render_template("message.html", message="Sucessfully disconnected from VPN")
|
return render_template("message.html", message="Sucessfully disconnected from VPN")
|
||||||
|
|
||||||
return render_template("message.html", message="Failed to disconnect from VPN")
|
return render_template("message.html", message="Failed to disconnect from VPN")
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/ksenable/", methods=["GET", "POST"])
|
||||||
|
@login_required
|
||||||
|
def ksenable():
|
||||||
|
if killswich_enable():
|
||||||
|
return render_template("message.html", message="Sucessfully Enabled KillSwitch")
|
||||||
|
|
||||||
|
return render_template("message.html", message="Failed to Enable KillSwitch")
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/ksdisable/", methods=["GET", "POST"])
|
||||||
|
@login_required
|
||||||
|
def ksdisable():
|
||||||
|
if killswich_disaable():
|
||||||
|
return render_template("message.html", message="Sucessfully Disabled KillSwitch")
|
||||||
|
|
||||||
|
return render_template("message.html", message="Failed to Disable KillSwitch")
|
||||||
|
|||||||
@@ -45,12 +45,17 @@
|
|||||||
Travel Router:
|
Travel Router:
|
||||||
<a href="{{ url_for('index') }}">Home</a>
|
<a href="{{ url_for('index') }}">Home</a>
|
||||||
{% if not current_user.is_anonymous %}
|
{% if not current_user.is_anonymous %}
|
||||||
<a href="{{ url_for('logout') }}">Logout</a>
|
<a href="{{ url_for('logout') }}">Logout</a>
|
||||||
{% endif %}
|
{% if vpn %}
|
||||||
{% if vpn %}
|
<a href="{{ url_for('vpndisconnect') }}">Disconnect from VPN</a>
|
||||||
<a href="{{ url_for('vpndisconnect') }}">Disconnect from VPN</a>
|
{% else %}
|
||||||
{% else %}
|
<a href="{{ url_for('vpnconnect') }}">Connect to VPN</a>
|
||||||
<a href="{{ url_for('vpnconnect') }}">Connect to VPN</a>
|
{% endif %}
|
||||||
|
{% if killswitch %}
|
||||||
|
<a href="{{ url_for('ksdisable') }}">Disable KillSwitch</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{{ url_for('ksenable') }}">Enable KillSwitch</a>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
Reference in New Issue
Block a user