From 38e10af2d90b3c22e41a264ecf730d411df7a63c Mon Sep 17 00:00:00 2001 From: braginini Date: Wed, 17 Apr 2024 17:16:56 +0200 Subject: [PATCH] Add accountID reference --- management/server/account.go | 11 ++++++----- management/server/user.go | 26 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/management/server/account.go b/management/server/account.go index c3ba0c86c..8096d185d 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -1473,7 +1473,7 @@ func (am *DefaultAccountManager) handleNewUserAccount(domainAcc *Account, claims // if domain already has a primary account, add regular user if domainAcc != nil { account = domainAcc - account.Users[claims.UserId] = NewRegularUser(claims.UserId) + account.Users[claims.UserId] = NewRegularUser(claims.UserId, account.Id) err = am.Store.SaveAccount(account) if err != nil { return nil, err @@ -1862,9 +1862,10 @@ func (am *DefaultAccountManager) onPeersInvalidated(accountID string) { func addAllGroup(account *Account) error { if len(account.Groups) == 0 { allGroup := &nbgroup.Group{ - ID: xid.New().String(), - Name: "All", - Issued: nbgroup.GroupIssuedAPI, + ID: xid.New().String(), + Name: "All", + Issued: nbgroup.GroupIssuedAPI, + AccountID: account.Id, } for _, peer := range account.Peers { allGroup.Peers = append(allGroup.Peers, peer.ID) @@ -1908,7 +1909,7 @@ func newAccountWithId(accountID, userID, domain string) *Account { routes := make(map[string]*route.Route) setupKeys := map[string]*SetupKey{} nameServersGroups := make(map[string]*nbdns.NameServerGroup) - users[userID] = NewOwnerUser(userID) + users[userID] = NewOwnerUser(userID, accountID) dnsSettings := DNSSettings{ DisabledManagementGroups: make([]string, 0), } diff --git a/management/server/user.go b/management/server/user.go index b955c4058..9d3055262 100644 --- a/management/server/user.go +++ b/management/server/user.go @@ -180,9 +180,11 @@ func (u *User) Copy() *User { } // NewUser creates a new user -func NewUser(id string, role UserRole, isServiceUser bool, nonDeletable bool, serviceUserName string, autoGroups []string, issued string) *User { +func NewUser(ID string, role UserRole, isServiceUser bool, nonDeletable bool, serviceUserName string, autoGroups []string, issued string, + accountID string) *User { return &User{ - Id: id, + Id: ID, + AccountID: accountID, Role: role, IsServiceUser: isServiceUser, NonDeletable: nonDeletable, @@ -194,22 +196,26 @@ func NewUser(id string, role UserRole, isServiceUser bool, nonDeletable bool, se } // NewRegularUser creates a new user with role UserRoleUser -func NewRegularUser(id string) *User { - return NewUser(id, UserRoleUser, false, false, "", []string{}, UserIssuedAPI) +func NewRegularUser(ID, accountID string) *User { + return NewUser(ID, UserRoleUser, false, false, "", []string{}, UserIssuedAPI, + accountID) } // NewAdminUser creates a new user with role UserRoleAdmin -func NewAdminUser(id string) *User { - return NewUser(id, UserRoleAdmin, false, false, "", []string{}, UserIssuedAPI) +func NewAdminUser(ID, accountID string) *User { + return NewUser(ID, UserRoleAdmin, false, false, "", []string{}, UserIssuedAPI, + accountID) } // NewOwnerUser creates a new user with role UserRoleOwner -func NewOwnerUser(id string) *User { - return NewUser(id, UserRoleOwner, false, false, "", []string{}, UserIssuedAPI) +func NewOwnerUser(ID, accountID string) *User { + return NewUser(ID, UserRoleOwner, false, false, "", []string{}, UserIssuedAPI, + accountID) } // createServiceUser creates a new service user under the given account. -func (am *DefaultAccountManager) createServiceUser(accountID string, initiatorUserID string, role UserRole, serviceUserName string, nonDeletable bool, autoGroups []string) (*UserInfo, error) { +func (am *DefaultAccountManager) createServiceUser(accountID string, initiatorUserID string, role UserRole, + serviceUserName string, nonDeletable bool, autoGroups []string) (*UserInfo, error) { unlock := am.Store.AcquireAccountLock(accountID) defer unlock() @@ -231,7 +237,7 @@ func (am *DefaultAccountManager) createServiceUser(accountID string, initiatorUs } newUserID := uuid.New().String() - newUser := NewUser(newUserID, role, true, nonDeletable, serviceUserName, autoGroups, UserIssuedAPI) + newUser := NewUser(newUserID, role, true, nonDeletable, serviceUserName, autoGroups, UserIssuedAPI, accountID) log.Debugf("New User: %v", newUser) account.Users[newUserID] = newUser