Add accountID reference

This commit is contained in:
braginini
2024-04-17 17:16:56 +02:00
parent 99854a126a
commit 38e10af2d9
2 changed files with 22 additions and 15 deletions

View File

@ -1473,7 +1473,7 @@ func (am *DefaultAccountManager) handleNewUserAccount(domainAcc *Account, claims
// if domain already has a primary account, add regular user // if domain already has a primary account, add regular user
if domainAcc != nil { if domainAcc != nil {
account = domainAcc account = domainAcc
account.Users[claims.UserId] = NewRegularUser(claims.UserId) account.Users[claims.UserId] = NewRegularUser(claims.UserId, account.Id)
err = am.Store.SaveAccount(account) err = am.Store.SaveAccount(account)
if err != nil { if err != nil {
return nil, err return nil, err
@ -1862,9 +1862,10 @@ func (am *DefaultAccountManager) onPeersInvalidated(accountID string) {
func addAllGroup(account *Account) error { func addAllGroup(account *Account) error {
if len(account.Groups) == 0 { if len(account.Groups) == 0 {
allGroup := &nbgroup.Group{ allGroup := &nbgroup.Group{
ID: xid.New().String(), ID: xid.New().String(),
Name: "All", Name: "All",
Issued: nbgroup.GroupIssuedAPI, Issued: nbgroup.GroupIssuedAPI,
AccountID: account.Id,
} }
for _, peer := range account.Peers { for _, peer := range account.Peers {
allGroup.Peers = append(allGroup.Peers, peer.ID) allGroup.Peers = append(allGroup.Peers, peer.ID)
@ -1908,7 +1909,7 @@ func newAccountWithId(accountID, userID, domain string) *Account {
routes := make(map[string]*route.Route) routes := make(map[string]*route.Route)
setupKeys := map[string]*SetupKey{} setupKeys := map[string]*SetupKey{}
nameServersGroups := make(map[string]*nbdns.NameServerGroup) nameServersGroups := make(map[string]*nbdns.NameServerGroup)
users[userID] = NewOwnerUser(userID) users[userID] = NewOwnerUser(userID, accountID)
dnsSettings := DNSSettings{ dnsSettings := DNSSettings{
DisabledManagementGroups: make([]string, 0), DisabledManagementGroups: make([]string, 0),
} }

View File

@ -180,9 +180,11 @@ func (u *User) Copy() *User {
} }
// NewUser creates a new 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{ return &User{
Id: id, Id: ID,
AccountID: accountID,
Role: role, Role: role,
IsServiceUser: isServiceUser, IsServiceUser: isServiceUser,
NonDeletable: nonDeletable, 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 // NewRegularUser creates a new user with role UserRoleUser
func NewRegularUser(id string) *User { func NewRegularUser(ID, accountID string) *User {
return NewUser(id, UserRoleUser, false, false, "", []string{}, UserIssuedAPI) return NewUser(ID, UserRoleUser, false, false, "", []string{}, UserIssuedAPI,
accountID)
} }
// NewAdminUser creates a new user with role UserRoleAdmin // NewAdminUser creates a new user with role UserRoleAdmin
func NewAdminUser(id string) *User { func NewAdminUser(ID, accountID string) *User {
return NewUser(id, UserRoleAdmin, false, false, "", []string{}, UserIssuedAPI) return NewUser(ID, UserRoleAdmin, false, false, "", []string{}, UserIssuedAPI,
accountID)
} }
// NewOwnerUser creates a new user with role UserRoleOwner // NewOwnerUser creates a new user with role UserRoleOwner
func NewOwnerUser(id string) *User { func NewOwnerUser(ID, accountID string) *User {
return NewUser(id, UserRoleOwner, false, false, "", []string{}, UserIssuedAPI) return NewUser(ID, UserRoleOwner, false, false, "", []string{}, UserIssuedAPI,
accountID)
} }
// createServiceUser creates a new service user under the given account. // 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) unlock := am.Store.AcquireAccountLock(accountID)
defer unlock() defer unlock()
@ -231,7 +237,7 @@ func (am *DefaultAccountManager) createServiceUser(accountID string, initiatorUs
} }
newUserID := uuid.New().String() 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) log.Debugf("New User: %v", newUser)
account.Users[newUserID] = newUser account.Users[newUserID] = newUser