mirror of
https://github.com/versity/versitygw.git
synced 2026-01-08 20:43:07 +00:00
Merge pull request #210 from versity/ben/iam_acct
fix: move auth internal UserAcc to auth.Account
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
|
||||
// Account is a gateway IAM account
|
||||
type Account struct {
|
||||
Access string `json:"access"`
|
||||
Secret string `json:"secret"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
@@ -31,7 +32,7 @@ type IAMService interface {
|
||||
CreateAccount(access string, account Account) error
|
||||
GetUserAccount(access string) (Account, error)
|
||||
DeleteUserAccount(access string) error
|
||||
ListUserAccounts() ([]UserAcc, error)
|
||||
ListUserAccounts() ([]Account, error)
|
||||
}
|
||||
|
||||
var ErrNoSuchUser = errors.New("user not found")
|
||||
|
||||
@@ -41,12 +41,6 @@ type Storer interface {
|
||||
StoreIAM(UpdateAcctFunc) error
|
||||
}
|
||||
|
||||
type UserAcc struct {
|
||||
Access string `json:"access"`
|
||||
Secret string `json:"secret"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
// IAMConfig stores all internal IAM accounts
|
||||
type IAMConfig struct {
|
||||
AccessAccounts map[string]Account `json:"accessAccounts"`
|
||||
@@ -187,13 +181,13 @@ func (s *IAMServiceInternal) DeleteUserAccount(access string) error {
|
||||
}
|
||||
|
||||
// ListUserAccounts lists all the user accounts stored.
|
||||
func (s *IAMServiceInternal) ListUserAccounts() (accs []UserAcc, err error) {
|
||||
func (s *IAMServiceInternal) ListUserAccounts() (accs []Account, err error) {
|
||||
s.mu.RLock()
|
||||
defer s.mu.RUnlock()
|
||||
|
||||
data, err := s.storer.GetIAM()
|
||||
if err != nil {
|
||||
return []UserAcc{}, fmt.Errorf("get iam data: %w", err)
|
||||
return []Account{}, fmt.Errorf("get iam data: %w", err)
|
||||
}
|
||||
|
||||
serial := crc32.ChecksumIEEE(data)
|
||||
@@ -202,12 +196,12 @@ func (s *IAMServiceInternal) ListUserAccounts() (accs []UserAcc, err error) {
|
||||
err := s.updateCache()
|
||||
s.mu.RLock()
|
||||
if err != nil {
|
||||
return []UserAcc{}, fmt.Errorf("refresh iam cache: %w", err)
|
||||
return []Account{}, fmt.Errorf("refresh iam cache: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
for access, usr := range s.accts.AccessAccounts {
|
||||
accs = append(accs, UserAcc{
|
||||
accs = append(accs, Account{
|
||||
Access: access,
|
||||
Secret: usr.Secret,
|
||||
Role: usr.Role,
|
||||
|
||||
@@ -230,7 +230,7 @@ func listUsers(ctx *cli.Context) error {
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
var accs []auth.UserAcc
|
||||
var accs []auth.Account
|
||||
if err := json.Unmarshal(body, &accs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -180,16 +180,16 @@ func TestAdminController_ListUsers(t *testing.T) {
|
||||
|
||||
adminController := AdminController{
|
||||
IAMService: &IAMServiceMock{
|
||||
ListUserAccountsFunc: func() ([]auth.UserAcc, error) {
|
||||
return []auth.UserAcc{}, nil
|
||||
ListUserAccountsFunc: func() ([]auth.Account, error) {
|
||||
return []auth.Account{}, nil
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
adminControllerErr := AdminController{
|
||||
IAMService: &IAMServiceMock{
|
||||
ListUserAccountsFunc: func() ([]auth.UserAcc, error) {
|
||||
return []auth.UserAcc{}, fmt.Errorf("server error")
|
||||
ListUserAccountsFunc: func() ([]auth.Account, error) {
|
||||
return []auth.Account{}, fmt.Errorf("server error")
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ var _ auth.IAMService = &IAMServiceMock{}
|
||||
// GetUserAccountFunc: func(access string) (auth.Account, error) {
|
||||
// panic("mock out the GetUserAccount method")
|
||||
// },
|
||||
// ListUserAccountsFunc: func() ([]auth.UserAcc, error) {
|
||||
// ListUserAccountsFunc: func() ([]auth.Account, error) {
|
||||
// panic("mock out the ListUserAccounts method")
|
||||
// },
|
||||
// }
|
||||
@@ -47,7 +47,7 @@ type IAMServiceMock struct {
|
||||
GetUserAccountFunc func(access string) (auth.Account, error)
|
||||
|
||||
// ListUserAccountsFunc mocks the ListUserAccounts method.
|
||||
ListUserAccountsFunc func() ([]auth.UserAcc, error)
|
||||
ListUserAccountsFunc func() ([]auth.Account, error)
|
||||
|
||||
// calls tracks calls to the methods.
|
||||
calls struct {
|
||||
@@ -179,7 +179,7 @@ func (mock *IAMServiceMock) GetUserAccountCalls() []struct {
|
||||
}
|
||||
|
||||
// ListUserAccounts calls ListUserAccountsFunc.
|
||||
func (mock *IAMServiceMock) ListUserAccounts() ([]auth.UserAcc, error) {
|
||||
func (mock *IAMServiceMock) ListUserAccounts() ([]auth.Account, error) {
|
||||
if mock.ListUserAccountsFunc == nil {
|
||||
panic("IAMServiceMock.ListUserAccountsFunc: method is nil but IAMService.ListUserAccounts was just called")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user