diff --git a/management/server/file_store.go b/management/server/file_store.go index cd98ca6b8..974aa12ab 100644 --- a/management/server/file_store.go +++ b/management/server/file_store.go @@ -288,6 +288,7 @@ func (s *FileStore) SaveAccount(account *Account) error { return s.persist(s.storeFile) } +// DeleteHashedPAT2TokenIDIndex removes an entry from the indexing map HashedPAT2TokenID func (s *FileStore) DeleteHashedPAT2TokenIDIndex(hashedToken string) error { s.mux.Lock() defer s.mux.Unlock() @@ -297,6 +298,7 @@ func (s *FileStore) DeleteHashedPAT2TokenIDIndex(hashedToken string) error { return s.persist(s.storeFile) } +// DeleteTokenID2UserIDIndex removes an entry from the indexing map TokenID2UserID func (s *FileStore) DeleteTokenID2UserIDIndex(tokenID string) error { s.mux.Lock() defer s.mux.Unlock() diff --git a/management/server/file_store_test.go b/management/server/file_store_test.go index c2ccbf546..b2e9bff29 100644 --- a/management/server/file_store_test.go +++ b/management/server/file_store_test.go @@ -397,7 +397,10 @@ func TestFileStore_DeleteHashedPAT2TokenIDIndex(t *testing.T) { store := newStore(t) store.HashedPAT2TokenID["someHashedToken"] = "someTokenId" - store.DeleteHashedPAT2TokenIDIndex("someHashedToken") + err := store.DeleteHashedPAT2TokenIDIndex("someHashedToken") + if err != nil { + t.Fatal(err) + } assert.Empty(t, store.HashedPAT2TokenID["someHashedToken"]) } @@ -406,7 +409,10 @@ func TestFileStore_DeleteTokenID2UserIDIndex(t *testing.T) { store := newStore(t) store.TokenID2UserID["someTokenId"] = "someUserId" - store.DeleteTokenID2UserIDIndex("someTokenId") + err := store.DeleteTokenID2UserIDIndex("someTokenId") + if err != nil { + t.Fatal(err) + } assert.Empty(t, store.TokenID2UserID["someTokenId"]) } diff --git a/management/server/mock_server/account_mock.go b/management/server/mock_server/account_mock.go index 4f2580679..2ae71d1a9 100644 --- a/management/server/mock_server/account_mock.go +++ b/management/server/mock_server/account_mock.go @@ -60,6 +60,8 @@ type MockAccountManager struct { SaveSetupKeyFunc func(accountID string, key *server.SetupKey, userID string) (*server.SetupKey, error) ListSetupKeysFunc func(accountID, userID string) ([]*server.SetupKey, error) SaveUserFunc func(accountID, userID string, user *server.User) (*server.UserInfo, error) + AddPATToUserFunc func(accountID string, userID string, pat *server.PersonalAccessToken) error + DeletePATFunc func(accountID string, userID string, tokenID string) error GetNameServerGroupFunc func(accountID, nsGroupID string) (*nbdns.NameServerGroup, error) CreateNameServerGroupFunc func(accountID string, name, description string, nameServerList []nbdns.NameServer, groups []string, primary bool, domains []string, enabled bool, userID string) (*nbdns.NameServerGroup, error) SaveNameServerGroupFunc func(accountID, userID string, nsGroupToSave *nbdns.NameServerGroup) error @@ -184,6 +186,22 @@ func (am *MockAccountManager) GetAccountFromPAT(pat string) (*server.Account, *s return nil, nil, status.Errorf(codes.Unimplemented, "method GetAccountFromPAT is not implemented") } +// AddPATToUser mock implementation of AddPATToUser from server.AccountManager interface +func (am *MockAccountManager) AddPATToUser(accountID string, userID string, pat *server.PersonalAccessToken) error { + if am.AddPATToUserFunc != nil { + return am.AddPATToUserFunc(accountID, userID, pat) + } + return status.Errorf(codes.Unimplemented, "method AddPATToUser is not implemented") +} + +// DeletePAT mock implementation of DeletePAT from server.AccountManager interface +func (am *MockAccountManager) DeletePAT(accountID string, userID string, tokenID string) error { + if am.DeletePATFunc != nil { + return am.DeletePATFunc(accountID, userID, tokenID) + } + return status.Errorf(codes.Unimplemented, "method DeletePAT is not implemented") +} + // GetNetworkMap mock implementation of GetNetworkMap from server.AccountManager interface func (am *MockAccountManager) GetNetworkMap(peerKey string) (*server.NetworkMap, error) { if am.GetNetworkMapFunc != nil { diff --git a/management/server/user.go b/management/server/user.go index 8047c624c..36ba477e1 100644 --- a/management/server/user.go +++ b/management/server/user.go @@ -214,6 +214,7 @@ func (am *DefaultAccountManager) AddPATToUser(accountID string, userID string, p return err } +// DeletePAT deletes a specific PAT from a user func (am *DefaultAccountManager) DeletePAT(accountID string, userID string, tokenID string) error { unlock := am.Store.AcquireAccountLock(accountID) defer unlock()