no posts + everything behind auth

This commit is contained in:
TCH 2024-02-17 19:45:39 +00:00
parent 910616ef43
commit 1f1fa3711a
3 changed files with 17 additions and 140 deletions

View File

@ -14,18 +14,9 @@ import modules.firewall as firewall
import modules.networking as networking import modules.networking as networking
import modules.openvpn as openvpn import modules.openvpn as openvpn
import modules.wireguard as wireguard import modules.wireguard as wireguard
import modules.restart as restart
tags_metadata = [ 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( app = FastAPI(
title="API for Raspap", 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(): async def get_system():
return{ return{
'hostname': system.hostname(), 'hostname': system.hostname(),
@ -54,7 +45,7 @@ async def get_system():
'rpiRevision': system.rpiRevision() '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(): async def get_ap():
return{ return{
'driver': ap.driver(), 'driver': ap.driver(),
@ -75,66 +66,14 @@ async def get_ap():
'ignore_broadcast_ssid': ap.ignore_broadcast_ssid() 'ignore_broadcast_ssid': ap.ignore_broadcast_ssid()
} }
@app.post("/ap", tags=["accesspoint/hostpost"]) @app.get("/clients/{wireless_interface}", tags=["Clients"], api_key: APIKey = Depends(auth.get_api_key)
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"])
async def get_clients(wireless_interface): async def get_clients(wireless_interface):
return{ return{
'active_clients_amount': client.get_active_clients_amount(wireless_interface), 'active_clients_amount': client.get_active_clients_amount(wireless_interface),
'active_clients': json.loads(client.get_active_clients(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(): async def get_dhcp():
return{ return{
'range_start': dhcp.range_start(), 'range_start': dhcp.range_start(),
@ -145,29 +84,30 @@ async def get_dhcp():
'range_nameservers': dhcp.range_nameservers() '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(): async def get_domains():
return{ return{
'domains': json.loads(dns.adblockdomains()) '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(): async def get_hostnames():
return{ return{
'hostnames': json.loads(dns.adblockhostnames()) '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(): async def get_upstream():
return{ return{
'upstream_nameserver': dns.upstream_nameserver() '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(): async def get_dnsmasq_logs():
return(dns.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(): async def get_ddns():
return{ return{
'use': ddns.use(), 'use': ddns.use(),
@ -179,18 +119,18 @@ async def get_ddns():
'domain': ddns.domain() '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(): async def get_firewall():
return json.loads(firewall.firewall_rules()) 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(): async def get_networking():
return{ return{
'interfaces': json.loads(networking.interfaces()), 'interfaces': json.loads(networking.interfaces()),
'throughput': json.loads(networking.throughput()) '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(): async def get_openvpn():
return{ return{
'client_configs': openvpn.client_configs(), 'client_configs': openvpn.client_configs(),
@ -200,13 +140,13 @@ async def get_openvpn():
'client_login_active': openvpn.client_login_active() '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): async def client_config_list(config):
return{ return{
'client_config': openvpn.client_config_list(config) '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(): async def get_wireguard():
return{ return{
'client_configs': wireguard.configs(), 'client_configs': wireguard.configs(),
@ -214,16 +154,8 @@ async def get_wireguard():
'client_config_active': wireguard.client_config_active() '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): async def client_config_list(config):
return{ return{
'client_config': wireguard.client_config_list(config) '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()

View File

@ -4,99 +4,51 @@ import json
def driver(): def driver():
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep driver= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip() 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(): 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() 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(): 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() 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(): 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() 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(): 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() 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(): 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() 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(): 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() 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(): def channel():
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep channel= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip() 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(): 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() 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(): def ieee80211n():
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep ieee80211n= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip() 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(): 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() 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(): 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() 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(): def wpa():
return subprocess.run("cat /etc/hostapd/hostapd.conf | grep wpa= | cut -d'=' -f2", shell=True, capture_output=True, text=True).stdout.strip() 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(): 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() 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(): 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() 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(): 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() 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(): def logging():
log_output = subprocess.run(f"cat /tmp/hostapd.log", shell=True, capture_output=True, text=True).stdout.strip() log_output = subprocess.run(f"cat /tmp/hostapd.log", shell=True, capture_output=True, text=True).stdout.strip()
logs = {} logs = {}

View File

@ -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()