mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-19 00:36:38 +00:00
add example setup for management refactor
This commit is contained in:
24
management/refactor/users/manager.go
Normal file
24
management/refactor/users/manager.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package users
|
||||
|
||||
import "github.com/netbirdio/netbird/management/refactor/peers"
|
||||
|
||||
type Manager interface {
|
||||
GetUser(id string) (User, error)
|
||||
}
|
||||
|
||||
type DefaultManager struct {
|
||||
repository repository
|
||||
peerManager peers.Manager
|
||||
}
|
||||
|
||||
func NewDefaultManager(repository repository, peerManager peers.Manager) *DefaultManager {
|
||||
return &DefaultManager{
|
||||
repository: repository,
|
||||
peerManager: peerManager,
|
||||
}
|
||||
}
|
||||
|
||||
func (d DefaultManager) GetUser(id string) (User, error) {
|
||||
// TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
4
management/refactor/users/repository.go
Normal file
4
management/refactor/users/repository.go
Normal file
@@ -0,0 +1,4 @@
|
||||
package users
|
||||
|
||||
type repository interface {
|
||||
}
|
||||
35
management/refactor/users/user.go
Normal file
35
management/refactor/users/user.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package users
|
||||
|
||||
import "time"
|
||||
|
||||
// UserRole is the role of a User
|
||||
type UserRole string
|
||||
|
||||
type User interface {
|
||||
IsBlocked() bool
|
||||
}
|
||||
|
||||
// User represents a user of the system
|
||||
type DefaultUser struct {
|
||||
Id string `gorm:"primaryKey"`
|
||||
// AccountID is a reference to Account that this object belongs
|
||||
AccountID string `json:"-" gorm:"index"`
|
||||
Role UserRole
|
||||
IsServiceUser bool
|
||||
// NonDeletable indicates whether the service user can be deleted
|
||||
NonDeletable bool
|
||||
// ServiceUserName is only set if IsServiceUser is true
|
||||
ServiceUserName string
|
||||
// AutoGroups is a list of Group IDs to auto-assign to peers registered by this user
|
||||
AutoGroups []string `gorm:"serializer:json"`
|
||||
// Blocked indicates whether the user is blocked. Blocked users can't use the system.
|
||||
Blocked bool
|
||||
// LastLogin is the last time the user logged in to IdP
|
||||
LastLogin time.Time
|
||||
// Issued of the user
|
||||
Issued string `gorm:"default:api"`
|
||||
}
|
||||
|
||||
func (u *DefaultUser) IsBlocked() bool {
|
||||
return u.Blocked
|
||||
}
|
||||
Reference in New Issue
Block a user