From: Michael Tremer Date: Wed, 24 Apr 2024 21:20:48 +0000 (+0200) Subject: wireguard.cgi: Implement deleting peers X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b57617edafdfa2fd057c5902ed3b5f9dc6558ec5;p=ipfire-2.x.git wireguard.cgi: Implement deleting peers Signed-off-by: Michael Tremer --- diff --git a/doc/language_issues.de b/doc/language_issues.de index aab299e46..72f926b64 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -1045,6 +1045,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: winbind daemon = Winbind Daemon WARNING: untranslated string: wio = unknown string WARNING: untranslated string: wio checked = unknown string diff --git a/doc/language_issues.en b/doc/language_issues.en index e02932ddf..52e2b00f0 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -2152,6 +2152,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_issues.es b/doc/language_issues.es index 27a9e70ff..be5eca549 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -1112,6 +1112,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: wio = unknown string WARNING: untranslated string: wio checked = unknown string diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 71ce590f6..9559a95ed 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -1052,6 +1052,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: wio = unknown string WARNING: untranslated string: wio checked = unknown string diff --git a/doc/language_issues.it b/doc/language_issues.it index 758052575..b6a3d5bd5 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -1398,6 +1398,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 3db861472..b77ea2fef 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -1419,6 +1419,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 5674d7be1..c8a289b6f 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -1661,6 +1661,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 795bfe79f..39e48fdfe 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -1654,6 +1654,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_issues.tr b/doc/language_issues.tr index c515f0af3..e05c2bee3 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -1281,6 +1281,7 @@ WARNING: untranslated string: wg invalid remote subnet = Invalid remote subnet WARNING: untranslated string: wg name is already used = The name is already in use WARNING: untranslated string: wg no local subnets = No local subnets given WARNING: untranslated string: wg no remote subnets = No remote subnets given +WARNING: untranslated string: wg peer does not exist = Peer does not exist WARNING: untranslated string: whitelisted = Whitelisted WARNING: untranslated string: whois results from = WHOIS results from WARNING: untranslated string: winbind daemon = Winbind Daemon diff --git a/doc/language_missings b/doc/language_missings index 2c4b864ae..797b72348 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -126,6 +126,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < winbind daemon < wireguard < wlanap 802.11w disabled @@ -206,6 +207,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < wireguard < wlanap @@ -264,6 +266,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < wireguard < wlanap hide ssid @@ -776,6 +779,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < whois results from < winbind daemon @@ -1364,6 +1368,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < whois results from < winbind daemon @@ -2368,6 +2373,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < whois results from < winbind daemon @@ -3409,6 +3415,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < whois results from < winbind daemon @@ -3827,6 +3834,7 @@ < wg name is already used < wg no local subnets < wg no remote subnets +< wg peer does not exist < whitelisted < whois results from < winbind daemon diff --git a/html/cgi-bin/wireguard.cgi b/html/cgi-bin/wireguard.cgi index 40ff611d7..fb0fcd5de 100644 --- a/html/cgi-bin/wireguard.cgi +++ b/html/cgi-bin/wireguard.cgi @@ -83,12 +83,34 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{'save'}) { &General::system("/usr/local/bin/wireguardctrl", "stop"); } +# Delete an existing peer +} elsif ($cgiparams{"ACTION"} eq $Lang::tr{'remove'}) { + my $key = $cgiparams{'KEY'}; + + # Fail if the peer does not exist + unless (exists $peers{$key}) { + push(@errormessages, $Lang::tr{'wg peer does not exist'}); + goto MAIN; + } + + # Delete the peer + delete($peers{$key}); + + # Store the configuration + &General::writehasharray("/var/ipfire/wireguard/peers", \%peers); + + # Reload if enabled + if ($settings{'ENABLED'} eq "on") { + &General::system("/usr/local/bin/wireguardctrl", "reload"); + } + # Edit an existing peer } elsif ($cgiparams{"ACTION"} eq $Lang::tr{'edit'}) { my $key = $cgiparams{'KEY'}; # Fail if the peer does not exist unless (exists $peers{$key}) { + push(@errormessages, $Lang::tr{'wg peer does not exist'}); goto MAIN; } diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 7b836f07a..35fe20c10 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -3049,6 +3049,7 @@ 'wg name is already used' => 'The name is already in use', 'wg no local subnets' => 'No local subnets given', 'wg no remote subnets' => 'No remote subnets given', +'wg peer does not exist' => 'Peer does not exist', 'whitelisted' => 'Whitelisted', 'whois results from' => 'WHOIS results from', 'wildcards' => 'Wildcards',