From b4012039c23f4e5fc7ab43f9dadfd295723a9a5f Mon Sep 17 00:00:00 2001 From: Bill Zimmerman Date: Tue, 6 Apr 2021 14:21:19 +0200 Subject: [PATCH 01/64] Update BACKERS.md --- BACKERS.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/BACKERS.md b/BACKERS.md index fda9b737..efe317ad 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -17,12 +17,13 @@ You can [become a sponsor](https://github.com/sponsors/RaspAP) using your indivi ### Exclusive features When backers were asked which feature they'd most like to see added to RaspAP, the ability to manage multiple OpenVPN client configurations topped the list of requests. We think this is a great idea, so we're adding this as the first feature exclusive to insiders. -✅ Multiple OpenVPN client configs -✅ OpenVPN service logging -✅ Night mode toggle -✅ Restrict network to static clients -✅ WireGuard support -⚙️ Traffic shaping (in progress) + ✅ [Multiple OpenVPN client configs](https://docs.raspap.com/openvpn/#multiple-client-configs) + ✅ [OpenVPN certificate authentication](https://docs.raspap.com/openvpn/#certificate-authentication) + ✅ OpenVPN service logging + ✅ Night mode toggle + ✅ Restrict network to static clients + ✅ [WireGuard support](https://docs.raspap.com/wireguard/) +⚙️ Traffic shaping (in progress) Look for the list above to grow as we add more exclusive features. @@ -30,12 +31,7 @@ Look for the list above to grow as we add more exclusive features. Below is a list of funding targets. When a funding target is reached, the features that are tied to it are merged back into RaspAP and released to the public for general availability. #### $500 -✅ Multiple OpenVPN client configs -✅ OpenVPN service logging -✅ Night mode toggle -✅ Restrict network to static clients -✅ WireGuard support -⚙️ Traffic shaping (in progress) +The first **Insiders Edition** includes the exclusive features listed above. ### Frequently asked questions From f9e907e3cedaa1501846c8f118dfb7919e22a87b Mon Sep 17 00:00:00 2001 From: billz Date: Tue, 6 Apr 2021 22:59:40 +0100 Subject: [PATCH 02/64] Tweak layout of dashboard client widget --- app/css/custom.php | 5 +++++ app/css/hackernews.css | 5 +++++ app/css/lightsout.css | 5 +++++ templates/dashboard.php | 30 ++++++++++++++++++++++-------- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/css/custom.php b/app/css/custom.php index 6726a0a8..273a9629 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -124,6 +124,11 @@ i.fa.fa-bars:hover{ color: #858796; } +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; +} + .info-item-xs { font-size: 0.7rem; margin-left: 0.3rem; diff --git a/app/css/hackernews.css b/app/css/hackernews.css index 37c12272..6d065e80 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -152,6 +152,11 @@ ul.nav-tabs, .nav-tabs .nav-link { color: #858796; } +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; +} + .info-item-xs { font-size: 0.7rem; margin-left: 0.3rem; diff --git a/app/css/lightsout.css b/app/css/lightsout.css index 7f38035a..2fd1d5b0 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -255,6 +255,11 @@ hr { color: #858796; } +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; +} + .info-item-xs { font-size: 0.7rem; line-height: 1.5em; diff --git a/templates/dashboard.php b/templates/dashboard.php index 47443ee8..bc0aa65b 100755 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -35,14 +35,28 @@

-
-

-

-

-

-

-

-

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From f7f963bbdcde7d0a34c2026214c97319e456a439 Mon Sep 17 00:00:00 2001 From: billz Date: Wed, 7 Apr 2021 07:17:05 +0100 Subject: [PATCH 03/64] Set common repo for install loader --- installers/raspbian.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/installers/raspbian.sh b/installers/raspbian.sh index d056062c..f277ec00 100755 --- a/installers/raspbian.sh +++ b/installers/raspbian.sh @@ -38,6 +38,7 @@ set -eo pipefail function _main() { # set defaults repo="RaspAP/raspap-webgui" # override with -r, --repo option + repo_common="$repo" _parse_params "$@" _setup_colors _log_output @@ -72,6 +73,7 @@ function _parse_params() { ;; -r|--repo|--repository) repo="$2" + repo_common="$repo" shift ;; -b|--branch) @@ -184,6 +186,7 @@ function _get_release() { readonly RASPAP_LATEST=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")' ) if [ "$insiders" == 1 ]; then repo="RaspAP/raspap-insiders" + repo_common="RaspAP/raspap-webgui" readonly RASPAP_INSIDERS_LATEST=$(curl -s "https://api.raspap.com/repos/RaspAP/raspap-insiders/releases/latest/" | grep -Po '"tag_name": "\K.*?(?=")' ) readonly RASPAP_RELEASE="${RASPAP_INSIDERS_LATEST} Insiders" else @@ -237,7 +240,7 @@ function _load_installer() { header=(--header "Authorization: token $acctoken") fi - UPDATE_URL="https://raw.githubusercontent.com/$repo/$branch/" + UPDATE_URL="https://raw.githubusercontent.com/$repo_common/$branch/" if [ "${install_cert:-}" = 1 ]; then source="mkcert" wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh From d05b07fee3d06cfd6f06d21b0ba60cd6a5223c0c Mon Sep 17 00:00:00 2001 From: billz Date: Wed, 7 Apr 2021 08:46:26 +0100 Subject: [PATCH 04/64] Append WG option if undefined --- installers/common.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/installers/common.sh b/installers/common.sh index 26f3e92f..238c3bf4 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -366,7 +366,11 @@ function _install_wireguard() { echo "Enabling wg-quick@wg0" sudo systemctl enable wg-quick@wg0 || _install_status 1 "Failed to enable wg-quick service" echo "Enabling WireGuard management option" - sudo sed -i "s/\('RASPI_WIREGUARD_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" + if grep -q 'RASPI_WIREGUARD_ENABLED' "$webroot_dir/includes/config.php"; then + sudo sed -i "s/\('RASPI_WIREGUARD_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" + else + sudo sed -i "/define('RASPI_OPENVPN_ENABLED', true);/a define('RASPI_WIREGUARD_ENABLED', true);" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" + fi _install_status 0 } From 30c42b8ea3d83fa9b93537f898250839a807244c Mon Sep 17 00:00:00 2001 From: billz Date: Wed, 7 Apr 2021 09:25:28 +0100 Subject: [PATCH 05/64] Align signal strength meter w/ adjacent col --- templates/dashboard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/dashboard.php b/templates/dashboard.php index bc0aa65b..027d0201 100755 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -58,7 +58,7 @@
-
+
From 83d0a989794aed2c966e48c2a93b79e77b6b3627 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 9 Apr 2021 07:51:43 +0100 Subject: [PATCH 06/64] Additional chart layout tweaks --- templates/dashboard.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/templates/dashboard.php b/templates/dashboard.php index 027d0201..597dc6b5 100755 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -34,31 +34,31 @@

-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
From 620fece123afca3fa5af01a7c4d4a95bf2aeb3a3 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 9 Apr 2021 15:03:25 +0100 Subject: [PATCH 07/64] Apply updated info-item layout to openvpn ipv4 --- templates/openvpn.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/templates/openvpn.php b/templates/openvpn.php index df97ce32..33f61a81 100755 --- a/templates/openvpn.php +++ b/templates/openvpn.php @@ -29,13 +29,15 @@

-
+
-
-
+
+
+
+
-
+
From e8343cc0a152e2409bcd6d0bb696d776ec4c6b80 Mon Sep 17 00:00:00 2001 From: billz Date: Wed, 14 Apr 2021 20:06:19 +0100 Subject: [PATCH 08/64] Install wireguard from apt on RPi OS --- installers/common.sh | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/installers/common.sh b/installers/common.sh index 238c3bf4..fe36303a 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -350,27 +350,15 @@ function _prompt_install_wireguard() { # Install Wireguard from the Debian unstable distro function _install_wireguard() { _install_log "Configure WireGuard support" - if [ "$OS" == "Raspbian" ]; then - echo "Installing raspberrypi-kernel-headers" - sudo apt-get install $apt_option raspberrypi-kernel-headers || _install_status 1 "Unable to install raspberrypi-kernel-headers" + if [ "$OS" == "Debian" ]; then + echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list || _install_status 1 "Unable to add Debian backports repo" fi - echo "Installing WireGuard from Debian unstable distro" - echo "Adding Debian distro" - echo "deb http://deb.debian.org/debian/ unstable main" | sudo tee --append /etc/apt/sources.list.d/unstable.list || _install_status 1 "Unable to append to sources.list" - sudo apt-get install dirmngr || _install_status 1 "Unable to install dirmngr" - echo "Adding Debian distro keys" - sudo wget -q -O - https://ftp-master.debian.org/keys/archive-key-$(lsb_release -sr).asc | sudo apt-key add - || _install_status 1 "Unable to add keys" - printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' | sudo tee --append /etc/apt/preferences.d/limit-unstable || _install_status 1 "Unable to append to preferences.d" - echo "Installing WireGuard" + echo "Installing wireguard from apt" sudo apt-get update && sudo apt-get install $apt_option wireguard || _install_status 1 "Unable to install wireguard" echo "Enabling wg-quick@wg0" sudo systemctl enable wg-quick@wg0 || _install_status 1 "Failed to enable wg-quick service" echo "Enabling WireGuard management option" - if grep -q 'RASPI_WIREGUARD_ENABLED' "$webroot_dir/includes/config.php"; then - sudo sed -i "s/\('RASPI_WIREGUARD_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" - else - sudo sed -i "/define('RASPI_OPENVPN_ENABLED', true);/a define('RASPI_WIREGUARD_ENABLED', true);" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" - fi + sudo sed -i "s/\('RASPI_WIREGUARD_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php" _install_status 0 } From 6c6722ae882c9840fe6956f073aac726d624165f Mon Sep 17 00:00:00 2001 From: billz Date: Thu, 15 Apr 2021 18:48:45 +0100 Subject: [PATCH 09/64] Update release version --- README.md | 2 +- includes/defaults.php | 2 +- index.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 47c5dba5..639cc363 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/xeKD93p.png) -[![Release 2.6.3](https://img.shields.io/badge/release-v2.6.3-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.6.4](https://img.shields.io/badge/release-v2.6.4-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. diff --git a/includes/defaults.php b/includes/defaults.php index 81803f14..35d38ef8 100755 --- a/includes/defaults.php +++ b/includes/defaults.php @@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) { $defaults = [ 'RASPI_BRAND_TEXT' => 'RaspAP', - 'RASPI_VERSION' => '2.6.3', + 'RASPI_VERSION' => '2.6.4', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0', diff --git a/index.php b/index.php index 3b7a78dd..4108b9f7 100755 --- a/index.php +++ b/index.php @@ -14,7 +14,7 @@ * @author Lawrence Yau * @author Bill Zimmerman * @license GNU General Public License, version 3 (GPL-3.0) - * @version 2.6.3 + * @version 2.6.4 * @link https://github.com/raspap/raspap-webgui/ * @link https://raspap.com/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/ From 2032b27ad02b415556aa3bec750833e4abde88fc Mon Sep 17 00:00:00 2001 From: billz Date: Thu, 22 Apr 2021 08:12:44 +0100 Subject: [PATCH 10/64] Merge from upstream master (insiders) --- installers/raspbian.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/installers/raspbian.sh b/installers/raspbian.sh index f277ec00..5c865625 100755 --- a/installers/raspbian.sh +++ b/installers/raspbian.sh @@ -241,6 +241,10 @@ function _load_installer() { fi UPDATE_URL="https://raw.githubusercontent.com/$repo_common/$branch/" + header=() + if [[ ! -z "$acctoken" ]]; then + header=(--header "Authorization: token $acctoken") + fi if [ "${install_cert:-}" = 1 ]; then source="mkcert" wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh From f24373d7f832b3a50c9e2540812c415680799405 Mon Sep 17 00:00:00 2001 From: billz Date: Thu, 22 Apr 2021 08:13:05 +0100 Subject: [PATCH 11/64] Update w/ _install_mobile_clients @zbchristian --- installers/common.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/installers/common.sh b/installers/common.sh index fe36303a..7523fad5 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -56,11 +56,30 @@ function _install_raspap() { _configure_networking _prompt_install_adblock _prompt_install_openvpn + _install_mobile_clients _prompt_install_wireguard _patch_system_files _install_complete } +# search for optional installation files names install_feature_*.sh +function _install_mobile_clients() { + if [ "$insiders" == 1 ]; then + _install_log "Installing support for mobile data clients" + for feature in $(ls $webroot_dir/installers/install_feature_*.sh) ; do + source $feature + f=$(basename $feature) + func="_${f%.*}" + if declare -f -F $func > /dev/null; then + echo "Installing $func" + $func || _install_status 1 "Unable to install feature ($func)" + else + _install_status 1 "Install file $f is missing install function $func" + fi + done + fi +} + # Prompts user to set installation options function _config_installation() { if [ "$upgrade" == 1 ]; then @@ -177,6 +196,9 @@ function _create_raspap_directories() { # Create a directory to store networking configs echo "Creating $raspap_dir/networking" sudo mkdir -p "$raspap_dir/networking" + # Copy existing dhcpcd.conf to use as base config + echo "Adding /etc/dhcpcd.conf as base configuration" + cat /etc/dhcpcd.conf | sudo tee -a /etc/raspap/networking/defaults > /dev/null echo "Changing file ownership of $raspap_dir" sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || _install_status 1 "Unable to change file ownership for '$raspap_dir'" } From 6d3966dd8a54dad2b85b39f2ab0fa476143f2059 Mon Sep 17 00:00:00 2001 From: billz Date: Thu, 22 Apr 2021 08:28:07 +0100 Subject: [PATCH 12/64] Update release version --- README.md | 2 +- includes/defaults.php | 2 +- index.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 639cc363..fbc2912d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/xeKD93p.png) -[![Release 2.6.4](https://img.shields.io/badge/release-v2.6.4-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.6.5](https://img.shields.io/badge/release-v2.6.5-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. diff --git a/includes/defaults.php b/includes/defaults.php index 35d38ef8..e1950547 100755 --- a/includes/defaults.php +++ b/includes/defaults.php @@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) { $defaults = [ 'RASPI_BRAND_TEXT' => 'RaspAP', - 'RASPI_VERSION' => '2.6.4', + 'RASPI_VERSION' => '2.6.5', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0', diff --git a/index.php b/index.php index 4108b9f7..0ae99e6b 100755 --- a/index.php +++ b/index.php @@ -14,7 +14,7 @@ * @author Lawrence Yau * @author Bill Zimmerman * @license GNU General Public License, version 3 (GPL-3.0) - * @version 2.6.4 + * @version 2.6.5 * @link https://github.com/raspap/raspap-webgui/ * @link https://raspap.com/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/ From 1d21f524f1f2d0e8f9deb8af3969289cf86cf472 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sat, 3 Apr 2021 17:37:00 +0100 Subject: [PATCH 13/64] remove superfluous quote --- templates/networking.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/networking.php b/templates/networking.php index 0ab9152e..9828c347 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -17,7 +17,7 @@

-
+
From e5ac7d23a3ece96af5a4bd4dafcd34e81f69db7e Mon Sep 17 00:00:00 2001 From: glaszig Date: Sat, 3 Apr 2021 17:49:04 +0100 Subject: [PATCH 14/64] improve table layout 'internet connection' --- templates/networking.php | 62 +++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/templates/networking.php b/templates/networking.php index 9828c347..703c05df 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -18,40 +18,38 @@

-
-
-
- - +
+
+ + + + + + + + + + + + + - - - - + + + + - - - "; - } else { - foreach($routeInfo as $route) { - echo ""; - echo ""; - echo ""; - echo ""; - $status = $route["access-ip"] ? "fa-check" : "fa-times"; - echo ''; - $status = $route["access-dns"] ? "fa-check" : "fa-times"; - echo ''; - echo ""; - } - } - ?> - -
No route to the internet found

+

+ "> +

+

+ "> +

+
No route to the internet found
".$route["interface"]."".$route["ip-address"]."".$route["gateway"]."
".$route["gw-name"]."

'.RASPI_ACCESS_CHECK_IP.'

'.RASPI_ACCESS_CHECK_DNS.'
-
-
+ + + +
From 8dbb2f3a1b005d671b56d776a1327a11db732cfb Mon Sep 17 00:00:00 2001 From: glaszig Date: Sat, 3 Apr 2021 17:57:45 +0100 Subject: [PATCH 15/64] fix markup in networking --- templates/networking.php | 137 +++++++++++++++++++-------------------- 1 file changed, 65 insertions(+), 72 deletions(-) diff --git a/templates/networking.php b/templates/networking.php index 703c05df..d19093f3 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -1,84 +1,77 @@
-
-
-
-
+
+
-
-
-
+
+
- -
-
-

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
No route to the internet found

-

- "> -

-

- "> -

-
-
-
-
-

-
- - - -
-
-
-
-

-                  
-
-
- - -
-
-
-
+ +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
No route to the internet found

+

+ "> +

+

+ "> +

+
+ + +

+
+ + + +
+
+
+
+

+              
+
+
+ + +
+ +
- + +
- From f6c4d2b1d8fc8d0516ed40115e96a6ec9175a26c Mon Sep 17 00:00:00 2001 From: glaszig Date: Thu, 22 Apr 2021 16:31:58 +0100 Subject: [PATCH 16/64] Revert "fix markup in networking" This reverts commit 8dbb2f3a1b005d671b56d776a1327a11db732cfb. --- templates/networking.php | 135 ++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 64 deletions(-) diff --git a/templates/networking.php b/templates/networking.php index d19093f3..703c05df 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -1,77 +1,84 @@
-
-
+
+
+
+
-
- +
+
+
- -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
No route to the internet found

-

- "> -

-

- "> -

-
+ +
+
+

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
No route to the internet found

+

+ "> +

+

+ "> +

+
+
+
-
-
- - -

-
- - - -
-
-
-
-

+            

+
+ + + +
+
+
+
+

+                  
+
+
+ + +
+
+
+
- - -
- -
- - +
+ From c624c36f31874a736f6a2c25c496ded22b688ecf Mon Sep 17 00:00:00 2001 From: glaszig Date: Thu, 22 Apr 2021 16:35:14 +0100 Subject: [PATCH 17/64] fix indentation --- templates/networking.php | 111 ++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/templates/networking.php b/templates/networking.php index 703c05df..e1df8533 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -1,13 +1,15 @@
-
-
-
-
- -
-
-
+
+ +
+
+
+ +
+
+
+
-
-
-
-
+ +
From d1382cbabfe688fa3c8e90e0d0c8e1506d3b68a1 Mon Sep 17 00:00:00 2001 From: glaszig Date: Thu, 22 Apr 2021 16:36:58 +0100 Subject: [PATCH 19/64] make interface cards be of 100% height --- templates/networking.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/networking.php b/templates/networking.php index 73ce2fc4..773d1114 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -61,7 +61,7 @@
-
+


From 048848b2b523dca5854e3ac89e8c9a5b748fb586 Mon Sep 17 00:00:00 2001
From: glaszig 
Date: Thu, 22 Apr 2021 16:51:10 +0100
Subject: [PATCH 20/64] make interface cards full width for legibility

---
 templates/networking.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/templates/networking.php b/templates/networking.php
index 773d1114..3887a01b 100755
--- a/templates/networking.php
+++ b/templates/networking.php
@@ -60,8 +60,8 @@
               
                 
                   
-                  
-
+
+


From 08164f43f10a45d2fea191782dc689a406bfc688 Mon Sep 17 00:00:00 2001
From: Bill Zimmerman 
Date: Fri, 23 Apr 2021 15:27:41 +0200
Subject: [PATCH 21/64] Update BACKERS.md

---
 BACKERS.md | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/BACKERS.md b/BACKERS.md
index efe317ad..2422a86a 100644
--- a/BACKERS.md
+++ b/BACKERS.md
@@ -17,13 +17,13 @@ You can [become a sponsor](https://github.com/sponsors/RaspAP) using your indivi
 ### Exclusive features
 When backers were asked which feature they'd most like to see added to RaspAP, the ability to manage multiple OpenVPN client configurations topped the list of requests. We think this is a great idea, so we're adding this as the first feature exclusive to insiders. 
 
- ✅ [Multiple OpenVPN client configs](https://docs.raspap.com/openvpn/#multiple-client-configs)  
- ✅ [OpenVPN certificate authentication](https://docs.raspap.com/openvpn/#certificate-authentication)  
- ✅ OpenVPN service logging  
- ✅ Night mode toggle  
- ✅ Restrict network to static clients  
- ✅ [WireGuard support](https://docs.raspap.com/wireguard/)  
-⚙️ Traffic shaping (in progress)  
+✅ [Multiple OpenVPN client configs](https://docs.raspap.com/openvpn/#multiple-client-configs)  
+✅ [OpenVPN certificate authentication](https://docs.raspap.com/openvpn/#certificate-authentication)  
+✅ OpenVPN service logging  
+✅ Night mode toggle  
+✅ Restrict network to static clients  
+✅ [WireGuard support](https://docs.raspap.com/wireguard/)  
+✅ [Set AP transmit power](https://docs.raspap.com/ap-basics/#transmit-power)  
 
 Look for the list above to grow as we add more exclusive features. 
 
@@ -35,13 +35,24 @@ The first **Insiders Edition** includes the exclusive features listed above.
 
 ### Frequently asked questions
 
+#### How do I install Insiders?
+*How do I install Insiders?*
+
+Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--insiders` switch, like so:
+
+```
+curl -sL https://install.raspap.com | bash -s -- --insiders
+```
+
+This will automatically pull from the private Insiders repo during the installation process.
+
 #### Upgrading
 *I have an existing RaspAP installation. How do I upgrade to Insiders?*
 
-Upgrading is easy. Simply invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--upgrade` switch, specifying the private Insiders repo, like so:
+Upgrading is easy. Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--upgrade` switch, specifying the private Insiders edition, like so:
 
 ```
-curl -sL https://install.raspap.com | bash -s -- --upgrade --repo raspap/raspap-insiders
+curl -sL https://install.raspap.com | bash -s -- --upgrade --insiders
 ```
 
 If you haven't [added SSH keys to your GitHub account](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) you will be prompted to authenticate. If so, just enter your GitHub credentials during the install:

From c8a9c05d3e66c1c92b8995054e463d335f41ef6c Mon Sep 17 00:00:00 2001
From: Bill Zimmerman 
Date: Thu, 29 Apr 2021 23:56:40 +0200
Subject: [PATCH 22/64] Add handler for wpa_reinit

---
 includes/configure_client.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/includes/configure_client.php b/includes/configure_client.php
index 1bfc1576..ae25eb98 100755
--- a/includes/configure_client.php
+++ b/includes/configure_client.php
@@ -19,6 +19,10 @@ function DisplayWPAConfig()
         $result = 0;
         exec('sudo wpa_cli -i ' . $_SESSION['wifi_client_interface'] . ' select_network '.strval($_POST['connect']));
         $status->addMessage('New network selected', 'success');
+    } elseif (isset($_POST['wpa_reinit'])) {
+        $force_remove=true;
+        $result = reinitializeWPA($force_remove);
+        $status->addMessage($result, 'info');
     } elseif (isset($_POST['client_settings'])) {
         $tmp_networks = $networks;
         if ($wpa_file = fopen('/tmp/wifidata', 'w')) {

From 3451efe132d76bde6fa56c5b4bddf7c536ef5c29 Mon Sep 17 00:00:00 2001
From: Bill Zimmerman 
Date: Thu, 29 Apr 2021 23:58:46 +0200
Subject: [PATCH 23/64] Create reinitializeWPA()

---
 includes/wifi_functions.php | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php
index 8296c57c..a241fa02 100755
--- a/includes/wifi_functions.php
+++ b/includes/wifi_functions.php
@@ -157,3 +157,18 @@ function getWifiInterface()
         } 
 }
 
+/*
+ * Reinitializes wpa_supplicant for the wifi client interface
+ *
+ * @param boolean $force
+ */
+function reinitializeWPA($force)
+{
+    if ($force == true) {
+        $cmd = escapeshellcmd("/bin/rm /var/run/wpa_supplicant/".$_SESSION['wifi_client_interface']);
+        $result = exec($cmd); 
+    }
+    $cmd = escapeshellcmd("sudo /sbin/wpa_supplicant -B -Dnl80211 -Dwext c/etc/wpa_supplicant/wpa_supplicant.conf -i". $_SESSION['wifi_client_interface']);
+    $result = shell_exec($cmd);
+    return $result;
+}

From 0bb9d6c1965668b5fc2ce113130a06fa1cb263af Mon Sep 17 00:00:00 2001
From: Bill Zimmerman 
Date: Fri, 30 Apr 2021 00:00:25 +0200
Subject: [PATCH 24/64] Update with /sbin/wpa_supplicant

---
 installers/raspap.sudoers | 1 +
 1 file changed, 1 insertion(+)

diff --git a/installers/raspap.sudoers b/installers/raspap.sudoers
index 00e1d1c7..8821f595 100644
--- a/installers/raspap.sudoers
+++ b/installers/raspap.sudoers
@@ -4,6 +4,7 @@ www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf
 www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
 www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf
 www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
+www-data ALL=(ALL) NOPASSWD:/sbin/wpa_supplicant -B -Dnl80211 -Dwext -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan[0-9]
 www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan_results
 www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan
 www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] reconfigure

From 79393c48d0471ac804677d40a169c670d1405eb7 Mon Sep 17 00:00:00 2001
From: Bill Zimmerman 
Date: Fri, 30 Apr 2021 00:05:19 +0200
Subject: [PATCH 25/64] Add reinitialize message on scan failure

---
 templates/wifi_stations.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php
index 2a6872cc..9f10ccdd 100755
--- a/templates/wifi_stations.php
+++ b/templates/wifi_stations.php
@@ -2,6 +2,7 @@
   

+

wpa_supplicant.') ?>

Date: Fri, 30 Apr 2021 08:37:41 +0100 Subject: [PATCH 26/64] Add status msg, update shell cmds --- includes/configure_client.php | 1 + includes/wifi_functions.php | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/includes/configure_client.php b/includes/configure_client.php index ae25eb98..b9677aa6 100755 --- a/includes/configure_client.php +++ b/includes/configure_client.php @@ -20,6 +20,7 @@ function DisplayWPAConfig() exec('sudo wpa_cli -i ' . $_SESSION['wifi_client_interface'] . ' select_network '.strval($_POST['connect'])); $status->addMessage('New network selected', 'success'); } elseif (isset($_POST['wpa_reinit'])) { + $status->addMessage('Re-initializing wpa_supplicant', 'info', false); $force_remove=true; $result = reinitializeWPA($force_remove); $status->addMessage($result, 'info'); diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index a241fa02..8cea0541 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -165,10 +165,11 @@ function getWifiInterface() function reinitializeWPA($force) { if ($force == true) { - $cmd = escapeshellcmd("/bin/rm /var/run/wpa_supplicant/".$_SESSION['wifi_client_interface']); - $result = exec($cmd); + $cmd = escapeshellcmd("sudo /bin/rm /var/run/wpa_supplicant/".$_SESSION['wifi_client_interface']); + $result = exec($cmd); } - $cmd = escapeshellcmd("sudo /sbin/wpa_supplicant -B -Dnl80211 -Dwext c/etc/wpa_supplicant/wpa_supplicant.conf -i". $_SESSION['wifi_client_interface']); + $cmd = escapeshellcmd("sudo /sbin/wpa_supplicant -B -Dnl80211 -c/etc/wpa_supplicant/wpa_supplicant.conf -i". $_SESSION['wifi_client_interface']); $result = shell_exec($cmd); return $result; } + From 56abf95c5b521ff862d43331959a4210d6774ff7 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 30 Apr 2021 08:38:16 +0100 Subject: [PATCH 27/64] Fixup sudoers for wpa_supplicant --- installers/raspap.sudoers | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/installers/raspap.sudoers b/installers/raspap.sudoers index 8821f595..60759f3d 100644 --- a/installers/raspap.sudoers +++ b/installers/raspap.sudoers @@ -4,7 +4,8 @@ www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf -www-data ALL=(ALL) NOPASSWD:/sbin/wpa_supplicant -B -Dnl80211 -Dwext -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan[0-9] +www-data ALL=(ALL) NOPASSWD:/sbin/wpa_supplicant -B -Dnl80211 -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan[0-9] +www-data ALL=(ALL) NOPASSWD:/bin/rm /var/run/wpa_supplicant/wlan[0-9] www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan_results www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] reconfigure From d1fdbd9f2589b0c17dafe3eff0ab1ad9ba4013c6 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 30 Apr 2021 08:38:49 +0100 Subject: [PATCH 28/64] Add wpa_reinit button to template --- templates/wifi_stations.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php index 9f10ccdd..7acfc7b5 100755 --- a/templates/wifi_stations.php +++ b/templates/wifi_stations.php @@ -2,7 +2,15 @@

-

wpa_supplicant.') ?>

+

wpa_supplicant.') ?>

+
+ + +
+ " /> +
+ +
Date: Fri, 30 Apr 2021 14:40:13 +0100 Subject: [PATCH 29/64] Update en_US messages --- locale/en_US/LC_MESSAGES/messages.mo | Bin 17365 -> 18097 bytes locale/en_US/LC_MESSAGES/messages.po | 15 +++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index 34d53bd3567d76aca246ffff641444300801299f..8cc789ef03e367f7633c868a0299a5a53e73ad8f 100644 GIT binary patch literal 18097 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 S_{Dw0pVR6W_5U9i_x}x#pMUQF diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 8ce1cf38..5191f9be 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -150,6 +150,21 @@ msgstr "Not configured" msgid "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgstr "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" +msgid "No Wifi stations found" +msgstr "No Wifi stations found" + +msgid "Re-initializing wpa_supplicant" +msgstr "Re-initializing wpa_supplicant" + +msgid "Click 'Rescan' to search for nearby Wifi stations." +msgstr "Click 'Rescan' to search for nearby Wifi stations." + +msgid "Click 'Reinitialize' to force reinitialize wpa_supplicant." +msgstr "Click 'Reinitialize' to force reinitialize wpa_supplicant." + +msgid "Reinitialize" +msgstr "Reinitialize" + #: includes/dashboard.php msgid "Interface Information" msgstr "Interface Information" From 3207ac75cd32589cd9ee485d294b13c927c7b6c7 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 30 Apr 2021 14:40:47 +0100 Subject: [PATCH 30/64] Minor: standardize labels --- templates/wifi_stations.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php index 7acfc7b5..01d66a07 100755 --- a/templates/wifi_stations.php +++ b/templates/wifi_stations.php @@ -1,8 +1,8 @@

-

-

wpa_supplicant.') ?>

+

+

wpa_supplicant.") ?>

From e5024c4c198619a561b2fc3a66267a2d967492c7 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 30 Apr 2021 17:24:45 +0100 Subject: [PATCH 31/64] Minor: fix labels + update en_US locale --- includes/configure_client.php | 4 ++-- includes/wifi_functions.php | 3 ++- locale/en_US/LC_MESSAGES/messages.mo | Bin 18097 -> 18095 bytes locale/en_US/LC_MESSAGES/messages.po | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/includes/configure_client.php b/includes/configure_client.php index b9677aa6..30e048ac 100755 --- a/includes/configure_client.php +++ b/includes/configure_client.php @@ -20,8 +20,8 @@ function DisplayWPAConfig() exec('sudo wpa_cli -i ' . $_SESSION['wifi_client_interface'] . ' select_network '.strval($_POST['connect'])); $status->addMessage('New network selected', 'success'); } elseif (isset($_POST['wpa_reinit'])) { - $status->addMessage('Re-initializing wpa_supplicant', 'info', false); - $force_remove=true; + $status->addMessage('Reinitializing wpa_supplicant', 'info', false); + $force_remove = true; $result = reinitializeWPA($force_remove); $status->addMessage($result, 'info'); } elseif (isset($_POST['client_settings'])) { diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 8cea0541..066a19ca 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -158,7 +158,8 @@ function getWifiInterface() } /* - * Reinitializes wpa_supplicant for the wifi client interface + * Reinitializes wpa_supplicant for the wireless client interface + * The 'force' parameter deletes the socket in /var/run/wpa_supplicant/ * * @param boolean $force */ diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index 8cc789ef03e367f7633c868a0299a5a53e73ad8f..f8c8410d8573853f422a16c742d3983656a0d5bc 100644 GIT binary patch delta 2982 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 F@-OlLPM81y diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 5191f9be..fac66b24 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -153,8 +153,8 @@ msgstr "Note: WEP access points appear as 'Open'. RaspAP does n msgid "No Wifi stations found" msgstr "No Wifi stations found" -msgid "Re-initializing wpa_supplicant" -msgstr "Re-initializing wpa_supplicant" +msgid "Reinitializing wpa_supplicant" +msgstr "Reinitializing wpa_supplicant" msgid "Click 'Rescan' to search for nearby Wifi stations." msgstr "Click 'Rescan' to search for nearby Wifi stations." From 3a41b52c1ddd199ac9c5c0ce09c4b50ded5b3817 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 1 May 2021 17:24:37 +0100 Subject: [PATCH 32/64] Update method to POST + escapeshellarg() --- ajax/networking/get_netcfg.php | 4 ++-- app/js/custom.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index 7e7b8fa7..8325b354 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -3,11 +3,11 @@ require '../../includes/csrf.php'; require_once '../../includes/config.php'; -$interface = $_GET['iface']; +$interface = $_POST['iface']; if (isset($interface)) { // fetch dnsmasq.conf settings for interface - exec('cat '. RASPI_DNSMASQ_PREFIX.$interface.'.conf', $return); + exec('cat '. RASPI_DNSMASQ_PREFIX.escapeshellarg($interface).'.conf', $return); $conf = ParseConfig($return); $dhcpdata['DHCPEnabled'] = empty($conf) ? false : true; diff --git a/app/js/custom.js b/app/js/custom.js index 13f0db92..0ffc1192 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -178,8 +178,8 @@ Populates the DHCP server form fields Option toggles are set dynamically depending on the loaded configuration */ function loadInterfaceDHCPSelect() { - var iface = $('#cbxdhcpiface').val(); - $.get('ajax/networking/get_netcfg.php?iface='+iface,function(data){ + var strInterface = $('#cbxdhcpiface').val(); + $.post('ajax/networking/get_netcfg.php',{iface:strInterface},function(data){ jsonData = JSON.parse(data); $('#dhcp-iface')[0].checked = jsonData.DHCPEnabled; $('#txtipaddress').val(jsonData.StaticIP); From 6bfb3a3c9d0ed2127ff7f5e0f25f06c29f706cb1 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 1 May 2021 17:46:53 +0100 Subject: [PATCH 33/64] Add escapeshellarg() for iwgetid interface --- includes/hostapd.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/includes/hostapd.php b/includes/hostapd.php index e364dd15..4d18ba9e 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -59,9 +59,8 @@ function DisplayHostAPDConfig() } } } - exec('cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig); - exec('iwgetid '. $_POST['interface']. ' -r', $wifiNetworkID); + exec('iwgetid '. escapeshellarg($_POST['interface']). ' -r', $wifiNetworkID); if (!empty($wifiNetworkID[0])) { $managedModeEnabled = true; } From 90aea4ca93ac5dddece5a442b810b0ed06318df7 Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 2 May 2021 07:02:30 +0100 Subject: [PATCH 34/64] Set locale for utf-8 support, remove mb_escapeshellarg (deprecated) --- app/img/wifi-qr-code.php | 3 ++- includes/functions.php | 13 ------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/app/img/wifi-qr-code.php b/app/img/wifi-qr-code.php index 21092f82..068e5f95 100644 --- a/app/img/wifi-qr-code.php +++ b/app/img/wifi-qr-code.php @@ -3,6 +3,7 @@ require_once '../../includes/config.php'; require_once '../../includes/defaults.php'; require_once '../../includes/functions.php'; +require_once '../../includes/locale.php'; // prevent direct file access if (!isset($_SERVER['HTTP_REFERER'])) { @@ -41,7 +42,7 @@ $ssid = qr_encode($ssid); $password = qr_encode($password); $data = "WIFI:S:$ssid;T:$type;P:$password;$hidden;"; -$command = "qrencode -t svg -m 0 -o - " . mb_escapeshellarg($data); +$command = "qrencode -t svg -m 0 -o - " . escapeshellarg($data); $svg = shell_exec($command); $config_mtime = filemtime(RASPI_HOSTAPD_CONFIG); diff --git a/includes/functions.php b/includes/functions.php index f1dec2c0..29f34136 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -518,19 +518,6 @@ function cache($key, $callback) } } -// insspired by -// http://markushedlund.com/dev/php-escapeshellarg-with-unicodeutf-8-support -function mb_escapeshellarg($arg) -{ - $isWindows = strtolower(substr(PHP_OS, 0, 3)) === 'win'; - if ($isWindows) { - $escaped_arg = str_replace(array('"', '%'), '', $arg); - } else { - $escaped_arg = str_replace("'", "'\\''", $arg); - } - return "\"$escaped_arg\""; -} - function dnsServers() { $data = json_decode(file_get_contents("./config/dns-servers.json")); From 4baac6eae2e94454db38113b9e0d4ec47fa19df8 Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 2 May 2021 07:15:12 +0100 Subject: [PATCH 35/64] Escape constant, arg + extension --- ajax/networking/get_netcfg.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index 8325b354..50bc637a 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -7,7 +7,7 @@ $interface = $_POST['iface']; if (isset($interface)) { // fetch dnsmasq.conf settings for interface - exec('cat '. RASPI_DNSMASQ_PREFIX.escapeshellarg($interface).'.conf', $return); + exec('cat '. escapeshellarg(RASPI_DNSMASQ_PREFIX.$interface.'.conf'), $return); $conf = ParseConfig($return); $dhcpdata['DHCPEnabled'] = empty($conf) ? false : true; From 6567f99c744c994badb824ff23335eda0ecf23f6 Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 2 May 2021 10:46:53 +0100 Subject: [PATCH 36/64] Restrict control scripts to root user, thx Omri Inbar --- installers/common.sh | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/installers/common.sh b/installers/common.sh index 7523fad5..64ac11a6 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -213,7 +213,7 @@ function _create_hostapd_scripts() { # Move service control shell scripts sudo cp "$webroot_dir/installers/"service*.sh "$raspap_dir/hostapd" || _install_status 1 "Unable to move service control scripts" # Make enablelog.sh and disablelog.sh not writable by www-data group. - sudo chown -c root:"$raspap_user" "$raspap_dir/hostapd/"*.sh || _install_status 1 "Unable change owner and/or group" + sudo chown -c root:root "$raspap_dir/hostapd/"*.sh || _install_status 1 "Unable change owner and/or group" sudo chmod 750 "$raspap_dir/hostapd/"*.sh || _install_status 1 "Unable to change file permissions" _install_status 0 } @@ -228,7 +228,7 @@ function _create_lighttpd_scripts() { sudo cp "$webroot_dir/installers/"configport.sh "$raspap_dir/lighttpd" || _install_status 1 "Unable to move service control scripts" # Make configport.sh writable by www-data group echo "Changing file ownership" - sudo chown -c root:"$raspap_user" "$raspap_dir/lighttpd/"*.sh || _install_status 1 "Unable change owner and/or group" + sudo chown -c root:root "$raspap_dir/lighttpd/"*.sh || _install_status 1 "Unable change owner and/or group" sudo chmod 750 "$raspap_dir/lighttpd/"*.sh || _install_status 1 "Unable to change file permissions" _install_status 0 } @@ -310,8 +310,9 @@ function _install_adblock() { echo "Moving and setting permissions for blocklist update script" sudo cp "$webroot_dir/installers/"update_blocklist.sh "$raspap_dir/adblock" || _install_status 1 "Unable to move blocklist update script" - # Make blocklists and update script writable by www-data group - sudo chown -c root:"$raspap_user" "$raspap_dir/adblock/"*.* || _install_status 1 "Unable to change owner/group" + # Make blocklists writable by www-data group, restrict update scripts to root + sudo chown -c root:"$raspap_user" "$raspap_dir/adblock/"*.txt || _install_status 1 "Unable to change owner/group" + sudo chown -c root:root "$raspap_dir/adblock/"*.sh || _install_status 1 "Unable to change owner/group" sudo chmod 750 "$raspap_dir/adblock/"*.sh || install_error "Unable to change file permissions" # Create 090_adblock.conf and write values to /etc/dnsmasq.d @@ -400,11 +401,11 @@ function _create_openvpn_scripts() { _install_log "Creating OpenVPN control scripts" sudo mkdir $raspap_dir/openvpn || _install_status 1 "Unable to create directory '$raspap_dir/openvpn'" - # Move service auth control & logging shell scripts + # Move service auth control & logging shell scripts sudo cp "$webroot_dir/installers/"configauth.sh "$raspap_dir/openvpn" || _install_status 1 "Unable to move auth control script" sudo cp "$webroot_dir/installers/"openvpnlog.sh "$raspap_dir/openvpn" || _install_status 1 "Unable to move logging script" - # Make scripts executable by www-data group - sudo chown -c root:"$raspap_user" "$raspap_dir/openvpn/"*.sh || _install_status 1 "Unable change owner and/or group" + # Restrict script execution to root user + sudo chown -c root:root "$raspap_dir/openvpn/"*.sh || _install_status 1 "Unable change owner and/or group" sudo chmod 750 "$raspap_dir/openvpn/"*.sh || _install_status 1 "Unable to change file permissions" _install_status 0 } @@ -490,9 +491,10 @@ function _move_config_file() { _install_status 1 "'$raspap_dir' directory doesn't exist" fi + # Copy config file and make writable by www-data group _install_log "Moving configuration file to $raspap_dir" sudo cp "$webroot_dir"/raspap.php "$raspap_dir" || _install_status 1 "Unable to move files to '$raspap_dir'" - sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || _install_status 1 "Unable to change file ownership for '$raspap_dir'" + sudo chown -c $raspap_user:"$raspap_user" "$raspap_dir"/raspap.php || _install_status 1 "Unable change owner and/or group" } # Set up default configuration @@ -506,8 +508,8 @@ function _default_configuration() { sudo cp $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || _install_status 1 "Unable to move dhcpcd configuration file" sudo cp $webroot_dir/config/defaults.json $raspap_network || _install_status 1 "Unable to move defaults.json settings" - echo "Changing file ownership of $raspap_dir" - sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || _install_status 1 "Unable to change file ownership for '$raspap_dir'" + echo "Changing file ownership of ${raspap_network}/defaults.json" + sudo chown $raspap_user:$raspap_user "$raspap_network"/defaults.json || _install_status 1 "Unable to change file ownership for defaults.json" echo "Checking for existence of /etc/dnsmasq.d" [ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d From d6b3304c01f0f5dbcf89f9aedcf2090cb9c329cc Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 2 May 2021 16:12:50 +0100 Subject: [PATCH 37/64] Apply dashboard widget layout to sysinfo --- templates/system/basic.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/templates/system/basic.php b/templates/system/basic.php index 1079c2b4..dd7fc278 100644 --- a/templates/system/basic.php +++ b/templates/system/basic.php @@ -8,9 +8,19 @@ include('includes/sysstats.php');

-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
Date: Tue, 4 May 2021 00:06:50 -0300 Subject: [PATCH 38/64] add second quad9 service address see https://www.quad9.net/service/service-addresses-and-features --- config/dns-servers.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/dns-servers.json b/config/dns-servers.json index bce86846..68af4244 100644 --- a/config/dns-servers.json +++ b/config/dns-servers.json @@ -22,7 +22,8 @@ "208.67.222.222" ], "Quad9": [ - "9.9.9.9" + "9.9.9.9", + "149.112.112.112" ], "Yandex.DNS": [ "77.88.8.2", From e76c31c9c681b563051869a328be0c1ee9dc240f Mon Sep 17 00:00:00 2001 From: glaszig Date: Thu, 6 May 2021 19:12:58 -0300 Subject: [PATCH 39/64] revert part of 3a41b52c to respect http method's purpose --- ajax/networking/get_netcfg.php | 2 +- app/js/custom.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index 50bc637a..78c0013e 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -3,7 +3,7 @@ require '../../includes/csrf.php'; require_once '../../includes/config.php'; -$interface = $_POST['iface']; +$interface = $_GET['iface']; if (isset($interface)) { // fetch dnsmasq.conf settings for interface diff --git a/app/js/custom.js b/app/js/custom.js index 0ffc1192..4bb85e07 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -179,7 +179,7 @@ Option toggles are set dynamically depending on the loaded configuration */ function loadInterfaceDHCPSelect() { var strInterface = $('#cbxdhcpiface').val(); - $.post('ajax/networking/get_netcfg.php',{iface:strInterface},function(data){ + $.get('ajax/networking/get_netcfg.php?iface='+strInterface,function(data){ jsonData = JSON.parse(data); $('#dhcp-iface')[0].checked = jsonData.DHCPEnabled; $('#txtipaddress').val(jsonData.StaticIP); From 3969db61b05fe910cb1264f04f421599e4a9e054 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 7 May 2021 11:33:17 +0100 Subject: [PATCH 40/64] Validate wpa_passphrase w/ ctype_print --- includes/hostapd.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/includes/hostapd.php b/includes/hostapd.php index 4d18ba9e..3a528068 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -212,11 +212,14 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) $good_input = false; } - if ($_POST['wpa'] !== 'none' - && (strlen($_POST['wpa_passphrase']) < 8 || strlen($_POST['wpa_passphrase']) > 63) - ) { + # NB: A pass-phrase is a sequence of between 8 and 63 ASCII-encoded characters (IEEE Std. 802.11i-2004) + # Each character in the pass-phrase must have an encoding in the range of 32 to 126 (decimal). (IEEE Std. 802.11i-2004, Annex H.4.1) + if ($_POST['wpa'] !== 'none' && (strlen($_POST['wpa_passphrase']) < 8 || strlen($_POST['wpa_passphrase']) > 63)) { $status->addMessage('WPA passphrase must be between 8 and 63 characters', 'danger'); $good_input = false; + } elseif (!ctype_print($_POST['wpa_passphrase'])) { + $status->addMessage('WPA passphrase must be comprised of printable ASCII characters', 'danger'); + $good_input = false; } if (isset($_POST['hiddenSSID'])) { From 45a50edc41c042c155cfc249cb376f4f3a62b2c4 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sat, 8 May 2021 14:24:15 -0300 Subject: [PATCH 41/64] use special multibyte shell escaping to support unicode ssid names with qr code --- app/img/wifi-qr-code.php | 2 +- includes/functions.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/img/wifi-qr-code.php b/app/img/wifi-qr-code.php index 068e5f95..c2505a9c 100644 --- a/app/img/wifi-qr-code.php +++ b/app/img/wifi-qr-code.php @@ -42,7 +42,7 @@ $ssid = qr_encode($ssid); $password = qr_encode($password); $data = "WIFI:S:$ssid;T:$type;P:$password;$hidden;"; -$command = "qrencode -t svg -m 0 -o - " . escapeshellarg($data); +$command = "qrencode -t svg -m 0 -o - " . mb_escapeshellarg($data); $svg = shell_exec($command); $config_mtime = filemtime(RASPI_HOSTAPD_CONFIG); diff --git a/includes/functions.php b/includes/functions.php index 29f34136..4f79870a 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -518,6 +518,18 @@ function cache($key, $callback) } } +// insspired by +// http://markushedlund.com/dev/php-escapeshellarg-with-unicodeutf-8-support +function mb_escapeshellarg($arg) +{ + $isWindows = strtolower(substr(PHP_OS, 0, 3)) === 'win'; + if ($isWindows) { + return '"' . str_replace(array('"', '%'), '', $arg) . '"'; + } else { + return "'" . str_replace("'", "'\\''", $arg) . "'"; + } +} + function dnsServers() { $data = json_decode(file_get_contents("./config/dns-servers.json")); From 947ccf70213f86dd2872c0be000d508c443f1d7d Mon Sep 17 00:00:00 2001 From: glaszig Date: Sat, 8 May 2021 14:29:59 -0300 Subject: [PATCH 42/64] add margin to wifi qr code to have it work with dark background (i.e. dark theme) --- app/img/wifi-qr-code.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/img/wifi-qr-code.php b/app/img/wifi-qr-code.php index c2505a9c..0abe1849 100644 --- a/app/img/wifi-qr-code.php +++ b/app/img/wifi-qr-code.php @@ -42,7 +42,7 @@ $ssid = qr_encode($ssid); $password = qr_encode($password); $data = "WIFI:S:$ssid;T:$type;P:$password;$hidden;"; -$command = "qrencode -t svg -m 0 -o - " . mb_escapeshellarg($data); +$command = "qrencode -t svg -m 1 -o - " . mb_escapeshellarg($data); $svg = shell_exec($command); $config_mtime = filemtime(RASPI_HOSTAPD_CONFIG); From a3814cdf71a412f3979a25025e9f79147d2407cb Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 8 May 2021 19:40:19 +0100 Subject: [PATCH 43/64] Wrap reinitialize w/ monitor mode condition --- templates/wifi_stations.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php index 01d66a07..f12c9f54 100755 --- a/templates/wifi_stations.php +++ b/templates/wifi_stations.php @@ -2,15 +2,15 @@

+

wpa_supplicant.") ?>

- - +
" />
- +
Date: Mon, 10 May 2021 07:49:16 +0100 Subject: [PATCH 44/64] Remove locale include (unused) --- app/img/wifi-qr-code.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/img/wifi-qr-code.php b/app/img/wifi-qr-code.php index 0abe1849..c87d0c16 100644 --- a/app/img/wifi-qr-code.php +++ b/app/img/wifi-qr-code.php @@ -3,7 +3,6 @@ require_once '../../includes/config.php'; require_once '../../includes/defaults.php'; require_once '../../includes/functions.php'; -require_once '../../includes/locale.php'; // prevent direct file access if (!isset($_SERVER['HTTP_REFERER'])) { From 5c442f185b432d9076ae1beabb3c55f802b54d8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 16:50:37 +0000 Subject: [PATCH 45/64] Bump lodash from 4.17.20 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0da79a7c..b0c07f19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2584,9 +2584,9 @@ lodash.templatesettings@^4.0.0: lodash._reinterpolate "^3.0.0" lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.15, lodash@~4.17.10: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loud-rejection@^1.0.0: version "1.6.0" From c47aeece4339403bd51d053466bb48d29ec7d9e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 May 2021 04:51:24 +0000 Subject: [PATCH 46/64] Bump hosted-git-info from 2.8.8 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0da79a7c..e471ba37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2010,9 +2010,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-errors@1.7.3: version "1.7.3" From 1c7f57467f433ae2ba9778b55226890079dcb68e Mon Sep 17 00:00:00 2001 From: glaszig Date: Tue, 11 May 2021 17:27:10 -0300 Subject: [PATCH 47/64] add missing css class to lightsout theme --- app/css/lightsout.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/css/lightsout.css b/app/css/lightsout.css index 2fd1d5b0..92123da4 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -421,6 +421,12 @@ pre { margin-bottom: 0.5em; } +.loading-spinner { + background: url("../../app/img/loading-spinner.gif") no-repeat scroll center center transparent; + min-height: 150px; + width: 100%; +} + .toggle-off.btn { padding-left: 1.2rem; font-size: 0.9rem!important; From 00131b052fca817c1ea9f52d8926f6f731b974cf Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 15 May 2021 09:05:07 +0100 Subject: [PATCH 48/64] Bugfix: unconditionally apply raspap.sudoers --- installers/common.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/installers/common.sh b/installers/common.sh index 64ac11a6..4701c5f3 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -585,12 +585,10 @@ function _configure_networking() { # Add sudoers file to /etc/sudoers.d/ and set file permissions function _patch_system_files() { - # Create sudoers if not present - if [ ! -f $raspap_sudoers ]; then - _install_log "Adding raspap.sudoers to ${raspap_sudoers}" - sudo cp "$webroot_dir/installers/raspap.sudoers" $raspap_sudoers || _install_status 1 "Unable to apply raspap.sudoers to $raspap_sudoers" - sudo chmod 0440 $raspap_sudoers || _install_status 1 "Unable to change file permissions for $raspap_sudoers" - fi + # Create sudoers + _install_log "Adding raspap.sudoers to ${raspap_sudoers}" + sudo cp "$webroot_dir/installers/raspap.sudoers" $raspap_sudoers || _install_status 1 "Unable to apply raspap.sudoers to $raspap_sudoers" + sudo chmod 0440 $raspap_sudoers || _install_status 1 "Unable to change file permissions for $raspap_sudoers" # Add symlink to prevent wpa_cli cmds from breaking with multiple wlan interfaces _install_log "Symlinked wpa_supplicant hooks for multiple wlan interfaces" From ced981639830b1d692377694d2265bce14277712 Mon Sep 17 00:00:00 2001 From: Bill Zimmerman Date: Thu, 20 May 2021 09:15:31 +0200 Subject: [PATCH 49/64] Update common.sh --- installers/common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installers/common.sh b/installers/common.sh index 4701c5f3..e7d02af8 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -377,7 +377,7 @@ function _install_wireguard() { echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list || _install_status 1 "Unable to add Debian backports repo" fi echo "Installing wireguard from apt" - sudo apt-get update && sudo apt-get install $apt_option wireguard || _install_status 1 "Unable to install wireguard" + sudo apt-get install -y wireguard || _install_status 1 "Unable to install wireguard" echo "Enabling wg-quick@wg0" sudo systemctl enable wg-quick@wg0 || _install_status 1 "Failed to enable wg-quick service" echo "Enabling WireGuard management option" From 9c6de8475250dd6628bff50de0281d616fc470cd Mon Sep 17 00:00:00 2001 From: Bill Zimmerman Date: Thu, 20 May 2021 10:10:44 +0200 Subject: [PATCH 50/64] Update config.php --- config/config.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/config.php b/config/config.php index 2c476b57..62199065 100755 --- a/config/config.php +++ b/config/config.php @@ -37,6 +37,7 @@ define('RASPI_NETWORK_ENABLED', true); define('RASPI_DHCP_ENABLED', true); define('RASPI_ADBLOCK_ENABLED', false); define('RASPI_OPENVPN_ENABLED', false); +define('RASPI_WIREGUARD_ENABLED', false); define('RASPI_TORPROXY_ENABLED', false); define('RASPI_CONFAUTH_ENABLED', true); define('RASPI_CHANGETHEME_ENABLED', true); From 261a89cab0f614f00f1aee0a01eed51284112ab7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 May 2021 17:27:45 +0000 Subject: [PATCH 51/64] Bump browserslist from 4.7.0 to 4.16.6 Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.7.0 to 4.16.6. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.7.0...4.16.6) Signed-off-by: dependabot[bot] --- yarn.lock | 55 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/yarn.lock b/yarn.lock index ac930665..a9f9bd4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -566,13 +566,15 @@ browser-sync@^2.26.7: yargs "6.4.0" browserslist@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" bs-recipes@1.3.4: version "1.3.4" @@ -642,10 +644,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30000998: - version "1.0.30000999" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43" - integrity sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg== +caniuse-lite@^1.0.30000998, caniuse-lite@^1.0.30001219: + version "1.0.30001228" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" + integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== caseless@~0.12.0: version "0.12.0" @@ -837,6 +839,11 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1171,10 +1178,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.247: - version "1.3.277" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.277.tgz#38b7b297f9b3f67ea900a965c1b11a555de526ec" - integrity sha512-Czmsrgng89DOgJlIknnw9bn5431QdtnUwGp5YYiPwU1DbZQUxCLF+rc1ZC09VNAdalOPcvH6AE8BaA0H5HjI/w== +electron-to-chromium@^1.3.723: + version "1.3.738" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.738.tgz#aec24b091c82acbfabbdcce08076a703941d17ca" + integrity sha512-vCMf4gDOpEylPSLPLSwAEsz+R3ShP02Y3cAKMZvTqule3XcPp7tgc/0ESI7IS6ZeyBlGClE50N53fIOkcIVnpw== emoji-regex@^7.0.1: version "7.0.3" @@ -1309,6 +1316,11 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2920,12 +2932,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.29: - version "1.1.34" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.34.tgz#ced4655ee1ba9c3a2c5dcbac385e19434155fd40" - integrity sha512-fNn12JTEfniTuCqo0r9jXgl44+KxRH/huV7zM/KAGOKxDKrHr6EbT7SSs4B+DNxyBE2mks28AD+Jw6PkfY5uwA== - dependencies: - semver "^6.3.0" +node-releases@^1.1.71: + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== node-sass@^4.8.3: version "4.14.1" @@ -3791,11 +3801,6 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" From 92e154fa6496eff2e12ea5055b3c42019778a551 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sun, 30 May 2021 21:49:05 +0100 Subject: [PATCH 52/64] interpret hex sequences in ssid station names resolves #917 --- includes/functions.php | 7 +++++++ includes/wifi_functions.php | 1 + 2 files changed, 8 insertions(+) diff --git a/includes/functions.php b/includes/functions.php index 4f79870a..0e8336b8 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -641,3 +641,10 @@ function validate_host($host) { return preg_match('/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i', $host); } +function evalHexSequence($string) { + $evaluator = function ($input) { + return hex2bin($input[1]); + }; + return preg_replace_callback('/\\\x(..)/', $evaluator, $string); +} + diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 066a19ca..3f4ddd79 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -75,6 +75,7 @@ function nearbyWifiStations(&$networks, $cached = true) } $ssid = trim($arrNetwork[4]); + $ssid = evalHexSequence($ssid); // filter SSID string: anything invisible in 7bit ASCII or quotes -> ignore network if (preg_match('[\x00-\x1f\x7f-\xff\'\`\´\"]', $ssid)) { continue; From fe3b8a108eedefbcf0a1fad4e59758b1fc8a0962 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sun, 30 May 2021 21:56:10 +0100 Subject: [PATCH 53/64] properly exclude raspap station from found wifi stations --- includes/wifi_functions.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 3f4ddd79..cbd4fc72 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -69,13 +69,15 @@ function nearbyWifiStations(&$networks, $cached = true) foreach (explode("\n", $scan_results) as $network) { $arrNetwork = preg_split("/[\t]+/", $network); // split result into array - if (!array_key_exists(4, $arrNetwork) || - trim($arrNetwork[4]) == $ap_ssid) { - continue; - } $ssid = trim($arrNetwork[4]); $ssid = evalHexSequence($ssid); + + // exclude raspap ssid + if (empty($ssid) || $ssid == $ap_ssid) { + continue; + } + // filter SSID string: anything invisible in 7bit ASCII or quotes -> ignore network if (preg_match('[\x00-\x1f\x7f-\xff\'\`\´\"]', $ssid)) { continue; From a4d5cc1af6e5b4e1d378ae0b4d870465a76877e2 Mon Sep 17 00:00:00 2001 From: billz Date: Mon, 31 May 2021 10:49:02 +0100 Subject: [PATCH 54/64] Remove extended ASCII ISO Latin-1 printable chars from filter --- includes/wifi_functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index cbd4fc72..411c1cff 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -78,8 +78,8 @@ function nearbyWifiStations(&$networks, $cached = true) continue; } - // filter SSID string: anything invisible in 7bit ASCII or quotes -> ignore network - if (preg_match('[\x00-\x1f\x7f-\xff\'\`\´\"]', $ssid)) { + // filter SSID string: unprintable 7bit ASCII control codes, delete or quotes -> ignore network + if (preg_match('[\x00-\x1f\x7f\'\`\´\"]', $ssid)) { continue; } From 9dc1f14ccb20968fd1c2c37a1765db223197c059 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sun, 30 May 2021 19:46:10 -0300 Subject: [PATCH 55/64] separate connected from known from nearby wifi stations in ui --- ajax/networking/wifi_stations.php | 6 +- app/css/custom.php | 11 +++ app/css/hackernews.css | 12 ++- app/css/lightsout.css | 13 ++- includes/wifi_functions.php | 3 + templates/configure_client.php | 4 +- templates/wifi_stations.php | 127 +++++++--------------------- templates/wifi_stations/network.php | 83 ++++++++++++++++++ 8 files changed, 157 insertions(+), 102 deletions(-) create mode 100644 templates/wifi_stations/network.php diff --git a/ajax/networking/wifi_stations.php b/ajax/networking/wifi_stations.php index 37d662ff..aca5bc89 100644 --- a/ajax/networking/wifi_stations.php +++ b/ajax/networking/wifi_stations.php @@ -15,4 +15,8 @@ nearbyWifiStations($networks, !isset($_REQUEST["refresh"])); connectedWifiStations($networks); sortNetworksByRSSI($networks); -echo renderTemplate('wifi_stations', compact('networks'), true); +$connected = array_filter($networks, function($n) { return $n['connected']; } ); +$known = array_filter($networks, function($n) { return !$n['connected'] && $n['configured']; } ); +$nearby = array_filter($networks, function($n) { return !$n['configured']; } ); + +echo renderTemplate('wifi_stations', compact('networks', 'connected', 'known', 'nearby'), true); diff --git a/app/css/custom.php b/app/css/custom.php index 273a9629..167b4473 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -16,6 +16,10 @@ body { color: #212529; } +.h-underlined { + border-bottom: 1px solid #343434; +} + .page-header { margin: 20px 0 20px; } @@ -193,6 +197,13 @@ pre.unstyled { .js-reload-wifi-stations { min-width: 10rem; } +.card-deck--wifi-stations { + justify-content: space-between; +} +.card-deck--wifi-stations .card { + flex: 0 46%; + margin-bottom: .75rem; +} .sidebar.toggled .nav-item .nav-link span { display: none; diff --git a/app/css/hackernews.css b/app/css/hackernews.css index 6d065e80..d7c1695f 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -8,7 +8,6 @@ License: GNU General Public License v3.0 html * { font-family: Verdana, Geneva, sans-serif; - font-size: 0.9rem; color: #828282; } @@ -34,6 +33,10 @@ h5.card-title { color: #212529; } +.h-underlined { + border-bottom: 1px solid #343434; +} + .card, .modal-dialog { border-radius: 1px; border-color: #ff6600; @@ -226,6 +229,13 @@ pre.unstyled { .js-reload-wifi-stations { min-width: 10rem; } +.card-deck--wifi-stations { + justify-content: space-between; +} +.card-deck--wifi-stations .card { + flex: 0 46%; + margin-bottom: .75rem; +} .sidebar.toggled .nav-item .nav-link { text-align: center; diff --git a/app/css/lightsout.css b/app/css/lightsout.css index 92123da4..ea213711 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -8,7 +8,6 @@ License: GNU General Public License v3.0 html * { font-family: Helvetica,Arial,sans-serif; - font-size: 1.0rem; color: #afafaf; } @@ -24,6 +23,10 @@ h5.card-title { font-size: 1.2rem; } +.h-underlined { + border-bottom: 1px solid #343434; +} + .page-header { padding: 0 20px; border-left: .01rem solid #d2d2d2; @@ -427,6 +430,14 @@ pre { width: 100%; } +.card-deck--wifi-stations { + justify-content: space-between; +} +.card-deck--wifi-stations .card { + flex: 0 46%; + margin-bottom: .75rem; +} + .toggle-off.btn { padding-left: 1.2rem; font-size: 0.9rem!important; diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 411c1cff..b7b543df 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -18,6 +18,7 @@ function knownWifiStations(&$networks) switch (strtolower($lineArr[0])) { case 'ssid': $ssid = trim($lineArr[1], '"'); + $network['ssid'] = $ssid; break; case 'psk': if (array_key_exists('passphrase', $network)) { @@ -83,6 +84,8 @@ function nearbyWifiStations(&$networks, $cached = true) continue; } + $networks[$ssid]['ssid'] = $ssid; + // If network is saved if (array_key_exists($ssid, $networks)) { $networks[$ssid]['visible'] = true; diff --git a/templates/configure_client.php b/templates/configure_client.php index 21a23a75..21a3e2a0 100755 --- a/templates/configure_client.php +++ b/templates/configure_client.php @@ -24,10 +24,10 @@
-
+ -
+
diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php index f12c9f54..56bf0a71 100755 --- a/templates/wifi_stations.php +++ b/templates/wifi_stations.php @@ -1,4 +1,4 @@ - +

@@ -12,103 +12,36 @@
- + + -
- $network) : ?> -
-
-
- - -
-
-
- - - - - - - -
+ +

+
+ + + + +
+ -
-
- - - - X - -
- -
-
- = -200) { - echo htmlspecialchars($network['RSSI'], ENT_QUOTES); - echo "dB ("; - if ($network['RSSI'] >= -50) { - echo 100; - } elseif ($network['RSSI'] <= -100) { - echo 0; - } else { - echo 2*($network['RSSI'] + 100); - } - echo "%)"; - } else { - echo " not found "; - } - ?> -
- - - - - - -
-
- -
-
-
- - - - -
- -
- -
-
- -
- - " id="update" name="update" data-toggle="modal" data-target="#configureClientModal" /> - - - " id="update" name="update" data-toggle="modal" data-target="#configureClientModal" /> - - " name="delete" data-toggle="modal" data-target="#configureClientModal" /> -
-
-
-
- - -
+ +

+
+ + + + +
+ + +

+
+ + + + +
+ diff --git a/templates/wifi_stations/network.php b/templates/wifi_stations/network.php new file mode 100644 index 00000000..e0a9684c --- /dev/null +++ b/templates/wifi_stations/network.php @@ -0,0 +1,83 @@ +
+
+ + +
+ +
+
+ + + + + + + +
+ +
+
+ + + + X + +
+ +
+
+ = -200) { + echo htmlspecialchars($network['RSSI'], ENT_QUOTES); + echo "dB ("; + if ($network['RSSI'] >= -50) { + echo 100; + } elseif ($network['RSSI'] <= -100) { + echo 0; + } else { + echo 2*($network['RSSI'] + 100); + } + echo "%)"; + } else { + echo " not found "; + } + ?> +
+ + + + + + +
+
+ +
+
+
+ + + + +
+ +
+ +
+
+ +
+ + " id="update" name="update" data-toggle="modal" data-target="#configureClientModal" /> + + + " id="update" name="update" data-toggle="modal" data-target="#configureClientModal" /> + + " name="delete" data-toggle="modal" data-target="#configureClientModal" /> +
+
+
From 807a591504642fcb8fcd5e986f00006c11a44074 Mon Sep 17 00:00:00 2001 From: glaszig Date: Sun, 30 May 2021 20:56:05 -0300 Subject: [PATCH 56/64] remove unnecessary function calls --- includes/configure_client.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/includes/configure_client.php b/includes/configure_client.php index 30e048ac..540f0fef 100755 --- a/includes/configure_client.php +++ b/includes/configure_client.php @@ -98,10 +98,6 @@ function DisplayWPAConfig() } } - nearbyWifiStations($networks); - connectedWifiStations($networks); - sortNetworksByRSSI($networks); - $clientInterface = $_SESSION['wifi_client_interface']; exec('ip a show '.$clientInterface, $stdoutIp); From d9212737e5923296b347b23c3f59f8e9aa4ab609 Mon Sep 17 00:00:00 2001 From: glaszig Date: Tue, 1 Jun 2021 02:34:59 +0100 Subject: [PATCH 57/64] fix layout issues, mainly margins and centering --- app/css/custom.php | 4 ---- app/css/hackernews.css | 4 ---- app/css/lightsout.css | 1 - templates/configure_client.php | 22 +++++++++++++--------- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/app/css/custom.php b/app/css/custom.php index 167b4473..ae3049c2 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -36,7 +36,6 @@ body { .row { margin-left: 0rem; margin-right: 0rem; } .col-lg-12 { padding-right: 0.25rem; padding-left: 0.25rem; } .form-group.col-md-6 { margin-left: -0.5rem; } - .js-wifi-stations { margin-left: -0.5rem; margin-right: -0.5rem; } h4.mt-3 { margin-left: 0.5rem; } } @@ -194,9 +193,6 @@ pre.unstyled { width: 100%; } -.js-reload-wifi-stations { - min-width: 10rem; -} .card-deck--wifi-stations { justify-content: space-between; } diff --git a/app/css/hackernews.css b/app/css/hackernews.css index d7c1695f..395794b5 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -115,7 +115,6 @@ ul.nav-tabs, .nav-tabs .nav-link { .row { margin-left: 0rem; margin-right: 0rem; } .col-lg-12 { padding-right: 0.25rem; padding-left: 0.25rem; } .form-group.col-md-6 { margin-left: -0.5rem; } - .js-wifi-stations { margin-left: -0.5rem; margin-right: -0.5rem; } h4.mt-3 { margin-left: 0.5rem; } } @@ -226,9 +225,6 @@ pre.unstyled { width: 100%; } -.js-reload-wifi-stations { - min-width: 10rem; -} .card-deck--wifi-stations { justify-content: space-between; } diff --git a/app/css/lightsout.css b/app/css/lightsout.css index ea213711..aea36af0 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -57,7 +57,6 @@ h5.card-title { .row { margin-left: 0rem; margin-right: 0rem; } .col-lg-12 { padding-right: 0.25rem; padding-left: 0.25rem; } .form-group.col-md-6 { margin-left: -0.5rem; } - .js-wifi-stations { margin-left: -0.5rem; margin-right: -0.5rem; } h4.mt-3 { margin-left: 0.5rem; } } diff --git a/templates/configure_client.php b/templates/configure_client.php index 21a3e2a0..3ac2ff0e 100755 --- a/templates/configure_client.php +++ b/templates/configure_client.php @@ -16,19 +16,23 @@
showMessages(); ?> -
+
-

+

-
- +
+ +
+
+
+
+
+ + +
+
-
- - -
-
From d711acb52d9cd307031d7c34426978cb360faa1d Mon Sep 17 00:00:00 2001 From: glaszig Date: Tue, 1 Jun 2021 03:01:10 +0100 Subject: [PATCH 58/64] use css grid for wifi stations layout (better width equality) --- app/css/custom.php | 12 ++++++------ app/css/hackernews.css | 12 ++++++------ app/css/lightsout.css | 12 ++++++------ templates/wifi_stations.php | 6 +++--- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/css/custom.php b/app/css/custom.php index ae3049c2..3d82d7f9 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -193,12 +193,12 @@ pre.unstyled { width: 100%; } -.card-deck--wifi-stations { - justify-content: space-between; -} -.card-deck--wifi-stations .card { - flex: 0 46%; - margin-bottom: .75rem; +@media (min-width: 576px) { + .card-grid { + display: grid; + grid-template-columns: minmax(0, 1fr) 50%; + grid-gap: 1rem; + } } .sidebar.toggled .nav-item .nav-link span { diff --git a/app/css/hackernews.css b/app/css/hackernews.css index 395794b5..e2cf7ede 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -225,12 +225,12 @@ pre.unstyled { width: 100%; } -.card-deck--wifi-stations { - justify-content: space-between; -} -.card-deck--wifi-stations .card { - flex: 0 46%; - margin-bottom: .75rem; +@media (min-width: 576px) { + .card-grid { + display: grid; + grid-template-columns: minmax(0, 1fr) 50%; + grid-gap: 1rem; + } } .sidebar.toggled .nav-item .nav-link { diff --git a/app/css/lightsout.css b/app/css/lightsout.css index aea36af0..7f6fc555 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -429,12 +429,12 @@ pre { width: 100%; } -.card-deck--wifi-stations { - justify-content: space-between; -} -.card-deck--wifi-stations .card { - flex: 0 46%; - margin-bottom: .75rem; +@media (min-width: 576px) { + .card-grid { + display: grid; + grid-template-columns: minmax(0, 1fr) 50%; + grid-gap: 1rem; + } } .toggle-off.btn { diff --git a/templates/wifi_stations.php b/templates/wifi_stations.php index 56bf0a71..6949a51a 100755 --- a/templates/wifi_stations.php +++ b/templates/wifi_stations.php @@ -18,7 +18,7 @@

-
+
@@ -28,7 +28,7 @@

-
+
@@ -38,7 +38,7 @@

-
+
From ba438faaa2c203e79d2e20bcd3b553ad9f2e562c Mon Sep 17 00:00:00 2001 From: glaszig Date: Tue, 1 Jun 2021 03:26:46 +0100 Subject: [PATCH 59/64] fix service status vertical alignment --- app/css/custom.php | 1 + app/css/hackernews.css | 1 + app/css/lightsout.css | 9 ++++----- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/css/custom.php b/app/css/custom.php index 3d82d7f9..dd8c31da 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -144,6 +144,7 @@ i.fa.fa-bars:hover{ .service-status { border-width: 0; + align-items: center; } .service-status-up { diff --git a/app/css/hackernews.css b/app/css/hackernews.css index e2cf7ede..50e203cb 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -178,6 +178,7 @@ ul.nav-tabs, .nav-tabs .nav-link { .service-status { border-width: 0; + align-items: center; } .service-status-up { diff --git a/app/css/lightsout.css b/app/css/lightsout.css index 7f6fc555..d1e14f3e 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -377,11 +377,6 @@ tspan, rect { fill: #d2d2d2; } -span.text.service-status { - font-size: 0.75rem; - margin-top: 0.2rem; -} - .text-muted { font-size: 0.8rem; } @@ -390,6 +385,10 @@ span.text.service-status { font-size: 0.5rem; } +.service-status { + align-items: center; +} + .service-status-up { color: #a1ec38 !important; } From c832b46e4fd3b821d3c72df371499cfa7677ae42 Mon Sep 17 00:00:00 2001 From: glaszig Date: Tue, 1 Jun 2021 03:27:28 +0100 Subject: [PATCH 60/64] fix card-header content items alignments and heading text wrap --- templates/configure_client.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/configure_client.php b/templates/configure_client.php index 3ac2ff0e..aeca17bd 100755 --- a/templates/configure_client.php +++ b/templates/configure_client.php @@ -2,7 +2,7 @@
-
+
@@ -18,7 +18,7 @@ showMessages(); ?>
-

+

From ac6f31fa22ee33b2ae8f9998cfc6bdb12f16b395 Mon Sep 17 00:00:00 2001 From: billz Date: Tue, 1 Jun 2021 14:31:38 +0100 Subject: [PATCH 61/64] Adjust hr color + padding --- app/css/custom.php | 3 ++- app/css/hackernews.css | 3 ++- app/css/lightsout.css | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/css/custom.php b/app/css/custom.php index dd8c31da..cec2f96b 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -17,7 +17,8 @@ body { } .h-underlined { - border-bottom: 1px solid #343434; + border-bottom: 1px solid #e3e6f0; + padding-bottom: 0.3rem; } .page-header { diff --git a/app/css/hackernews.css b/app/css/hackernews.css index 50e203cb..9b3abcf4 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -34,7 +34,8 @@ h5.card-title { } .h-underlined { - border-bottom: 1px solid #343434; + border-bottom: 1px solid #e3e6f0; + padding-bottom: 0.3rem; } .card, .modal-dialog { diff --git a/app/css/lightsout.css b/app/css/lightsout.css index d1e14f3e..aa42b720 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -24,7 +24,8 @@ h5.card-title { } .h-underlined { - border-bottom: 1px solid #343434; + border-bottom: 1px solid #e3e6f0; + padding-bottom: 0.3rem; } .page-header { From b5a1d12f1c172f5529707a9c4674fc706ce85762 Mon Sep 17 00:00:00 2001 From: billz Date: Tue, 1 Jun 2021 14:32:15 +0100 Subject: [PATCH 62/64] Update en_US locale w/ new messages --- locale/en_US/LC_MESSAGES/messages.po | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index fac66b24..1a808ead 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -147,6 +147,15 @@ msgstr "Hide" msgid "Not configured" msgstr "Not configured" +msgid "Connected" +msgstr "Connected" + +msgid "Known" +msgstr "Known" + +msgid "Nearby" +msgstr "Nearby" + msgid "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgstr "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" From 04fc73326bdbafe02b0312eb09097cb5eb5277de Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 5 Jun 2021 08:10:43 +0100 Subject: [PATCH 63/64] Update release version --- README.md | 2 +- app/img/insiders.png | Bin 4122 -> 7949 bytes includes/defaults.php | 2 +- index.php | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fbc2912d..5a52f8ff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/xeKD93p.png) -[![Release 2.6.5](https://img.shields.io/badge/release-v2.6.5-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.6.6](https://img.shields.io/badge/release-v2.6.6-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. diff --git a/app/img/insiders.png b/app/img/insiders.png index b29574f747ee8e91a9331bdf14cd7b36554bc086..6ad27f35e857da0d80e0ec2842480f21f15be33b 100644 GIT binary patch literal 7949 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 literal 4122 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 diff --git a/includes/defaults.php b/includes/defaults.php index e1950547..b2af725f 100755 --- a/includes/defaults.php +++ b/includes/defaults.php @@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) { $defaults = [ 'RASPI_BRAND_TEXT' => 'RaspAP', - 'RASPI_VERSION' => '2.6.5', + 'RASPI_VERSION' => '2.6.6', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0', diff --git a/index.php b/index.php index 0ae99e6b..e9fadf67 100755 --- a/index.php +++ b/index.php @@ -14,7 +14,7 @@ * @author Lawrence Yau * @author Bill Zimmerman * @license GNU General Public License, version 3 (GPL-3.0) - * @version 2.6.5 + * @version 2.6.6 * @link https://github.com/raspap/raspap-webgui/ * @link https://raspap.com/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/ From 9dd88b10efc3cab26a868d06d7aaa77799312ebc Mon Sep 17 00:00:00 2001 From: Werner Date: Sat, 5 Jun 2021 09:41:52 +0200 Subject: [PATCH 64/64] Update URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a52f8ff..6c3ed544 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ RaspAP was originally made for Raspbian, but now also installs on the following | Distribution | Release | Architecture | Support | |---|:---:|:---:|:---:| | Raspberry Pi OS | (32-bit) Lite Buster | ARM | Official | -| Armbian | Buster | [ARM](https://docs.armbian.com/#supported-chips) | Official | +| Armbian | Buster | [ARM](https://docs.armbian.com/#supported-socs) | Official | | Debian | Buster | ARM / x86_64 | Beta | | Ubuntu | 18.04 LTS / 19.10 | ARM / x86_64 | Beta |