bll

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2024 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LogActionSysCreateUser     = "sys.create.user"
	LogActionSysUpdateUser     = "sys.update.user"
	LogActionSysUpdateGroup    = "sys.update.group"
	LogActionSysUpdateCreation = "sys.update.creation"
	LogActionUserLogin         = "user.login"
	LogActionUserAuthz         = "user.authz"
	LogActionUserUpdate        = "user.update"
	LogActionUserUpdateCN      = "user.update.cn"
	LogActionUserLogout        = "user.logout"
	LogActionUserCollect       = "user.collect"
	LogActionUserFollow        = "user.follow"
	LogActionUserSubscribe     = "user.subscribe"
	LogActionUserSponsor       = "user.sponsor"
	LogActionGroupCreate       = "group.create"
	LogActionGroupUpdate       = "group.update"
	LogActionGroupUpdateCN     = "group.update.cn"
	LogActionGroupTransfer     = "group.transfer"
	LogActionGroupDelete       = "group.delete"
	LogActionGroupCreateUser   = "group.create.user"
	LogActionGroupUpdateUser   = "group.update.user"
	LogActionGroupAddMember    = "group.add.member"
	LogActionGroupUpdateMember = "group.update.member"
	LogActionGroupRemoveMember = "group.remove.member"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthN

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

func (*AuthN) LoginOrNew

func (b *AuthN) LoginOrNew(ctx context.Context, input *AuthNInput) (*AuthNSessionOutput, error)

func (*AuthN) PassKeyGetChallenge added in v1.2.0

func (b *AuthN) PassKeyGetChallenge(ctx context.Context) (*ChallengeOutput, error)

func (*AuthN) PassKeyVerifyAuthentication added in v1.2.0

func (b *AuthN) PassKeyVerifyAuthentication(ctx context.Context, input *AuthenticationCredentialInput) (*AuthNSessionOutput, error)

func (*AuthN) PassKeyVerifyRegistration added in v1.2.0

func (b *AuthN) PassKeyVerifyRegistration(ctx context.Context, input *RegistrationCredentialInput) (*AuthNOutput, error)

type AuthNInput

type AuthNInput struct {
	Idp        string   `json:"idp" cbor:"idp"`
	Aud        string   `json:"aud" cbor:"aud"`
	Sub        string   `json:"sub" cbor:"sub"`
	ExpiresIn  uint     `json:"expires_in" cbor:"expires_in"`
	Scope      []string `json:"scope" cbor:"scope"`
	Ip         string   `json:"ip" cbor:"ip"`
	DeviceID   string   `json:"device_id" cbor:"device_id"`
	DeviceDesc string   `json:"device_desc" cbor:"device_desc"`
	Payload    []byte   `json:"payload" cbor:"payload"`
	User       UserInfo `json:"user" cbor:"user"`
	CoAuthN    *AuthNPK `json:"co_authn,omitempty" cbor:"co_authn,omitempty"`
}

type AuthNOutput

type AuthNOutput struct {
	Idp string   `json:"idp" cbor:"idp"`
	Aud string   `json:"aud" cbor:"aud"`
	Sub string   `json:"sub" cbor:"sub"`
	UID *util.ID `json:"uid,omitempty" cbor:"uid,omitempty"`
}

type AuthNPK added in v1.0.1

type AuthNPK struct {
	Idp string `json:"idp" cbor:"idp"`
	Aud string `json:"aud" cbor:"aud"`
	Sub string `json:"sub" cbor:"sub"`
}

type AuthNSessionOutput added in v0.2.0

type AuthNSessionOutput struct {
	SID           util.ID   `json:"sid" cbor:"sid"`
	UID           *util.ID  `json:"uid,omitempty" cbor:"uid,omitempty"`
	Sub           util.UUID `json:"sub" cbor:"sub"`
	Session       string    `json:"session" cbor:"session"`
	Name          string    `json:"name" cbor:"name"`
	Picture       string    `json:"picture" cbor:"picture"`
	UserCreatedAt int64     `json:"user_created_at" cbor:"user_created_at"`
}

type AuthenticationCredentialInput added in v1.2.0

type AuthenticationCredentialInput struct {
	ID                string     `json:"id" cbor:"id"`
	AuthenticatorData util.Bytes `json:"authenticator_data" cbor:"authenticator_data"`
	ClientData        util.Bytes `json:"client_data" cbor:"client_data"`
	Signature         util.Bytes `json:"signature" cbor:"signature"`
	IP                string     `json:"ip" cbor:"ip"`
	DeviceID          string     `json:"device_id" cbor:"device_id"`
	DeviceDesc        string     `json:"device_desc" cbor:"device_desc"`
}

func (*AuthenticationCredentialInput) Validate added in v1.2.0

