bizuserinters

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DeleteFieldUser      = 0x0001
	DeleteFieldGoogle2FA = 0x0002
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminFlag

type AdminFlag struct {
	UserID uint64
	Flag   bool
}

type AuthenticatorEvent

type AuthenticatorEvent struct {
	Authenticator AuthenticatorIdentity
	Event         Event
}

func (AuthenticatorEvent) Equal

type AuthenticatorIdentity

type AuthenticatorIdentity string
const (
	AuthenticatorUnspecified AuthenticatorIdentity = "_unspecified"

	AuthenticatorUser AuthenticatorIdentity = "__user"

	AuthenticatorAnonymous    AuthenticatorIdentity = "_anonymous"
	AuthenticatorUserPass     AuthenticatorIdentity = "_user-pass"
	AuthenticatorUserPassPass AuthenticatorIdentity = "_user-pass-pass"
	AuthenticatorPhone        AuthenticatorIdentity = "_phone"
	AuthenticatorEmail        AuthenticatorIdentity = "_email"
	AuthenticatorGoogle2FA    AuthenticatorIdentity = "_google-2fa"

	AuthenticatorAdmin     AuthenticatorIdentity = "_admin"
	AuthenticatorAdminFlag AuthenticatorIdentity = "_admin-flag"
)

type Event

type Event int
const (
	SetupEvent Event = iota
	VerifyEvent
	ChangeEvent
	DeleteEvent
)

type Status

type Status struct {
	Code    StatusCode
	Message string
}

func MakeStatusByCode

func MakeStatusByCode(code StatusCode) Status

func MakeStatusByError

func MakeStatusByError(code StatusCode, err error) Status

func MakeSuccessStatus

func MakeSuccessStatus() Status

type StatusCode

type StatusCode int
const (
	StatusCodeUnspecified StatusCode = iota
	StatusCodeOk
	StatusCodeNeedAuthenticator
	StatusCodeNotCompleted

	StatusCodeNoDataError
	StatusCodeInvalidArgsError
	StatusCodeInternalError
	StatusCodeExistsError
	StatusCodeNotImplementError
	StatusCodeConflictError
	StatusCodeExpiredError
	StatusCodeLogicError
	StatusCodeDupError
	StatusCodeVerifyError
	StatusCodeBadDataError
	StatusCodePermissionError
)

type TokenInfo

type TokenInfo struct {
	Token      string
	Expiration time.Duration
}

type TokenManager

type TokenManager interface {
	CreateToken(ctx context.Context) (bizID string, status Status)
	DeleteToken(bizID string)

	MarkAuthenticatorEventCompleted(ctx context.Context, bizID string, e AuthenticatorEvent) Status
	HasAuthenticatorEventCompleted(ctx context.Context, bizID string, e AuthenticatorEvent) (status Status)
	GetAllCompletedAuthenticatorEvents(ctx context.Context, bizID string) (es []AuthenticatorEvent, status Status)

	SetAuthenticatorData(ctx context.Context, bizID string, e AuthenticatorEvent, ds map[string]interface{}) (status Status)
	GetAllAuthenticatorDatas(ctx context.Context, bizID string, e Event) (ds map[AuthenticatorIdentity]map[string]interface{}, status Status)

	SetWorkData(ctx context.Context, bizID string, key string, d []byte) (status Status)
	GetWorkData(ctx context.Context, bizID string, key string) (d []byte, status Status)

	SetCurrentUserInfo(ctx context.Context, bizID string, ui *UserIdentity) (status Status)
	GetCurrentUserInfo(ctx context.Context, bizID string) (ui *UserIdentity, status Status)

	GetCurrentEvents(ctx context.Context, bizID string) (es []AuthenticatorEvent, status Status)
}

type TokenManager4Policy

type TokenManager4Policy interface {
	TokenManager

	SetCurrentEvents(ctx context.Context, bizID string, es []AuthenticatorEvent) Status
	ClearCurrentEvents(ctx context.Context, bizID string) Status
}

type TokenManagerAll

type TokenManagerAll interface {
	TokenManager4Policy
}

type UserIdentity

type UserIdentity struct {
	ID       uint64
	UserName string
}

type UserInfo

type UserInfo struct {
	ID           uint64
	UserName     string
	HasGoogle2FA bool
	Admin        bool
}

type UserInfoInner

type UserInfoInner struct {
	UserIdentity
	Password           string
	Google2FASecretKey string
	AdminFlags         []AdminFlag
}

type UserManager

type UserManager interface {
	RegisterBegin(ctx context.Context) (bizID string, neededOrEvent []AuthenticatorEvent, status Status)
	RegisterCheck(ctx context.Context, bizID string) (neededOrEvent []AuthenticatorEvent, status Status)
	RegisterEnd(ctx context.Context, bizID string) (userInfo *UserInfo, status Status)

	LoginBegin(ctx context.Context) (bizID string, neededOrEvent []AuthenticatorEvent, status Status)
	LoginCheck(ctx context.Context, bizID string) (neededOrEvent []AuthenticatorEvent, status Status)
	LoginEnd(ctx context.Context, bizID string) (userInfo *UserInfo, status Status)

	ChangeBegin(ctx context.Context, userID uint64, userName string, authenticators []AuthenticatorIdentity) (
		bizID string, neededOrEvent []AuthenticatorEvent, status Status)
	ChangeCheck(ctx context.Context, bizID string) (neededOrEvent []AuthenticatorEvent, status Status)
	ChangeEnd(ctx context.Context, bizID string) (status Status)

	DeleteBegin(ctx context.Context, userID uint64, userName string, authenticators []AuthenticatorIdentity) (bizID string, neededOrEvent []AuthenticatorEvent, status Status)
	DeleteCheck(ctx context.Context, bizID string) (neededOrEvent []AuthenticatorEvent, status Status)
	DeleteEnd(ctx context.Context, bizID string) (status Status)

	ListUsers(ctx context.Context) (users []*UserInfo, status Status)
}

Jump to

Keyboard shortcuts

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