users

package
v0.9.5 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2026 License: BSD-3-Clause-Clear Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ScopeDevicesR  = scopeR << scopeShiftDevices
	ScopeDevicesRU = (scopeU | scopeR) << scopeShiftDevices
	ScopeDevicesC  = scopeC << scopeShiftDevices
	ScopeDevicesD  = scopeD << scopeShiftDevices

	ScopeUpdatesR  = scopeR << scopeShiftUpdates
	ScopeUpdatesRU = (scopeU | scopeR) << scopeShiftUpdates
	ScopeUpdatesD  = scopeD << scopeShiftUpdates

	ScopeUsersR  = scopeR << scopeShiftUsers
	ScopeUsersRU = (scopeU | scopeR) << scopeShiftUsers
	ScopeUsersC  = scopeC << scopeShiftUsers
	ScopeUsersD  = scopeD << scopeShiftUsers
)

Variables

This section is empty.

Functions

func ScopesAvailable

func ScopesAvailable() []string

ScopesAvailable returns a list of all available scopes as strings for display purposes.

Types

type OAuth2DeviceAuth added in v0.9.5

type OAuth2DeviceAuth struct {
	DeviceCode       string
	UserCode         string
	ExpiresAt        int64
	TokenExpires     int64  // What time the issued token should expire
	TokenDescription string // Description to be stored with the issued token
	Scopes           string // The scopes to be assigned to the token
	UserID           *int64
	Authorized       bool
	Denied           bool
}

OAuth2DeviceAuth represents an OAuth2 device-flow authorization request

type Scopes

type Scopes uint64

Scopes is a bitmask representation of RBAC access. Scopes are done in groups of four bits to denote Read, Update, Create, Delete. This 64-bit value gives room for 16 different resources.

func ScopesFromSlice

func ScopesFromSlice(scopes []string) (Scopes, error)

ScopesFromSlice parses a slice of scope strings into a Scopes bitmask.

func ScopesFromString

func ScopesFromString(scopes string) (Scopes, error)

ScopesFromString parses a comma-separated list of scopes into a Scopes bitmask.

func (Scopes) Has

func (s Scopes) Has(scope Scopes) bool

func (Scopes) String

func (s Scopes) String() string

func (Scopes) ToSlice

func (s Scopes) ToSlice() []string

type Storage

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

func NewStorage

func NewStorage(db *storage.DbHandle, fs *storage.FsHandle, authConfig *storage.AuthConfig) (*Storage, error)

func (Storage) Create

func (s Storage) Create(u *User) error

func (Storage) CreateDeviceAuth added in v0.9.5

func (s Storage) CreateDeviceAuth(expiresAt, tokenExpires int64, scopes string) (string, string, error)

func (Storage) DeleteDeviceAuth added in v0.9.5

func (s Storage) DeleteDeviceAuth(deviceCode string) error

func (Storage) DeleteExpiredDeviceAuth added in v0.9.5

func (s Storage) DeleteExpiredDeviceAuth(before int64) error

func (Storage) Get

func (s Storage) Get(username string) (*User, error)

func (Storage) GetByID added in v0.9.5

func (s Storage) GetByID(id int64) (*User, error)

func (Storage) GetBySession

func (s Storage) GetBySession(id string) (*User, error)

func (Storage) GetByToken

func (s Storage) GetByToken(token string) (*User, error)

func (Storage) GetDeviceAuthByDeviceCode added in v0.9.5

func (s Storage) GetDeviceAuthByDeviceCode(deviceCode string) (*OAuth2DeviceAuth, error)

func (Storage) GetDeviceAuthByUserCode added in v0.9.5

func (s Storage) GetDeviceAuthByUserCode(userCode string) (*OAuth2DeviceAuth, error)

func (Storage) List

func (s Storage) List() ([]User, error)

func (Storage) RunGc

func (s Storage) RunGc()

func (Storage) Upsert

func (s Storage) Upsert(username, email string, scopes Scopes) (*User, error)

type Token

type Token struct {
	PublicID    int64
	CreatedAt   int64
	ExpiresAt   int64
	Description string
	Scopes      Scopes
	Value       string
}

type User

type User struct {
	Username string
	Password string
	Email    string

	CreatedAt int64
	Deleted   bool

	AllowedScopes Scopes

	AuthProviderData []byte
	// contains filtered or unexported fields
}

func (User) ApproveAuthorization added in v0.9.5

func (u User) ApproveAuthorization(deviceCode string, tokenDescription string, scopes Scopes) error

func (User) CreateSession

func (u User) CreateSession(remoteIP string, expires int64, scopes Scopes) (string, error)

func (User) Delete

func (u User) Delete() error

func (User) DeleteSession

func (u User) DeleteSession(id string) error

func (User) DeleteToken

func (u User) DeleteToken(id int64) error

func (User) DenyDeviceAuth added in v0.9.5

func (u User) DenyDeviceAuth(deviceCode string) error

func (User) GenerateToken

func (u User) GenerateToken(description string, expires int64, scopes Scopes) (*Token, error)

func (User) GetAuditLog

func (u User) GetAuditLog() (string, error)

func (User) ListTokens

func (u User) ListTokens() ([]Token, error)

func (User) Update

func (u User) Update(reason string) error

Jump to

Keyboard shortcuts

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