diff --git a/src/modules/WireguardConfiguration.py b/src/modules/WireguardConfiguration.py index 3aa6df10..fd1ff080 100644 --- a/src/modules/WireguardConfiguration.py +++ b/src/modules/WireguardConfiguration.py @@ -16,7 +16,7 @@ from .PeerJobs import PeerJobs from .PeerShareLinks import PeerShareLinks from .Utilities import StringToBoolean, GenerateWireguardPublicKey, RegexMatch, ValidateDNSAddress, \ ValidateEndpointAllowedIPs -from .WireguardConfigurationInfo import WireguardConfigurationInfo +from .WireguardConfigurationInfo import WireguardConfigurationInfo, PeerGroupsClass class WireguardConfiguration: @@ -1110,7 +1110,7 @@ class WireguardConfiguration: except Exception as e: return False - def updateConfigurationInfo(self, key: str, value: str | dict[str, str]) -> tuple[bool, Any, str] | tuple[ + def updateConfigurationInfo(self, key: str, value: str | dict[str, str] | dict[str, dict]) -> tuple[bool, Any, str] | tuple[ bool, str, None] | tuple[bool, None, None]: if key == "Description": self.configurationInfo.Description = value @@ -1124,6 +1124,11 @@ class WireguardConfiguration: return False, str(e), None self.configurationInfo.OverridePeerSettings = ( self.configurationInfo.OverridePeerSettings.model_validate(value)) + elif key == "PeerGroups": + peerGroups = {} + for name, data in value.items(): + peerGroups[name] = PeerGroupsClass(**data) + self.configurationInfo.PeerGroups = peerGroups else: return False, "Key does not exist", None diff --git a/src/static/app/src/components/configurationComponents/peer.vue b/src/static/app/src/components/configurationComponents/peer.vue index 812eea34..a1daf330 100644 --- a/src/static/app/src/components/configurationComponents/peer.vue +++ b/src/static/app/src/components/configurationComponents/peer.vue @@ -15,7 +15,7 @@ export default { PeerTagBadge, LocaleText, PeerSettingsDropdown }, props: { - Peer: Object + Peer: Object, ConfigurationInfo: Object }, data(){ return { @@ -106,7 +106,9 @@ export default {