mirror of
https://github.com/netbirdio/netbird.git
synced 2025-02-08 22:39:55 +01:00
Fix Peer Deletion & HTTP endpoints (#319)
This commit is contained in:
parent
3ce3ccc39a
commit
3eb230e1a0
@ -181,6 +181,17 @@ func (s *FileStore) DeletePeer(accountId string, peerKey string) (*Peer, error)
|
|||||||
delete(account.Peers, peerKey)
|
delete(account.Peers, peerKey)
|
||||||
delete(s.PeerKeyId2AccountId, peerKey)
|
delete(s.PeerKeyId2AccountId, peerKey)
|
||||||
|
|
||||||
|
// cleanup groups
|
||||||
|
var peers []string
|
||||||
|
for _, g := range account.Groups {
|
||||||
|
for _, p := range g.Peers {
|
||||||
|
if p != peerKey {
|
||||||
|
peers = append(peers, p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g.Peers = peers
|
||||||
|
}
|
||||||
|
|
||||||
err = s.persist(s.storeFile)
|
err = s.persist(s.storeFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -64,7 +64,7 @@ func (h *Rules) GetAllRulesHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var rules []*RuleResponse
|
rules := []*RuleResponse{}
|
||||||
for _, r := range account.Rules {
|
for _, r := range account.Rules {
|
||||||
rules = append(rules, toRuleResponse(account, r))
|
rules = append(rules, toRuleResponse(account, r))
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,10 @@ type UserHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type UserResponse struct {
|
type UserResponse struct {
|
||||||
Email string
|
ID string `json:"id"`
|
||||||
Role string
|
Email string `json:"email"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Role string `json:"role"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUserHandler(accountManager server.AccountManager, authAudience string) *UserHandler {
|
func NewUserHandler(accountManager server.AccountManager, authAudience string) *UserHandler {
|
||||||
@ -59,5 +61,19 @@ func (u *UserHandler) GetUsers(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
writeJSONObject(w, data)
|
users := []*UserResponse{}
|
||||||
|
for _, r := range data {
|
||||||
|
users = append(users, toUserResponse(r))
|
||||||
|
}
|
||||||
|
|
||||||
|
writeJSONObject(w, users)
|
||||||
|
}
|
||||||
|
|
||||||
|
func toUserResponse(user *server.UserInfo) *UserResponse {
|
||||||
|
return &UserResponse{
|
||||||
|
ID: user.ID,
|
||||||
|
Name: user.Name,
|
||||||
|
Email: user.Email,
|
||||||
|
Role: user.Role,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -262,7 +263,11 @@ func (am *DefaultAccountManager) GetNetworkMap(peerKey string) (*NetworkMap, err
|
|||||||
|
|
||||||
for _, g := range groups {
|
for _, g := range groups {
|
||||||
for _, pid := range g.Peers {
|
for _, pid := range g.Peers {
|
||||||
peer := account.Peers[pid]
|
peer, ok := account.Peers[pid]
|
||||||
|
if !ok {
|
||||||
|
log.Warnf("peer %s found in group %s but doesn't belong to account %s", pid, g.ID, account.Id)
|
||||||
|
continue
|
||||||
|
}
|
||||||
// exclude original peer
|
// exclude original peer
|
||||||
if peer.Key != peerKey {
|
if peer.Key != peerKey {
|
||||||
res = append(res, peer.Copy())
|
res = append(res, peer.Copy())
|
||||||
|
Loading…
Reference in New Issue
Block a user