agent

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2021 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeAuthManager

func MakeAuthManager(logger slog.Instance, dbHandler DatabaseHandler) interfaces.AuthManager

MakeAuthManager creates an instance of auth manager. If Rethink is enabled returns an DatabaseAuthManager, if not a JSONAuthManager

func MakeTokenManager

func MakeTokenManager(logger slog.Instance, dbHandler DatabaseHandler) interfaces.TokenManager

MakeTokenManager creates an instance of token manager. If Rethink is enabled returns an DatabaseTokenManager, if not a MemoryTokenManager

Types

type DBAuth added in v1.4.0

type DBAuth interface {
	GetUser(username string) (um *models.User, err error)
	AddUser(um models.User) (string, error)
	UpdateUser(um models.User) error
}

type DBToken added in v1.4.0

type DBToken interface {
	GetUser(username string) (um *models.User, err error)
	AddUserToken(ut models.UserToken) (string, error)
	RemoveUserToken(token string) (err error)
	GetUserToken(token string) (ut *models.UserToken, err error)
	InvalidateUserTokens() (int, error)
}

type DatabaseAuthManager added in v1.4.0

type DatabaseAuthManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewDatabaseAuthManager added in v1.4.0

func NewDatabaseAuthManager(logger slog.Instance, dbAuth DBAuth) *DatabaseAuthManager

NewDatabaseAuthManager creates an instance of Auth Manager that uses RethinkDB as storage

func (*DatabaseAuthManager) ChangePassword added in v1.4.0

func (ram *DatabaseAuthManager) ChangePassword(username, password string) error

ChangePassword changes the password of the specified user

func (*DatabaseAuthManager) LoginAdd added in v1.4.0

func (ram *DatabaseAuthManager) LoginAdd(username, password, fullname, fingerprint string) error

LoginAdd creates a new user in AuthManager

func (*DatabaseAuthManager) LoginAuth added in v1.4.0

func (ram *DatabaseAuthManager) LoginAuth(username, password string) (fingerPrint, fullname string, err error)

LoginAuth performs a login with the specified username and password

func (*DatabaseAuthManager) UserExists added in v1.4.0

func (ram *DatabaseAuthManager) UserExists(username string) bool

UserExists checks if a user with specified username exists in AuthManager

type DatabaseHandler added in v1.4.0

type DatabaseHandler interface {
	MigrationHandler
	GPGRepository
	UserRepository
	HealthChecker
}

func MakeDatabaseHandler added in v1.4.0

func MakeDatabaseHandler(logger slog.Instance) (dbh DatabaseHandler, err error)

MakeDatabaseHandler initializes a Database Access Handler based on the current configuration

type DatabaseTokenManager added in v1.4.0

type DatabaseTokenManager struct {
	// contains filtered or unexported fields
}

func MakeDatabaseTokenManager added in v1.4.0

func MakeDatabaseTokenManager(logger slog.Instance, dbToken DBToken) *DatabaseTokenManager

MakeDatabaseTokenManager creates an instance of TokenManager that stores data in RethinkDB

func (*DatabaseTokenManager) AddUser added in v1.4.0

func (rtm *DatabaseTokenManager) AddUser(user interfaces.UserData) string

AddUser adds a user to Token Manager and returns a login token

func (*DatabaseTokenManager) AddUserWithExpiration added in v1.4.0

func (rtm *DatabaseTokenManager) AddUserWithExpiration(user interfaces.UserData, expiration int) string

AddUserWithExpiration adds an user to Token Manager that will expires in `expiration` seconds.

func (*DatabaseTokenManager) GetUserData added in v1.4.0

func (rtm *DatabaseTokenManager) GetUserData(token string) interfaces.UserData

GetUserData returns the user data for the specified token

func (*DatabaseTokenManager) InvalidateToken added in v1.4.0

func (rtm *DatabaseTokenManager) InvalidateToken(token string) error

