diff --git a/management/server/http/accounts_handler.go b/management/server/http/accounts_handler.go index 8c356bb7a..ef7e2cdd2 100644 --- a/management/server/http/accounts_handler.go +++ b/management/server/http/accounts_handler.go @@ -8,6 +8,7 @@ import ( "github.com/gorilla/mux" "github.com/netbirdio/netbird/management/server" + "github.com/netbirdio/netbird/management/server/account" "github.com/netbirdio/netbird/management/server/http/api" "github.com/netbirdio/netbird/management/server/http/util" "github.com/netbirdio/netbird/management/server/jwtclaims" @@ -78,7 +79,7 @@ func (h *AccountsHandler) UpdateAccount(w http.ResponseWriter, r *http.Request) } if req.Settings.Extra != nil { - settings.Extra = &server.ExtraSettings{PeerApprovalEnabled: *req.Settings.Extra.PeerApprovalEnabled} + settings.Extra = &account.ExtraSettings{PeerApprovalEnabled: *req.Settings.Extra.PeerApprovalEnabled} } if req.Settings.JwtGroupsEnabled != nil { diff --git a/management/server/http/groups_handler_test.go b/management/server/http/groups_handler_test.go index 5f40be7a9..5b47b1208 100644 --- a/management/server/http/groups_handler_test.go +++ b/management/server/http/groups_handler_test.go @@ -19,10 +19,11 @@ import ( "github.com/netbirdio/netbird/management/server/http/util" "github.com/netbirdio/netbird/management/server/jwtclaims" "github.com/netbirdio/netbird/management/server/mock_server" + nbpeer "github.com/netbirdio/netbird/management/server/peer" "github.com/netbirdio/netbird/management/server/status" ) -var TestPeers = map[string]*server.Peer{ +var TestPeers = map[string]*nbpeer.Peer{ "A": {Key: "A", ID: "peer-A-ID", IP: net.ParseIP("100.100.100.100")}, "B": {Key: "B", ID: "peer-B-ID", IP: net.ParseIP("200.200.200.200")}, } diff --git a/management/server/http/peers_handler.go b/management/server/http/peers_handler.go index c143a8076..460458683 100644 --- a/management/server/http/peers_handler.go +++ b/management/server/http/peers_handler.go @@ -11,6 +11,7 @@ import ( "github.com/netbirdio/netbird/management/server/http/api" "github.com/netbirdio/netbird/management/server/http/util" "github.com/netbirdio/netbird/management/server/jwtclaims" + nbpeer "github.com/netbirdio/netbird/management/server/peer" "github.com/netbirdio/netbird/management/server/status" ) @@ -31,7 +32,7 @@ func NewPeersHandler(accountManager server.AccountManager, authCfg AuthCfg) *Pee } } -func (h *PeersHandler) checkPeerStatus(peer *server.Peer) (*server.Peer, error) { +func (h *PeersHandler) checkPeerStatus(peer *nbpeer.Peer) (*nbpeer.Peer, error) { peerToReturn := peer.Copy() if peer.Status.Connected { statuses, err := h.accountManager.GetAllConnectedPeers() @@ -79,11 +80,11 @@ func (h *PeersHandler) updatePeer(account *server.Account, user *server.User, pe return } - update := &server.Peer{ID: peerID, SSHEnabled: req.SshEnabled, Name: req.Name, + update := &nbpeer.Peer{ID: peerID, SSHEnabled: req.SshEnabled, Name: req.Name, LoginExpirationEnabled: req.LoginExpirationEnabled} if req.ApprovalRequired != nil { - update.Status = &server.PeerStatus{RequiresApproval: *req.ApprovalRequired} + update.Status = &nbpeer.PeerStatus{RequiresApproval: *req.ApprovalRequired} } peer, err := h.accountManager.UpdatePeer(account.Id, user.Id, update) @@ -234,7 +235,7 @@ func toGroupsInfo(groups map[string]*server.Group, peerID string) []api.GroupMin return groupsInfo } -func toSinglePeerResponse(peer *server.Peer, groupsInfo []api.GroupMinimum, dnsDomain string, accessiblePeer []api.AccessiblePeer) *api.Peer { +func toSinglePeerResponse(peer *nbpeer.Peer, groupsInfo []api.GroupMinimum, dnsDomain string, accessiblePeer []api.AccessiblePeer) *api.Peer { return &api.Peer{ Id: peer.ID, Name: peer.Name, @@ -253,11 +254,11 @@ func toSinglePeerResponse(peer *server.Peer, groupsInfo []api.GroupMinimum, dnsD LastLogin: peer.LastLogin, LoginExpired: peer.Status.LoginExpired, AccessiblePeers: accessiblePeer, - Approved: &peer.Status.Approved, + ApprovalRequired: &peer.Status.RequiresApproval, } } -func toPeerListItemResponse(peer *server.Peer, groupsInfo []api.GroupMinimum, dnsDomain string, accessiblePeersCount int) *api.PeerBatch { +func toPeerListItemResponse(peer *nbpeer.Peer, groupsInfo []api.GroupMinimum, dnsDomain string, accessiblePeersCount int) *api.PeerBatch { return &api.PeerBatch{ Id: peer.ID, Name: peer.Name, @@ -276,11 +277,11 @@ func toPeerListItemResponse(peer *server.Peer, groupsInfo []api.GroupMinimum, dn LastLogin: peer.LastLogin, LoginExpired: peer.Status.LoginExpired, AccessiblePeersCount: accessiblePeersCount, - Approved: peer.Status.Approved, + ApprovalRequired: &peer.Status.RequiresApproval, } } -func fqdn(peer *server.Peer, dnsDomain string) string { +func fqdn(peer *nbpeer.Peer, dnsDomain string) string { fqdn := peer.FQDN(dnsDomain) if fqdn == "" { return peer.DNSLabel diff --git a/management/server/http/peers_handler_test.go b/management/server/http/peers_handler_test.go index 1690bb75f..d13db447b 100644 --- a/management/server/http/peers_handler_test.go +++ b/management/server/http/peers_handler_test.go @@ -13,6 +13,7 @@ import ( "github.com/gorilla/mux" "github.com/netbirdio/netbird/management/server/http/api" + nbpeer "github.com/netbirdio/netbird/management/server/peer" "github.com/netbirdio/netbird/management/server/jwtclaims" @@ -25,11 +26,11 @@ import ( const testPeerID = "test_peer" const noUpdateChannelTestPeerID = "no-update-channel" -func initTestMetaData(peers ...*server.Peer) *PeersHandler { +func initTestMetaData(peers ...*nbpeer.Peer) *PeersHandler { return &PeersHandler{ accountManager: &mock_server.MockAccountManager{ - UpdatePeerFunc: func(accountID, userID string, update *server.Peer) (*server.Peer, error) { - var p *server.Peer + UpdatePeerFunc: func(accountID, userID string, update *nbpeer.Peer) (*nbpeer.Peer, error) { + var p *nbpeer.Peer for _, peer := range peers { if update.ID == peer.ID { p = peer.Copy() @@ -41,8 +42,8 @@ func initTestMetaData(peers ...*server.Peer) *PeersHandler { p.Name = update.Name return p, nil }, - GetPeerFunc: func(accountID, peerID, userID string) (*server.Peer, error) { - var p *server.Peer + GetPeerFunc: func(accountID, peerID, userID string) (*nbpeer.Peer, error) { + var p *nbpeer.Peer for _, peer := range peers { if peerID == peer.ID { p = peer.Copy() @@ -51,7 +52,7 @@ func initTestMetaData(peers ...*server.Peer) *PeersHandler { } return p, nil }, - GetPeersFunc: func(accountID, userID string) ([]*server.Peer, error) { + GetPeersFunc: func(accountID, userID string) ([]*nbpeer.Peer, error) { return peers, nil }, GetAccountFromTokenFunc: func(claims jwtclaims.AuthorizationClaims) (*server.Account, *server.User, error) { @@ -59,7 +60,7 @@ func initTestMetaData(peers ...*server.Peer) *PeersHandler { return &server.Account{ Id: claims.AccountId, Domain: "hotmail.com", - Peers: map[string]*server.Peer{ + Peers: map[string]*nbpeer.Peer{ peers[0].ID: peers[0], peers[1].ID: peers[1], }, @@ -108,15 +109,15 @@ func initTestMetaData(peers ...*server.Peer) *PeersHandler { // Use the metadata generated by initTestMetaData() to check for values func TestGetPeers(t *testing.T) { - peer := &server.Peer{ + peer := &nbpeer.Peer{ ID: testPeerID, Key: "key", SetupKey: "setupkey", IP: net.ParseIP("100.64.0.1"), - Status: &server.PeerStatus{Connected: true, Approved: true}, + Status: &nbpeer.PeerStatus{Connected: true}, Name: "PeerName", LoginExpirationEnabled: false, - Meta: server.PeerSystemMeta{ + Meta: nbpeer.PeerSystemMeta{ Hostname: "hostname", GoOS: "GoOS", Kernel: "kernel", @@ -145,7 +146,7 @@ func TestGetPeers(t *testing.T) { requestPath string requestBody io.Reader expectedArray bool - expectedPeer *server.Peer + expectedPeer *nbpeer.Peer }{ { name: "GetPeersMetaData", diff --git a/management/server/http/routes_handler_test.go b/management/server/http/routes_handler_test.go index 0bb4587e4..c02292f2a 100644 --- a/management/server/http/routes_handler_test.go +++ b/management/server/http/routes_handler_test.go @@ -11,6 +11,7 @@ import ( "testing" "github.com/netbirdio/netbird/management/server/http/api" + nbpeer "github.com/netbirdio/netbird/management/server/peer" "github.com/netbirdio/netbird/management/server/status" "github.com/netbirdio/netbird/route" @@ -55,12 +56,12 @@ var baseExistingRoute = &route.Route{ var testingAccount = &server.Account{ Id: testAccountID, Domain: "hotmail.com", - Peers: map[string]*server.Peer{ + Peers: map[string]*nbpeer.Peer{ existingPeerID: { Key: existingPeerKey, IP: netip.MustParseAddr(existingPeerIP1).AsSlice(), ID: existingPeerID, - Meta: server.PeerSystemMeta{ + Meta: nbpeer.PeerSystemMeta{ GoOS: "linux", }, }, @@ -68,7 +69,7 @@ var testingAccount = &server.Account{ Key: nonLinuxExistingPeerID, IP: netip.MustParseAddr(existingPeerIP2).AsSlice(), ID: nonLinuxExistingPeerID, - Meta: server.PeerSystemMeta{ + Meta: nbpeer.PeerSystemMeta{ GoOS: "darwin", }, },