mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
Merge branch 'master' into master
This commit is contained in:
commit
592b2ccc77
@ -459,6 +459,19 @@ $(document).on("click", ".js-toggle-password", function(e) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).on("input", ".js-validate-psk", function(e) {
|
||||||
|
var field = $(e.target);
|
||||||
|
var colors = field.data("colors").split(",");
|
||||||
|
var target = $(field.data("target"));
|
||||||
|
if (field.val().length < 8 || field.val().length > 63) {
|
||||||
|
field.css("backgroundColor", colors[0]);
|
||||||
|
target.attr("disabled", true);
|
||||||
|
} else {
|
||||||
|
field.css("backgroundColor", colors[1]);
|
||||||
|
target.attr("disabled", false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$('#theme-select').change(function() {
|
$('#theme-select').change(function() {
|
||||||
var theme = themes[$( "#theme-select" ).val() ];
|
var theme = themes[$( "#theme-select" ).val() ];
|
||||||
|
2
app/js/custom.min.js
vendored
2
app/js/custom.min.js
vendored
@ -4,4 +4,4 @@
|
|||||||
* Licensed under MIT (https://github.com/raspap-webgui/raspap-webgui/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/raspap-webgui/raspap-webgui/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function msgShow(t,a){if(0==t)var e="success";else if(2==t||1==t)e="danger";return'<div class="alert alert-'+e+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+a+"</div>"}function createNetmaskAddr(t){var a=[];for(i=0;i<4;i++){var e=Math.min(t,8);a.push(256-Math.pow(2,8-e)),t-=e}return a.join(".")}function loadSummary(a){$.post("/ajax/networking/get_ip_summary.php",{interface:a},function(t){jsonData=JSON.parse(t),console.log(jsonData),0==jsonData.return?$("#"+a+"-summary").html(jsonData.output.join("<br />")):2==jsonData.return&&$("#"+a+"-summary").append('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+jsonData.output.join("<br />")+"</div>")})}function getAllInterfaces(){$.get("/ajax/networking/get_all_interfaces.php",function(t){jsonData=JSON.parse(t),$.each(jsonData,function(t,a){loadSummary(a)})})}function setupTabs(){$('a[data-toggle="tab"]').on("shown.bs.tab",function(t){var a=$(t.target).attr("href");a.match("summary")||loadCurrentSettings(a.replace("#",""))})}function loadCurrentSettings(t){$.post("/ajax/networking/get_int_config.php",{interface:t},function(t){jsonData=JSON.parse(t),$.each(jsonData.output,function(t,a){var n=a.interface;$.each(a,function(t,a){switch(t){case"static":"true"==a?($("#"+n+"-static").click(),$("#"+n+"-nofailover").click()):$("#"+n+"-dhcp").click();break;case"failover":"true"===a?$("#"+n+"-failover").click():$("#"+n+"-nofailover").click();break;case"ip_address":var e=a.split("/");$("#"+n+"-ipaddress").val(e[0]),$("#"+n+"-netmask").val(createNetmaskAddr(e[1]));break;case"routers":$("#"+n+"-gateway").val(a);break;case"domain_name_server":svrsDNS=a.split(" "),$("#"+n+"-dnssvr").val(svrsDNS[0]),$("#"+n+"-dnssvralt").val(svrsDNS[1])}})})})}function saveNetworkSettings(t){var a=$("#frm-"+t).find(":input"),e={};$.each(a,function(t,a){"radio"==$(a).attr("type")?e[$(a).attr("id")]=$(a).prop("checked"):e[$(a).attr("id")]=$(a).val()}),e.interface=t,$.post("/ajax/networking/save_int_config.php",e,function(t){var a=JSON.parse(t);$("#msgNetworking").html(msgShow(a.return,a.output))})}function applyNetworkSettings(){$(this).data("int");arrFormData={generate:""},$.post("/ajax/networking/gen_int_config.php",arrFormData,function(t){console.log(t);var a=JSON.parse(t);$("#msgNetworking").html(msgShow(a.return,a.output))})}function setupBtns(){$("#btnSummaryRefresh").click(function(){getAllInterfaces()}),$(".intsave").click(function(){saveNetworkSettings($(this).data("int"))}),$(".intapply").click(function(){applyNetworkSettings()})}function setCSRFTokenHeader(t,a,e){var n=$("meta[name=csrf_token]").attr("content");/^(POST|PATCH|PUT|DELETE)$/i.test(e.type)&&a.setRequestHeader("X-CSRF-Token",n)}function contentLoaded(){switch(pageCurrent=window.location.href.split("?")[1].split("=")[1],pageCurrent=pageCurrent.replace("#",""),$("#side-menu").metisMenu(),pageCurrent){case"network_conf":getAllInterfaces(),setupTabs(),setupBtns()}}function loadWifiStations(a){return function(){var t=!0===a?"?refresh":"";$(".js-wifi-stations").addClass("loading-spinner").empty().load("/ajax/networking/wifi_stations.php"+t,function(){$(this).removeClass("loading-spinner")})}}$(document).on("click",".js-add-dhcp-static-lease",function(t){t.preventDefault();var a=$(".js-new-dhcp-static-lease"),e=$("input[name=mac]",a).val().trim(),n=$("input[name=ip]",a).val().trim();if(""!=e&&""!=n){var i=$("#js-dhcp-static-lease-row").html().replace("{{ mac }}",e).replace("{{ ip }}",n);$(".js-dhcp-static-lease-container").append(i),$("input[name=mac]",a).val(""),$("input[name=ip]",a).val("")}}),$(document).on("click",".js-remove-dhcp-static-lease",function(t){t.preventDefault(),$(this).parents(".js-dhcp-static-lease-row").remove()}),$(document).on("submit",".js-dhcp-settings-form",function(t){$(".js-add-dhcp-static-lease").trigger("click")}),$(".js-reload-wifi-stations").on("click",loadWifiStations(!0)),$(document).on("click",".js-toggle-password",function(t){var a=$(t.target),e=$(a.data("target"));e.is(":input")&&(t.preventDefault(),a.data("__toggle-with-initial")||a.data("__toggle-with-initial",a.text()),"password"===e.attr("type")?(a.text(a.data("toggle-with")),e.attr("type","text")):(a.text(a.data("__toggle-with-initial")),e.attr("type","password")))}),$(document).on("keyup",".js-validate-psk",function(t){var a=$(t.target),e=a.data("colors").split(","),n=$(a.data("target"));a.val().length<8||63<a.val().length?(a.css("backgroundColor",e[0]),n.attr("disabled",!0)):(a.css("backgroundColor",e[1]),n.attr("disabled",!1))}),$(document).ajaxSend(setCSRFTokenHeader).ready(contentLoaded).ready(loadWifiStations());
|
function msgShow(t,a){if(0==t)var e="success";else if(2==t||1==t)e="danger";return'<div class="alert alert-'+e+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+a+"</div>"}function createNetmaskAddr(t){var a=[];for(i=0;i<4;i++){var e=Math.min(t,8);a.push(256-Math.pow(2,8-e)),t-=e}return a.join(".")}function loadSummary(a){$.post("/ajax/networking/get_ip_summary.php",{interface:a},function(t){jsonData=JSON.parse(t),console.log(jsonData),0==jsonData.return?$("#"+a+"-summary").html(jsonData.output.join("<br />")):2==jsonData.return&&$("#"+a+"-summary").append('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+jsonData.output.join("<br />")+"</div>")})}function getAllInterfaces(){$.get("/ajax/networking/get_all_interfaces.php",function(t){jsonData=JSON.parse(t),$.each(jsonData,function(t,a){loadSummary(a)})})}function setupTabs(){$('a[data-toggle="tab"]').on("shown.bs.tab",function(t){var a=$(t.target).attr("href");a.match("summary")||loadCurrentSettings(a.replace("#",""))})}function loadCurrentSettings(t){$.post("/ajax/networking/get_int_config.php",{interface:t},function(t){jsonData=JSON.parse(t),$.each(jsonData.output,function(t,a){var n=a.interface;$.each(a,function(t,a){switch(t){case"static":"true"==a?($("#"+n+"-static").click(),$("#"+n+"-nofailover").click()):$("#"+n+"-dhcp").click();break;case"failover":"true"===a?$("#"+n+"-failover").click():$("#"+n+"-nofailover").click();break;case"ip_address":var e=a.split("/");$("#"+n+"-ipaddress").val(e[0]),$("#"+n+"-netmask").val(createNetmaskAddr(e[1]));break;case"routers":$("#"+n+"-gateway").val(a);break;case"domain_name_server":svrsDNS=a.split(" "),$("#"+n+"-dnssvr").val(svrsDNS[0]),$("#"+n+"-dnssvralt").val(svrsDNS[1])}})})})}function saveNetworkSettings(t){var a=$("#frm-"+t).find(":input"),e={};$.each(a,function(t,a){"radio"==$(a).attr("type")?e[$(a).attr("id")]=$(a).prop("checked"):e[$(a).attr("id")]=$(a).val()}),e.interface=t,$.post("/ajax/networking/save_int_config.php",e,function(t){var a=JSON.parse(t);$("#msgNetworking").html(msgShow(a.return,a.output))})}function applyNetworkSettings(){$(this).data("int");arrFormData={generate:""},$.post("/ajax/networking/gen_int_config.php",arrFormData,function(t){console.log(t);var a=JSON.parse(t);$("#msgNetworking").html(msgShow(a.return,a.output))})}function setupBtns(){$("#btnSummaryRefresh").click(function(){getAllInterfaces()}),$(".intsave").click(function(){saveNetworkSettings($(this).data("int"))}),$(".intapply").click(function(){applyNetworkSettings()})}function setCSRFTokenHeader(t,a,e){var n=$("meta[name=csrf_token]").attr("content");/^(POST|PATCH|PUT|DELETE)$/i.test(e.type)&&a.setRequestHeader("X-CSRF-Token",n)}function contentLoaded(){switch(pageCurrent=window.location.href.split("?")[1].split("=")[1],pageCurrent=pageCurrent.replace("#",""),$("#side-menu").metisMenu(),pageCurrent){case"network_conf":getAllInterfaces(),setupTabs(),setupBtns()}}function loadWifiStations(a){return function(){var t=!0===a?"?refresh":"";$(".js-wifi-stations").addClass("loading-spinner").empty().load("/ajax/networking/wifi_stations.php"+t,function(){$(this).removeClass("loading-spinner")})}}$(document).on("click",".js-add-dhcp-static-lease",function(t){t.preventDefault();var a=$(".js-new-dhcp-static-lease"),e=$("input[name=mac]",a).val().trim(),n=$("input[name=ip]",a).val().trim();if(""!=e&&""!=n){var i=$("#js-dhcp-static-lease-row").html().replace("{{ mac }}",e).replace("{{ ip }}",n);$(".js-dhcp-static-lease-container").append(i),$("input[name=mac]",a).val(""),$("input[name=ip]",a).val("")}}),$(document).on("click",".js-remove-dhcp-static-lease",function(t){t.preventDefault(),$(this).parents(".js-dhcp-static-lease-row").remove()}),$(document).on("submit",".js-dhcp-settings-form",function(t){$(".js-add-dhcp-static-lease").trigger("click")}),$(".js-reload-wifi-stations").on("click",loadWifiStations(!0)),$(document).on("click",".js-toggle-password",function(t){var a=$(t.target),e=$(a.data("target"));e.is(":input")&&(t.preventDefault(),a.data("__toggle-with-initial")||a.data("__toggle-with-initial",a.text()),"password"===e.attr("type")?(a.text(a.data("toggle-with")),e.attr("type","text")):(a.text(a.data("__toggle-with-initial")),e.attr("type","password")))}),$(document).on("input",".js-validate-psk",function(t){var a=$(t.target),e=a.data("colors").split(","),n=$(a.data("target"));a.val().length<8||63<a.val().length?(a.css("backgroundColor",e[0]),n.attr("disabled",!0)):(a.css("backgroundColor",e[1]),n.attr("disabled",!1))}),$(document).ajaxSend(setCSRFTokenHeader).ready(contentLoaded).ready(loadWifiStations());
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
server.modules += (
|
server.modules += (
|
||||||
"mod_rewrite",
|
"mod_rewrite",
|
||||||
)
|
)
|
||||||
|
|
||||||
$HTTP["url"] =~ "^/REPLACE_ME/(?!(dist|app|ajax|config)).*" {
|
$HTTP["url"] =~ "^/(?!(dist|app|ajax|config)).*" {
|
||||||
url.rewrite-once = ( "^/REPLACE_ME/(.*?)(\?.+)?$"=>"/REPLACE_ME/index.php/$1$2" )
|
url.rewrite-once = ( "^/(.*?)(\?.+)?$"=>"/index.php/$1$2" )
|
||||||
server.error-handler-404 = "/REPLACE_ME/index.php"
|
server.error-handler-404 = "/index.php"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
define('RASPI_BRAND_TEXT', 'RaspAP');
|
define('RASPI_BRAND_TEXT', 'Isobox');
|
||||||
define('RASPI_CONFIG', '/etc/raspap');
|
define('RASPI_CONFIG', '/etc/raspap');
|
||||||
define('RASPI_CONFIG_NETWORK', RASPI_CONFIG.'/networking/defaults.json');
|
define('RASPI_CONFIG_NETWORK', RASPI_CONFIG.'/networking/defaults.json');
|
||||||
define('RASPI_ADMIN_DETAILS', RASPI_CONFIG.'/raspap.auth');
|
define('RASPI_ADMIN_DETAILS', RASPI_CONFIG.'/raspap.auth');
|
||||||
@ -39,14 +39,14 @@ define('RASPI_HOTSPOT_ENABLED', true);
|
|||||||
define('RASPI_NETWORK_ENABLED', true);
|
define('RASPI_NETWORK_ENABLED', true);
|
||||||
define('RASPI_DHCP_ENABLED', true);
|
define('RASPI_DHCP_ENABLED', true);
|
||||||
define('RASPI_ADBLOCK_ENABLED', false);
|
define('RASPI_ADBLOCK_ENABLED', false);
|
||||||
define('RASPI_OPENVPN_ENABLED', false);
|
define('RASPI_OPENVPN_ENABLED', true);
|
||||||
define('RASPI_WIREGUARD_ENABLED', false);
|
define('RASPI_WIREGUARD_ENABLED', false);
|
||||||
define('RASPI_TORPROXY_ENABLED', false);
|
define('RASPI_TORPROXY_ENABLED', false);
|
||||||
define('RASPI_CONFAUTH_ENABLED', true);
|
define('RASPI_CONFAUTH_ENABLED', true);
|
||||||
define('RASPI_CHANGETHEME_ENABLED', true);
|
define('RASPI_CHANGETHEME_ENABLED', true);
|
||||||
define('RASPI_VNSTAT_ENABLED', true);
|
define('RASPI_VNSTAT_ENABLED', true);
|
||||||
define('RASPI_SYSTEM_ENABLED', true);
|
define('RASPI_SYSTEM_ENABLED', true);
|
||||||
define('RASPI_MONITOR_ENABLED', false);
|
define('RASPI_MONITOR_ENABLED', true);
|
||||||
|
|
||||||
// Locale settings
|
// Locale settings
|
||||||
define('LOCALE_ROOT', 'locale');
|
define('LOCALE_ROOT', 'locale');
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
"subnetmask": [ "255.255.255.0" ]
|
"subnetmask": [ "255.255.255.0" ]
|
||||||
},
|
},
|
||||||
"uap0": {
|
"uap0": {
|
||||||
"static ip_address": [ "192.168.50.1/24" ],
|
"static ip_address": [ "192.168.200.1/24" ],
|
||||||
"static routers": [ "192.168.50.1" ],
|
"static routers": [ "192.168.200.1" ],
|
||||||
"static domain_name_server": [ "1.1.1.1 8.8.8.8" ],
|
"static domain_name_server": [ "1.1.1.1 8.8.8.8" ],
|
||||||
"subnetmask": [ "255.255.255.0" ]
|
"subnetmask": [ "255.255.255.0" ]
|
||||||
},
|
},
|
||||||
@ -31,7 +31,7 @@
|
|||||||
"dhcp-range": [ "10.3.141.50,10.3.141.255,255.255.255.0,12h" ]
|
"dhcp-range": [ "10.3.141.50,10.3.141.255,255.255.255.0,12h" ]
|
||||||
},
|
},
|
||||||
"uap0": {
|
"uap0": {
|
||||||
"dhcp-range": [ "192.168.50.50,192.168.50.150,12h" ]
|
"dhcp-range": [ "192.168.200.50,192.168.200.150,12h" ]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wireguard": {
|
"wireguard": {
|
||||||
|
@ -10,9 +10,9 @@ require dhcp_server_identifier
|
|||||||
slaac private
|
slaac private
|
||||||
nohook lookup-hostname
|
nohook lookup-hostname
|
||||||
|
|
||||||
# RaspAP wlan0 configuration
|
# RaspAP uap0 configuration
|
||||||
interface wlan0
|
interface uap0
|
||||||
static ip_address=10.3.141.1/24
|
static ip_address=192.168.200.1/24
|
||||||
static routers=10.3.141.1
|
static routers=192.168.200.1
|
||||||
static domain_name_server=9.9.9.9 1.1.1.1
|
static domain_name_server=9.9.9.9 1.1.1.1
|
||||||
|
|
||||||
|
@ -4,14 +4,15 @@ ctrl_interface_group=0
|
|||||||
beacon_int=100
|
beacon_int=100
|
||||||
auth_algs=1
|
auth_algs=1
|
||||||
wpa_key_mgmt=WPA-PSK
|
wpa_key_mgmt=WPA-PSK
|
||||||
ssid=raspi-webgui
|
ssid=isobox
|
||||||
channel=1
|
channel=1
|
||||||
hw_mode=g
|
hw_mode=g
|
||||||
wpa_passphrase=ChangeMe
|
wpa_passphrase=isobox-password
|
||||||
interface=wlan0
|
interface=uap0
|
||||||
wpa=2
|
wpa=2
|
||||||
wpa_pairwise=CCMP
|
wpa_pairwise=CCMP
|
||||||
country_code=
|
country_code=IT
|
||||||
|
ignore_broadcast_ssid=0
|
||||||
## Rapberry Pi 3 specific to on board WLAN/WiFi
|
## Rapberry Pi 3 specific to on board WLAN/WiFi
|
||||||
#ieee80211n=1 # 802.11n support (Raspberry Pi 3)
|
#ieee80211n=1 # 802.11n support (Raspberry Pi 3)
|
||||||
#wmm_enabled=1 # QoS support (Raspberry Pi 3)
|
#wmm_enabled=1 # QoS support (Raspberry Pi 3)
|
||||||
|
@ -554,7 +554,7 @@ function _configure_networking() {
|
|||||||
echo "Checking iptables rules"
|
echo "Checking iptables rules"
|
||||||
rules=(
|
rules=(
|
||||||
"-A POSTROUTING -j MASQUERADE"
|
"-A POSTROUTING -j MASQUERADE"
|
||||||
"-A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE"
|
"-A POSTROUTING -s 192.168.200.0/24 ! -d 192.168.200.0/24 -j MASQUERADE"
|
||||||
)
|
)
|
||||||
for rule in "${rules[@]}"; do
|
for rule in "${rules[@]}"; do
|
||||||
if grep -- "$rule" $rulesv4 > /dev/null; then
|
if grep -- "$rule" $rulesv4 > /dev/null; then
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=RaspAP Service Daemon
|
Description=RaspAP Service Daemon
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
After=multi-user.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
@ -10,30 +10,58 @@ DAEMONPATH="/lib/systemd/system/raspapd.service"
|
|||||||
OPENVPNENABLED=$(pidof openvpn | wc -l)
|
OPENVPNENABLED=$(pidof openvpn | wc -l)
|
||||||
|
|
||||||
positional=()
|
positional=()
|
||||||
while [[ $# -gt 0 ]]
|
while [[ $# -gt 0 ]]; do
|
||||||
do
|
key="$1"
|
||||||
key="$1"
|
|
||||||
|
|
||||||
case $key in
|
case $key in
|
||||||
-i|--interface)
|
-i | --interface)
|
||||||
interface="$2"
|
interface="$2"
|
||||||
shift # past argument
|
shift # past argument
|
||||||
shift # past value
|
shift # past value
|
||||||
;;
|
;;
|
||||||
-s|--seconds)
|
-s | --seconds)
|
||||||
seconds="$2"
|
seconds="$2"
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-a|--action)
|
-a | --action)
|
||||||
action="$2"
|
action="$2"
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
set -- "${positional[@]}"
|
set -- "${positional[@]}"
|
||||||
|
|
||||||
|
HOSTAPD_CONF="/etc/hostapd/hostapd.conf"
|
||||||
|
|
||||||
|
new_country_code=$(curl -s -H "Authorization: Bearer 9da1eb466ed052" https://ipinfo.io/json | jq -r ".country // empty")
|
||||||
|
old_country_code=$(grep ^country_code $HOSTAPD_CONF | cut -d "=" -f 2)
|
||||||
|
|
||||||
|
if [[ ! -z "$new_country_code" ]] && [[ "$old_country_code" != "$new_country_code" ]]; then
|
||||||
|
sudo sed -i "s/country_code=$old_country_code/country_code=$new_country_code/" /etc/hostapd/hostapd.conf
|
||||||
|
echo "Updated country code: $new_country_code"
|
||||||
|
fi
|
||||||
|
|
||||||
|
old_ssid=$(grep ^ssid $HOSTAPD_CONF | cut -d "=" -f 2)
|
||||||
|
rpi_serial=$(cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2)
|
||||||
|
new_ssid="isobox-$rpi_serial"
|
||||||
|
|
||||||
|
if [[ "$old_ssid" != "$new_ssid" ]]; then
|
||||||
|
sed -i "s/ssid=$old_ssid/ssid=$new_ssid/" $HOSTAPD_CONF
|
||||||
|
echo "Updated ssid: $new_ssid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
old_hostname=$(hostname)
|
||||||
|
new_hostname="isobox-$rpi_serial"
|
||||||
|
|
||||||
|
if [[ "$old_hostname" != "$new_hostname" ]]; then
|
||||||
|
echo $new_hostname >/etc/hostname
|
||||||
|
sed -i "s/$old_hostname/$new_hostname/" /etc/hosts
|
||||||
|
hostname $new_hostname
|
||||||
|
echo "Updated hostname: $new_hostname"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Stopping network services..."
|
echo "Stopping network services..."
|
||||||
if [ $OPENVPNENABLED -eq 1 ]; then
|
if [ $OPENVPNENABLED -eq 1 ]; then
|
||||||
systemctl stop openvpn-client@client
|
systemctl stop openvpn-client@client
|
||||||
@ -57,7 +85,7 @@ if [ -r "$CONFIGFILE" ]; then
|
|||||||
declare -A config
|
declare -A config
|
||||||
while IFS=" = " read -r key value; do
|
while IFS=" = " read -r key value; do
|
||||||
config["$key"]="$value"
|
config["$key"]="$value"
|
||||||
done < "$CONFIGFILE"
|
done <"$CONFIGFILE"
|
||||||
|
|
||||||
if [ "${config[BridgedEnable]}" = 1 ]; then
|
if [ "${config[BridgedEnable]}" = 1 ]; then
|
||||||
if [ "${interface}" = "br0" ]; then
|
if [ "${interface}" = "br0" ]; then
|
||||||
@ -79,7 +107,7 @@ if [ -r "$CONFIGFILE" ]; then
|
|||||||
echo "Disabling systemd-networkd"
|
echo "Disabling systemd-networkd"
|
||||||
systemctl disable systemd-networkd
|
systemctl disable systemd-networkd
|
||||||
|
|
||||||
ip link ls up | grep -q 'br0' &> /dev/null
|
ip link ls up | grep -q 'br0' &>/dev/null
|
||||||
if [ $? == 0 ]; then
|
if [ $? == 0 ]; then
|
||||||
echo "Removing br0 interface..."
|
echo "Removing br0 interface..."
|
||||||
ip link set down br0
|
ip link set down br0
|
||||||
@ -89,7 +117,7 @@ if [ -r "$CONFIGFILE" ]; then
|
|||||||
if [ "${config[WifiAPEnable]}" = 1 ]; then
|
if [ "${config[WifiAPEnable]}" = 1 ]; then
|
||||||
if [ "${interface}" = "uap0" ]; then
|
if [ "${interface}" = "uap0" ]; then
|
||||||
|
|
||||||
ip link ls up | grep -q 'uap0' &> /dev/null
|
ip link ls up | grep -q 'uap0' &>/dev/null
|
||||||
if [ $? == 0 ]; then
|
if [ $? == 0 ]; then
|
||||||
echo "Removing uap0 interface..."
|
echo "Removing uap0 interface..."
|
||||||
iw dev uap0 del
|
iw dev uap0 del
|
||||||
@ -127,4 +155,3 @@ if [ "${config[WifiAPEnable]}" = 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "RaspAP service start DONE"
|
echo "RaspAP service start DONE"
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ function _restore_networking() {
|
|||||||
echo "Checking iptables rules"
|
echo "Checking iptables rules"
|
||||||
rules=(
|
rules=(
|
||||||
"-A POSTROUTING -j MASQUERADE"
|
"-A POSTROUTING -j MASQUERADE"
|
||||||
"-A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE"
|
"-A POSTROUTING -s 192.168.200.0/24 ! -d 192.168.200.0/24 -j MASQUERADE"
|
||||||
)
|
)
|
||||||
for rule in "${rules[@]}"; do
|
for rule in "${rules[@]}"; do
|
||||||
if grep -- "$rule" $rulesv4 > /dev/null; then
|
if grep -- "$rule" $rulesv4 > /dev/null; then
|
||||||
|
@ -46,3 +46,32 @@
|
|||||||
<?php endforeach ?>
|
<?php endforeach ?>
|
||||||
</div>
|
</div>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|
||||||
|
<h4 class="h-underlined my-3"><?php echo _("Add Custom Network") ?></h4>
|
||||||
|
<div class="card-grid">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<input type="hidden" name="protocol<?php echo $index ?>" value="<?php echo htmlspecialchars($network ['protocol'], ENT_QUOTES); ?>" />
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="info-item-wifi"><?php echo _("SSID"); ?></div>
|
||||||
|
<input type="text" class="form-control" name="ssid<?php echo $index ?>" data-colors="#ffd0d0,#d0ffd0"/>
|
||||||
|
<div class="info-item-wifi"><?php echo _("Passphrase"); ?></div>
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="password" class="form-control js-validate-psk" aria-describedby="passphrase" name="passphrase<?php echo $index ?>" data-target="#update<?php echo $index ?>" data-colors="#ffd0d0,#d0ffd0">
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-outline-secondary js-toggle-password" type="button" data-target="[name=passphrase<?php echo $index ?>]" data-toggle-with="<?php echo _("Hide") ?>">Show</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-group btn-block ">
|
||||||
|
<input type="submit" class="col-xs-4 col-md-4 btn btn-info" value="<?php echo _("Add"); ?>" id="update<?php echo $index ?>" name="update<?php echo $index ?>" data-toggle="modal" data-target="#configureClientModal" />
|
||||||
|
</div><!-- /.btn-group -->
|
||||||
|
</div><!-- /.card-body -->
|
||||||
|
</div><!-- /.card -->
|
||||||
|
|
||||||
|
<?php $index++; ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user