mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-25 00:50:29 +00:00
no posts + everything behind auth
This commit is contained in:
parent
910616ef43
commit
1f1fa3711a
3 changed files with 17 additions and 140 deletions
102
api/main.py
102
api/main.py
|
@ -14,18 +14,9 @@ import modules.firewall as firewall
|
|||
import modules.networking as networking
|
||||
import modules.openvpn as openvpn
|
||||
import modules.wireguard as wireguard
|
||||
import modules.restart as restart
|
||||
|
||||
|
||||
tags_metadata = [
|
||||
{
|
||||
"name": "system",
|
||||
"description": "All information regarding the underlying system."
|
||||
},
|
||||
{
|
||||
"name": "accesspoint/hostpost",
|
||||
"description": "Get and change all information regarding the hotspot"
|
||||
}
|
||||
]
|
||||
app = FastAPI(
|
||||
title="API for Raspap",
|
||||
|
@ -37,7 +28,7 @@ app = FastAPI(
|
|||
}
|
||||
)
|
||||
|
||||
@app.get("/system", tags=["system"])
|
||||
@app.get("/system", tags=["system"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_system():
|
||||
return{
|
||||
'hostname': system.hostname(),
|
||||
|
@ -54,7 +45,7 @@ async def get_system():
|
|||
'rpiRevision': system.rpiRevision()
|
||||
}
|
||||
|
||||
@app.get("/ap", tags=["accesspoint/hostpost"])
|
||||
@app.get("/ap", tags=["accesspoint/hostpost"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_ap():
|
||||
return{
|
||||
'driver': ap.driver(),
|
||||
|
@ -75,66 +66,14 @@ async def get_ap():
|
|||
'ignore_broadcast_ssid': ap.ignore_broadcast_ssid()
|
||||
}
|
||||
|
||||
@app.post("/ap", tags=["accesspoint/hostpost"])
|
||||
async def post_ap(driver=None,
|
||||
ctrl_interface=None,
|
||||
ctrl_interface_group=None,
|
||||
auth_algs=None,
|
||||
wpa_key_mgmt=None,
|
||||
beacon_int=None,
|
||||
ssid=None,
|
||||
channel=None,
|
||||
hw_mode=None,
|
||||
ieee80211n=None,
|
||||
wpa_passphrase=None,
|
||||
interface=None,
|
||||
wpa=None,
|
||||
wpa_pairwise=None,
|
||||
country_code=None,
|
||||
ignore_broadcast_ssid=None,
|
||||
api_key: APIKey = Depends(auth.get_api_key)):
|
||||
if driver != None:
|
||||
ap.set_driver(driver)
|
||||
if ctrl_interface != None:
|
||||
ap.set_ctrl_interface(ctrl_interface)
|
||||
if ctrl_interface_group !=None:
|
||||
ap.set_ctrl_interface_group(ctrl_interface_group)
|
||||
if auth_algs != None:
|
||||
ap.set_auth_algs(auth_algs)
|
||||
if wpa_key_mgmt != None:
|
||||
ap.set_wpa_key_mgmt(wpa_key_mgmt)
|
||||
if beacon_int != None:
|
||||
ap.set_beacon_int(beacon_int)
|
||||
if ssid != None:
|
||||
ap.set_ssid(ssid)
|
||||
if channel != None:
|
||||
ap.set_channel(channel)
|
||||
if hw_mode != None:
|
||||
ap.set_hw_mode(hw_mode)
|
||||
if ieee80211n != None:
|
||||
ap.set_ieee80211n(ieee80211n)
|
||||
if wpa_passphrase != None:
|
||||
ap.set_wpa_passphrase(wpa_passphrase)
|
||||
if interface != None:
|
||||
ap.set_interface(interface)
|
||||
if wpa != None:
|
||||
ap.set_wpa(wpa)
|
||||
if wpa_pairwise != None:
|
||||
ap.set_wpa_pairwise(wpa_pairwise)
|
||||
if country_code != None:
|
||||
ap.set_country_code(country_code)
|
||||
if ignore_broadcast_ssid != None:
|
||||
ap.set_ignore_broadcast_ssid(ignore_broadcast_ssid)
|
||||
|
||||
|
||||
@app.get("/clients/{wireless_interface}", tags=["Clients"])
|
||||
@app.get("/clients/{wireless_interface}", tags=["Clients"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_clients(wireless_interface):
|
||||
return{
|
||||
'active_clients_amount': client.get_active_clients_amount(wireless_interface),
|
||||
'active_clients': json.loads(client.get_active_clients(wireless_interface))
|
||||
}
|
||||
|
||||
@app.get("/dhcp", tags=["DHCP"])
|
||||
@app.get("/dhcp", tags=["DHCP"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_dhcp():
|
||||
return{
|
||||
'range_start': dhcp.range_start(),
|
||||
|
@ -145,29 +84,30 @@ async def get_dhcp():
|
|||
'range_nameservers': dhcp.range_nameservers()
|
||||
}
|
||||
|
||||
@app.get("/dns/domains", tags=["DNS"])
|
||||
@app.get("/dns/domains", tags=["DNS"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_domains():
|
||||
return{
|
||||
'domains': json.loads(dns.adblockdomains())
|
||||
}
|
||||
@app.get("/dns/hostnames", tags=["DNS"])
|
||||
|
||||
@app.get("/dns/hostnames", tags=["DNS"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_hostnames():
|
||||
return{
|
||||
'hostnames': json.loads(dns.adblockhostnames())
|
||||
}
|
||||
|
||||
@app.get("/dns/upstream", tags=["DNS"])
|
||||
@app.get("/dns/upstream", tags=["DNS"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_upstream():
|
||||
return{
|
||||
'upstream_nameserver': dns.upstream_nameserver()
|
||||
}
|
||||
|
||||
@app.get("/dns/logs", tags=["DNS"])
|
||||
@app.get("/dns/logs", tags=["DNS"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_dnsmasq_logs():
|
||||
return(dns.dnsmasq_logs())
|
||||
|
||||
|
||||
@app.get("/ddns", tags=["DDNS"])
|
||||
@app.get("/ddns", tags=["DDNS"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_ddns():
|
||||
return{
|
||||
'use': ddns.use(),
|
||||
|
@ -179,18 +119,18 @@ async def get_ddns():
|
|||
'domain': ddns.domain()
|
||||
}
|
||||
|
||||
@app.get("/firewall", tags=["Firewall"])
|
||||
@app.get("/firewall", tags=["Firewall"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_firewall():
|
||||
return json.loads(firewall.firewall_rules())
|
||||
|
||||
@app.get("/networking", tags=["Networking"])
|
||||
@app.get("/networking", tags=["Networking"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_networking():
|
||||
return{
|
||||
'interfaces': json.loads(networking.interfaces()),
|
||||
'throughput': json.loads(networking.throughput())
|
||||
}
|
||||
|
||||
@app.get("/openvpn", tags=["OpenVPN"])
|
||||
@app.get("/openvpn", tags=["OpenVPN"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_openvpn():
|
||||
return{
|
||||
'client_configs': openvpn.client_configs(),
|
||||
|
@ -200,13 +140,13 @@ async def get_openvpn():
|
|||
'client_login_active': openvpn.client_login_active()
|
||||
}
|
||||
|
||||
@app.get("/openvpn/{config}", tags=["OpenVPN"])
|
||||
@app.get("/openvpn/{config}", tags=["OpenVPN"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def client_config_list(config):
|
||||
return{
|
||||
'client_config': openvpn.client_config_list(config)
|
||||
}
|
||||
|
||||
@app.get("/wireguard", tags=["WireGuard"])
|
||||
@app.get("/wireguard", tags=["WireGuard"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def get_wireguard():
|
||||
return{
|
||||
'client_configs': wireguard.configs(),
|
||||
|
@ -214,16 +154,8 @@ async def get_wireguard():
|
|||
'client_config_active': wireguard.client_config_active()
|
||||
}
|
||||
|
||||
@app.get("/wireguard/{config}", tags=["WireGuard"])
|
||||
@app.get("/wireguard/{config}", tags=["WireGuard"], api_key: APIKey = Depends(auth.get_api_key)
|
||||
async def client_config_list(config):
|
||||
return{
|
||||
'client_config': wireguard.client_config_list(config)
|
||||
}
|
||||
|
||||
@app.post("/restart/webgui")
|
||||
async def restart_webgui():
|
||||
restart.webgui()
|
||||
|
||||
@app.post("/restart/adblock")
|
||||
async def restart_adblock():
|
||||
restart.adblock()
|
||||
}
|
|
@ -4,99 +4,51 @@ import json
|
|||
def driver():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep driver= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_driver(driver):
|
||||
return subprocess.run(f"sudo sed -i 's/^driver=.*/driver={driver}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def ctrl_interface():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ctrl_interface= | cut -d'=' -f2 | head -1", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_ctrl_interface(ctrl_interface):
|
||||
return subprocess.run(f"sudo sed -i 's/^ctrl_interface=.*/ctrl_interface={ctrl_interface}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def ctrl_interface_group():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ctrl_interface_group= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_ctrl_interface_group(ctrl_interface_group):
|
||||
return subprocess.run(f"sudo sed -i 's/^ctrl_interface_group=.*/ctrl_interface_group={ctrl_interface_group}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def auth_algs():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep auth_algs= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_auth_algs(auth_algs):
|
||||
return subprocess.run(f"sudo sed -i 's/^auth_algs=.*/auth_algs={auth_algs}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def wpa_key_mgmt():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep wpa_key_mgmt= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_wpa_key_mgmt(wpa_key_mgmt):
|
||||
return subprocess.run(f"sudo sed -i 's/^wpa_key_mgmt=.*/wpa_key_mgmt={wpa_key_mgmt}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def beacon_int():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep beacon_int= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_beacon_int(beacon_int):
|
||||
return subprocess.run(f"sudo sed -i 's/^beacon_int=.*/beacon_int={beacon_int}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def ssid():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ssid= | cut -d'=' -f2 | head -1", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_ssid(ssid):
|
||||
return subprocess.run(f"sudo sed -i 's/^ssid=.*/ssid={ssid}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def channel():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep channel= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_channel(channel):
|
||||
return subprocess.run(f"sudo sed -i 's/^channel=.*/channel={channel}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def hw_mode():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep hw_mode= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_hw_mode(hw_mode):
|
||||
return subprocess.run(f"sudo sed -i 's/^hw_mode=.*/hw_mode={hw_mode}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def ieee80211n():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ieee80211n= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_ieee80211n(ieee80211n):
|
||||
return subprocess.run(f"sudo sed -i 's/^ieee80211n=.*/ieee80211n={ieee80211n}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def wpa_passphrase():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep wpa_passphrase= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_wpa_passphrase(wpa_passphrase):
|
||||
return subprocess.run(f"sudo sed -i 's/^wpa_passphrase=.*/wpa_passphrase={wpa_passphrase}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def interface():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep interface= | cut -d'=' -f2 | head -1", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_interface(interface):
|
||||
return subprocess.run(f"sudo sed -i 's/^interface=.*/interface={interface}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def wpa():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep wpa= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_wpa(wpa):
|
||||
return subprocess.run(f"sudo sed -i 's/^wpa=.*/wpa={wpa}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def wpa_pairwise():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep wpa_pairwise= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_wpa_pairwise(wpa_pairwise):
|
||||
return subprocess.run(f"sudo sed -i 's/^wpa_pairwise=.*/wpa_pairwise={wpa_pairwise}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def country_code():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep country_code= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_country_code(country_code):
|
||||
return subprocess.run(f"sudo sed -i 's/^country_code=.*/country_code={country_code}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def ignore_broadcast_ssid():
|
||||
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ignore_broadcast_ssid= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def set_ignore_broadcast_ssid(ignore_broadcast_ssid):
|
||||
return subprocess.run(f"sudo sed -i 's/^ignore_broadcast_ssid=.*/ignore_broadcast_ssid={ignore_broadcast_ssid}/' /etc/hostapd/hostapd.conf", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def logging():
|
||||
log_output = subprocess.run(f"cat /tmp/hostapd.log", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
logs = {}
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
import subprocess
|
||||
|
||||
def webgui():
|
||||
return subprocess.run("sudo /etc/raspap/lighttpd/configport.sh --restart", shell=True, capture_output=True, text=True).stdout.strip()
|
||||
|
||||
def adblock():
|
||||
return subprocess.run("sudo /bin/systemctl restart dnsmasq.service", shell=True, capture_output=True, text=True).stdout.strip()
|
Loading…
Reference in a new issue