func (i *AuthenticationCredentialInput) Validate() error

type AwardInput added in v0.6.0

type AwardInput struct {
	Payee       util.ID    `json:"payee" cbor:"payee"`
	Amount      int64      `json:"amount" cbor:"amount"`
	Credits     uint64     `json:"credits" cbor:"credits"`
	Description string     `json:"description,omitempty" cbor:"description,omitempty"`
	Payload     util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
}

type AwardPayload added in v0.6.0

type AwardPayload struct {
	Referrer *util.ID `json:"referrer,omitempty" cbor:"referrer,omitempty"`
}

type Blls

type Blls struct {
	AuthN      *AuthN
	Logbase    *Logbase
	Session    *Session
	Walletbase *Walletbase
}

Blls ...

func NewBlls

func NewBlls(oss *service.OSS) *Blls

NewBlls ...

func (*Blls) Stats

func (b *Blls) Stats(ctx context.Context) (res map[string]any, err error)

type ChallengeOutput added in v1.2.0

type ChallengeOutput struct {
	RpID       string     `json:"rp_id" cbor:"rp_id"`
	RpName     string     `json:"rp_name" cbor:"rp_name"`
	UserHandle string     `json:"user_handle" cbor:"user_handle"`
	Challenge  util.Bytes `json:"challenge" cbor:"challenge"`
}

type CreateLogInput added in v0.6.0

type CreateLogInput struct {
	UID     util.ID    `json:"uid" cbor:"uid"`
	GID     util.ID    `json:"gid" cbor:"gid"`
	Action  string     `json:"action" cbor:"action"`
	Status  int8       `json:"status" cbor:"status"`
	IP      string     `json:"ip" cbor:"ip"`
	Payload util.Bytes `json:"payload" cbor:"payload"`
	Tokens  uint32     `json:"tokens" cbor:"tokens"`
}

type LogOutput added in v0.6.0

type LogOutput struct {
	UID     util.ID     `json:"uid" cbor:"uid"`
	ID      util.ID     `json:"id" cbor:"id"`
	Status  int8        `json:"status" cbor:"status"`
	Action  string      `json:"action" cbor:"action"`
	GID     *util.ID    `json:"gid,omitempty" cbor:"gid,omitempty"`
	IP      *string     `json:"ip,omitempty" cbor:"ip,omitempty"`
	Payload *util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
	Tokens  *uint32     `json:"tokens,omitempty" cbor:"tokens,omitempty"`
	Error   *string     `json:"error,omitempty" cbor:"error,omitempty"`
}

type LogPayload added in v0.6.0

type LogPayload struct {
	Idp *string `json:"idp,omitempty" cbor:"idp,omitempty"`
	Sub *string `json:"sub,omitempty" cbor:"sub,omitempty"`
}

type Logbase added in v0.6.0

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

func (*Logbase) Get added in v0.6.0

func (b *Logbase) Get(ctx context.Context, uid, id util.ID, fields string) (*LogOutput, error)

func (*Logbase) Log added in v0.6.0

func (b *Logbase) Log(ctx *gear.Context, action string, status int8, uid, gid util.ID, payload any) (*LogOutput, error)

func (*Logbase) Update added in v0.6.0

func (b *Logbase) Update(ctx context.Context, input *UpdateLog) (*LogOutput, error)

type RegistrationCredentialInput added in v1.2.0

type RegistrationCredentialInput struct {
	ID                string     `json:"id" cbor:"id"`
	DisplayName       string     `json:"display_name" cbor:"display_name"`
	AuthenticatorData util.Bytes `json:"authenticator_data" cbor:"authenticator_data"`
	ClientData        util.Bytes `json:"client_data" cbor:"client_data"`
	IP                string     `json:"ip" cbor:"ip"`
	Locale            string     `json:"locale" cbor:"locale"`
	UID               *util.ID   `json:"uid,omitempty" cbor:"uid,omitempty"`
}

func (*RegistrationCredentialInput) Validate added in v1.2.0

func (i *RegistrationCredentialInput) Validate() error

type Session

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

func (*Session) AccessToken

func (b *Session) AccessToken(ctx context.Context, input *SessionInput) (*SessionOutput, error)

func (*Session) Delete added in v0.5.0

func (b *Session) Delete(ctx context.Context, sid util.ID) (*SuccessResponse[bool], error)

func (*Session) DeriveUserKey added in v1.2.2

func (b *Session) DeriveUserKey(ctx context.Context, uid util.ID, path string) ([]byte, error)

func (*Session) DisabledUser added in v0.6.6

func (b *Session) DisabledUser(ctx context.Context, uid util.ID) (*SuccessResponse[userInfo], error)

func (*Session) UpdateUserInfo added in v1.2.1

