From cd7d1a80c91b1f4ffbb3893fbc263399cd0b2119 Mon Sep 17 00:00:00 2001 From: Misha Bragin Date: Tue, 13 Sep 2022 13:39:46 +0200 Subject: [PATCH] Assign groups to peers when registering with the setup key (#466) --- management/server/peer.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/management/server/peer.go b/management/server/peer.go index 5174984c4..b43060ee1 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -294,6 +294,8 @@ func (am *DefaultAccountManager) AddPeer( var account *Account var err error var sk *SetupKey + // auto-assign groups that are coming with a SetupKey or a User + var groupsToAdd []string if len(upperKey) != 0 { account, err = am.Store.GetAccountBySetupKey(upperKey) if err != nil { @@ -321,6 +323,8 @@ func (am *DefaultAccountManager) AddPeer( ) } + groupsToAdd = sk.AutoGroups + } else if len(userID) != 0 { account, err = am.Store.GetUserAccount(userID) if err != nil { @@ -361,6 +365,14 @@ func (am *DefaultAccountManager) AddPeer( } group.Peers = append(group.Peers, newPeer.Key) + if len(groupsToAdd) > 0 { + for _, s := range groupsToAdd { + if g, ok := account.Groups[s]; ok && g.Name != "All" { + g.Peers = append(g.Peers, newPeer.Key) + } + } + } + account.Peers[newPeer.Key] = newPeer if len(upperKey) != 0 { account.SetupKeys[sk.Key] = sk.IncrementUsage()