mirror of
https://github.com/opnsense/plugins.git
synced 2026-04-27 09:10:01 -04:00
Merge 4919715d74 into d1ebcc49ad
This commit is contained in:
commit
29b8531bc6
6 changed files with 90 additions and 2 deletions
|
|
@ -105,6 +105,10 @@ class NetworkController extends ApiMutableModelControllerBase
|
|||
$mdlZerotier->serializeToConfig();
|
||||
Config::getInstance()->save();
|
||||
$result["result"] = "saved";
|
||||
$this->setZerotierNetwork($network->networkId, 'allowManaged', $network->allowManaged);
|
||||
$this->setZerotierNetwork($network->networkId, 'allowGlobal', $network->allowGlobal);
|
||||
$this->setZerotierNetwork($network->networkId, 'allowDefault', $network->allowDefault);
|
||||
$this->setZerotierNetwork($network->networkId, 'allowDNS', $network->allowDNS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -192,8 +196,10 @@ class NetworkController extends ApiMutableModelControllerBase
|
|||
|
||||
private function toggleZerotierNetwork($networkId, $enabled)
|
||||
{
|
||||
$backend = new Backend();
|
||||
$backend->configdRun("template reload OPNsense/zerotier");
|
||||
$action = $enabled ? 'join' : 'leave';
|
||||
return trim((new Backend())->configdRun("zerotier $action $networkId"));
|
||||
return trim($backend->configdpRun("zerotier", [$action, $networkId]));
|
||||
}
|
||||
|
||||
private function listZerotierNetwork($networkId)
|
||||
|
|
@ -207,4 +213,9 @@ class NetworkController extends ApiMutableModelControllerBase
|
|||
}
|
||||
return gettext("Unable to obtain Zerotier information for network") . " " . $networkId . "! " . gettext("Is the network enabled?");
|
||||
}
|
||||
|
||||
private function setZerotierNetwork($networkId, $setting, $value)
|
||||
{
|
||||
return trim((new Backend())->configdpRun("zerotier", ["set", $networkId, $setting, $value]));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,4 +11,48 @@
|
|||
<type>text</type>
|
||||
<help>Local Description to help identify this network</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>network.allowManaged</id>
|
||||
<label>Allow Managed</label>
|
||||
<type>checkbox</type>
|
||||
<help>Allow ZeroTier to set IP Addresses and Routes (local/private ranges only)</help>
|
||||
<grid_view>
|
||||
<visible>false</visible>
|
||||
<type>boolean</type>
|
||||
<formatter>boolean</formatter>
|
||||
</grid_view>
|
||||
</field>
|
||||
<field>
|
||||
<id>network.allowGlobal</id>
|
||||
<label>Allow Global</label>
|
||||
<type>checkbox</type>
|
||||
<help>Allow ZeroTier to set Global/Public/Not-Private range IPs and Routes</help>
|
||||
<grid_view>
|
||||
<visible>false</visible>
|
||||
<type>boolean</type>
|
||||
<formatter>boolean</formatter>
|
||||
</grid_view>
|
||||
</field>
|
||||
<field>
|
||||
<id>network.allowDefault</id>
|
||||
<label>Allow Default</label>
|
||||
<type>checkbox</type>
|
||||
<help>Allow ZeroTier to set the Default Route on the system</help>
|
||||
<grid_view>
|
||||
<visible>false</visible>
|
||||
<type>boolean</type>
|
||||
<formatter>boolean</formatter>
|
||||
</grid_view>
|
||||
</field>
|
||||
<field>
|
||||
<id>network.allowDNS</id>
|
||||
<label>Allow DNS</label>
|
||||
<type>checkbox</type>
|
||||
<help>Allow ZeroTier to set DNS servers</help>
|
||||
<grid_view>
|
||||
<visible>false</visible>
|
||||
<type>boolean</type>
|
||||
<formatter>boolean</formatter>
|
||||
</grid_view>
|
||||
</field>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<model>
|
||||
<mount>//OPNsense/zerotier</mount>
|
||||
<description>Zerotier configuration</description>
|
||||
<version>1.3.0</version>
|
||||
<version>1.3.1</version>
|
||||
<items>
|
||||
<enabled type="BooleanField">
|
||||
<Default>0</Default>
|
||||
|
|
@ -19,6 +19,22 @@
|
|||
<Required>Y</Required>
|
||||
</networkId>
|
||||
<description type="TextField"/>
|
||||
<allowManaged type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</allowManaged>
|
||||
<allowGlobal type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</allowGlobal>
|
||||
<allowDefault type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</allowDefault>
|
||||
<allowDNS type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</allowDNS>
|
||||
</network>
|
||||
</networks>
|
||||
</items>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,12 @@ parameters: leave %s
|
|||
type:script_output
|
||||
message:Leaving Zerotier Network
|
||||
|
||||
[set]
|
||||
command:/usr/local/bin/zerotier-cli
|
||||
parameters: set %s %s=%s
|
||||
type:script_output
|
||||
message:Setting Zerotier Network
|
||||
|
||||
[info]
|
||||
command:/usr/local/bin/zerotier-cli info
|
||||
parameters:
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
zerotier:/etc/rc.conf.d/zerotier
|
||||
local.conf:/var/db/zerotier-one/local.conf
|
||||
networks-local.conf:/var/db/zerotier-one/networks.d/[OPNsense.zerotier.networks.network.%.networkId].local.conf
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
{% if helpers.exists('OPNsense.zerotier.networks') %}
|
||||
{% for network in helpers.toList('OPNsense.zerotier.networks.network') %}
|
||||
{% if TARGET_FILTERS['OPNsense.zerotier.networks.network.' ~ loop.index0] or TARGET_FILTERS['OPNsense.zerotier.networks.network'] %}
|
||||
allowManaged={{ network.allowManaged }}
|
||||
allowGlobal={{ network.allowGlobal }}
|
||||
allowDefault={{ network.allowDefault }}
|
||||
allowDNS={{ network.allowDNS }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
Loading…
Reference in a new issue