func (b *Session) UpdateUserInfo(ctx context.Context, input *UpdateUserInput) (*UserInfo, error)

func (*Session) UserInfo

func (b *Session) UserInfo(ctx context.Context, id *util.ID, cn string) (*UserInfo, error)

func (*Session) Verify

func (b *Session) Verify(ctx context.Context, input *SessionInput) (*SessionOutput, error)

type SessionInput

type SessionInput struct {
	Session   string   `json:"session" cbor:"session"`
	Aud       *util.ID `json:"aud" cbor:"aud"`
	ExpiresIn uint     `json:"expires_in" cbor:"expires_in"`
}

type SessionOutput

type SessionOutput struct {
	SID         *util.ID   `json:"sid,omitempty" cbor:"sid,omitempty"`
	Sub         *util.UUID `json:"sub,omitempty" cbor:"sub,omitempty"`
	UID         *util.ID   `json:"uid,omitempty" cbor:"uid,omitempty"`
	AccessToken string     `json:"access_token,omitempty" cbor:"access_token,omitempty"`
	IDToken     string     `json:"id_token,omitempty" cbor:"id_token,omitempty"`
	ExpiresIn   uint       `json:"expires_in,omitempty" cbor:"expires_in,omitempty"`
}

type SuccessResponse

type SuccessResponse[T any] struct {
	Result T `json:"result" cbor:"result"`
}

type UpdateLog added in v0.6.0

type UpdateLog struct {
	UID     util.ID     `json:"uid" cbor:"uid"`
	ID      util.ID     `json:"id" cbor:"id"`
	Status  int8        `json:"status" cbor:"status"`
	Payload *util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
	Tokens  *uint32     `json:"tokens,omitempty" cbor:"tokens,omitempty"`
	Error   *string     `json:"error,omitempty" cbor:"error,omitempty"`
}

type UpdateSpecialFieldInput added in v0.6.6

type UpdateSpecialFieldInput struct {
	ID        util.ID `json:"id" cbor:"id"`
	UpdatedAt int64   `json:"updated_at" cbor:"updated_at"`
	Status    *int8   `json:"status,omitempty" cbor:"status,omitempty"`
	Rating    *int8   `json:"rating,omitempty" cbor:"rating,omitempty"`
	Kind      *int8   `json:"kind,omitempty" cbor:"kind,omitempty"`
	Email     *string `json:"email,omitempty" cbor:"email,omitempty"`
	Phone     *string `json:"phone,omitempty" cbor:"phone,omitempty"`
}

type UpdateUserInput added in v0.2.0

type UpdateUserInput struct {
	ID      *util.ID `json:"id,omitempty" cbor:"id,omitempty"`
	Name    string   `json:"name,omitempty" cbor:"name,omitempty" validate:"omitempty,gte=2,lte=64"`
	Picture string   `json:"picture,omitempty" cbor:"picture,omitempty" validate:"omitempty,http_url"`
}

func (*UpdateUserInput) Validate added in v1.2.1

func (i *UpdateUserInput) Validate() error

type UserInfo

type UserInfo struct {
	ID      *util.ID `json:"id,omitempty" cbor:"id,omitempty"` // should not return to client
	CN      string   `json:"cn" cbor:"cn"`
	Name    string   `json:"name" cbor:"name"`
	Locale  string   `json:"locale" cbor:"locale"`
	Picture string   `json:"picture" cbor:"picture"`
	Status  int8     `json:"status" cbor:"status"`
}

type UserKeyDerivationInput added in v1.2.2

type UserKeyDerivationInput struct {
	ID   util.ID `json:"id" cbor:"id"`
	Path string  `json:"path" cbor:"path"`
}

type WalletOutput added in v0.6.0

type WalletOutput struct {
	Sequence uint64  `json:"sequence" cbor:"sequence"`
	Award    int64   `json:"award" cbor:"award"`
	Topup    int64   `json:"topup" cbor:"topup"`
	Income   int64   `json:"income" cbor:"income"`
	Credits  uint64  `json:"credits" cbor:"credits"`
	Level    uint8   `json:"level" cbor:"level"`
	Txn      util.ID `json:"txn" cbor:"txn"`
}

func (*WalletOutput) Balance added in v0.6.0

func (w *WalletOutput) Balance() int64

func (*WalletOutput) SetLevel added in v0.6.0

func (w *WalletOutput) SetLevel()

type Walletbase added in v0.6.0

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

func (*Walletbase) AwardRegistration added in v0.6.0

func (b *Walletbase) AwardRegistration(ctx context.Context, uid util.ID, input *AwardPayload) (*WalletOutput, error)

func (*Walletbase) Get added in v0.6.0

func (b *Walletbase) Get(ctx context.Context, uid util.ID) (*WalletOutput, error)

Jump to

Keyboard shortcuts

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