InvalidateToken removes a token from the database making it unusable in the future

func (*DatabaseTokenManager) Verify added in v1.4.0

func (rtm *DatabaseTokenManager) Verify(token string) error

Verify verifies if the specified token is valid

type GPGRepository added in v1.4.0

type GPGRepository interface {
	AddGPGKey(key models.GPGKey) (string, bool, error)
	// AddGPGKey adds a list GPG Key to the database or update an existing one by fingerprint
	// Same as AddGPGKey but in a single transaction
	AddGPGKeys(keys []models.GPGKey) (ids []string, addeds []bool, err error)
	FindGPGKeyByEmail(email string, pageStart, pageEnd int) ([]models.GPGKey, error)
	FindGPGKeyByFingerPrint(fingerPrint string, pageStart, pageEnd int) ([]models.GPGKey, error)
	FindGPGKeyByValue(value string, pageStart, pageEnd int) ([]models.GPGKey, error)
	FindGPGKeyByName(name string, pageStart, pageEnd int) ([]models.GPGKey, error)
	FetchGPGKeyByFingerprint(fingerprint string) (*models.GPGKey, error)
	FetchGPGKeysWithoutSubKeys() (res []models.GPGKey, err error)
	DeleteGPGKey(key models.GPGKey) error
	UpdateGPGKey(key models.GPGKey) (err error)
}

type HealthChecker added in v1.4.0

type HealthChecker interface {
	HealthCheck() error
}

type JSONAuthManager

type JSONAuthManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func MakeJSONAuthManager

func MakeJSONAuthManager(logger slog.Instance) *JSONAuthManager

MakeJSONAuthManager creates an instance of AuthManager that uses JSON Storage

func (*JSONAuthManager) ChangePassword

func (jam *JSONAuthManager) ChangePassword(username, password string) error

func (*JSONAuthManager) LoginAdd

func (jam *JSONAuthManager) LoginAdd(username, password, fullname, fingerprint string) error

func (*JSONAuthManager) LoginAuth

func (jam *JSONAuthManager) LoginAuth(username, password string) (fingerPrint, fullname string, err error)

func (*JSONAuthManager) UserExists

func (jam *JSONAuthManager) UserExists(username string) bool

type MemoryTokenManager

type MemoryTokenManager struct {
	// contains filtered or unexported fields
}

func MakeMemoryTokenManager

func MakeMemoryTokenManager(logger slog.Instance) *MemoryTokenManager

MakeMemoryTokenManager creates an instance of TokenManager managed in memory

func (*MemoryTokenManager) AddUser

func (mtm *MemoryTokenManager) AddUser(user interfaces.UserData) string

func (*MemoryTokenManager) AddUserWithExpiration

func (mtm *MemoryTokenManager) AddUserWithExpiration(user interfaces.UserData, expiration int) string

func (*MemoryTokenManager) GetUserData

func (mtm *MemoryTokenManager) GetUserData(token string) interfaces.UserData

func (*MemoryTokenManager) InvalidateToken

func (mtm *MemoryTokenManager) InvalidateToken(token string) error

InvalidateToken removes a token from the internal memory making it unusable in the future

func (*MemoryTokenManager) Verify

func (mtm *MemoryTokenManager) Verify(token string) error

type MigrationHandler added in v1.4.0

type MigrationHandler interface {
	InitCursor() error
	FinishCursor() error
	NextGPGKey(key *models.GPGKey) bool
	NextUser(user *models.User) bool
	NumGPGKeys() (int, error)
}

type UserRepository added in v1.4.0

type UserRepository interface {
	GetUser(username string) (um *models.User, err error)
	AddUserToken(ut models.UserToken) (string, error)
	RemoveUserToken(token string) (err error)
	GetUserToken(token string) (ut *models.UserToken, err error)
	InvalidateUserTokens() (int, error)
	AddUser(um models.User) (string, error)
	UpdateUser(um models.User) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL