mirror of https://github.com/h44z/wg-portal.git
				
				
				
			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 | ||||||
|  | 	if cfg.Core.EditableKeys { | ||||||
| 		p.Interface.PublicKey = userPeer.Interface.PublicKey | 		p.Interface.PublicKey = userPeer.Interface.PublicKey | ||||||
| 		p.Interface.PrivateKey = userPeer.Interface.PrivateKey | 		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…
	
		Reference in New Issue