mirror of
https://github.com/h44z/wg-portal.git
synced 2025-06-28 01:07:03 +00:00
Implement EditableKeys parameter (#417)
Signed-off-by: Vladimir DOMBROVSKI <vladimir.dombrovski@bso.co>
This commit is contained in:
parent
fbcb22198c
commit
62f3c8d4a1
@ -190,7 +190,7 @@ func (m Manager) CreatePeer(ctx context.Context, peer *domain.Peer) (*domain.Pee
|
|||||||
return nil, fmt.Errorf("failed to prepare peer for interface %s: %w", peer.InterfaceIdentifier, err)
|
return nil, fmt.Errorf("failed to prepare peer for interface %s: %w", peer.InterfaceIdentifier, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
preparedPeer.OverwriteUserEditableFields(peer)
|
preparedPeer.OverwriteUserEditableFields(peer, m.cfg)
|
||||||
|
|
||||||
peer = preparedPeer
|
peer = preparedPeer
|
||||||
}
|
}
|
||||||
@ -278,7 +278,7 @@ func (m Manager) UpdatePeer(ctx context.Context, peer *domain.Peer) (*domain.Pee
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unable to load existing peer %s: %w", peer.Identifier, err)
|
return nil, fmt.Errorf("unable to load existing peer %s: %w", peer.Identifier, err)
|
||||||
}
|
}
|
||||||
originalPeer.OverwriteUserEditableFields(peer)
|
originalPeer.OverwriteUserEditableFields(peer, m.cfg)
|
||||||
|
|
||||||
peer = originalPeer
|
peer = originalPeer
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
|
"github.com/h44z/wg-portal/internal/config"
|
||||||
|
|
||||||
"github.com/h44z/wg-portal/internal"
|
"github.com/h44z/wg-portal/internal"
|
||||||
)
|
)
|
||||||
@ -129,16 +130,18 @@ func (p *Peer) GenerateDisplayName(prefix string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OverwriteUserEditableFields overwrites the user editable fields of the peer with the values from the userPeer
|
// OverwriteUserEditableFields overwrites the user editable fields of the peer with the values from the userPeer
|
||||||
func (p *Peer) OverwriteUserEditableFields(userPeer *Peer) {
|
func (p *Peer) OverwriteUserEditableFields(userPeer *Peer, cfg *config.Config) {
|
||||||
p.DisplayName = userPeer.DisplayName
|
p.DisplayName = userPeer.DisplayName
|
||||||
p.Interface.PublicKey = userPeer.Interface.PublicKey
|
if cfg.Core.EditableKeys {
|
||||||
p.Interface.PrivateKey = userPeer.Interface.PrivateKey
|
p.Interface.PublicKey = userPeer.Interface.PublicKey
|
||||||
|
p.Interface.PrivateKey = userPeer.Interface.PrivateKey
|
||||||
|
p.PresharedKey = userPeer.PresharedKey
|
||||||
|
}
|
||||||
p.Interface.Mtu = userPeer.Interface.Mtu
|
p.Interface.Mtu = userPeer.Interface.Mtu
|
||||||
p.PersistentKeepalive = userPeer.PersistentKeepalive
|
p.PersistentKeepalive = userPeer.PersistentKeepalive
|
||||||
p.ExpiresAt = userPeer.ExpiresAt
|
p.ExpiresAt = userPeer.ExpiresAt
|
||||||
p.Disabled = userPeer.Disabled
|
p.Disabled = userPeer.Disabled
|
||||||
p.DisabledReason = userPeer.DisabledReason
|
p.DisabledReason = userPeer.DisabledReason
|
||||||
p.PresharedKey = userPeer.PresharedKey
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type PeerInterfaceConfig struct {
|
type PeerInterfaceConfig struct {
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/h44z/wg-portal/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPeer_IsDisabled(t *testing.T) {
|
func TestPeer_IsDisabled(t *testing.T) {
|
||||||
@ -98,7 +99,7 @@ func TestPeer_OverwriteUserEditableFields(t *testing.T) {
|
|||||||
DisplayName: "New DisplayName",
|
DisplayName: "New DisplayName",
|
||||||
}
|
}
|
||||||
|
|
||||||
peer.OverwriteUserEditableFields(userPeer)
|
peer.OverwriteUserEditableFields(userPeer, &config.Config{})
|
||||||
assert.Equal(t, "New DisplayName", peer.DisplayName)
|
assert.Equal(t, "New DisplayName", peer.DisplayName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user