mirror of
https://github.com/netbirdio/netbird.git
synced 2025-01-10 07:58:32 +01:00
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
|
package users
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"errors"
|
||
|
|
||
|
"github.com/netbirdio/netbird/management/server/store"
|
||
|
"github.com/netbirdio/netbird/management/server/types"
|
||
|
)
|
||
|
|
||
|
type Manager interface {
|
||
|
GetUser(ctx context.Context, userID string) (*types.User, error)
|
||
|
}
|
||
|
|
||
|
type managerImpl struct {
|
||
|
store store.Store
|
||
|
}
|
||
|
|
||
|
type managerMock struct {
|
||
|
}
|
||
|
|
||
|
func NewManager(store store.Store) Manager {
|
||
|
return &managerImpl{
|
||
|
store: store,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (m *managerImpl) GetUser(ctx context.Context, userID string) (*types.User, error) {
|
||
|
return m.store.GetUserByUserID(ctx, store.LockingStrengthShare, userID)
|
||
|
}
|
||
|
|
||
|
func NewManagerMock() Manager {
|
||
|
return &managerMock{}
|
||
|
}
|
||
|
|
||
|
func (m *managerMock) GetUser(ctx context.Context, userID string) (*types.User, error) {
|
||
|
switch userID {
|
||
|
case "adminUser":
|
||
|
return &types.User{Id: userID, Role: types.UserRoleAdmin}, nil
|
||
|
case "regularUser":
|
||
|
return &types.User{Id: userID, Role: types.UserRoleUser}, nil
|
||
|
case "ownerUser":
|
||
|
return &types.User{Id: userID, Role: types.UserRoleOwner}, nil
|
||
|
case "billingUser":
|
||
|
return &types.User{Id: userID, Role: types.UserRoleBillingAdmin}, nil
|
||
|
default:
|
||
|
return nil, errors.New("user not found")
|
||
|
}
|
||
|
}
|