model

package
v1.87.5 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UserAggregate            models.AggregateType = "user"
	UserUserNameAggregate    models.AggregateType = "user.username"
	UserExternalIDPAggregate models.AggregateType = "user.human.externalidp"
)

aggregates

View Source
const (
	UserAdded                     models.EventType = "user.added"
	UserRegistered                models.EventType = "user.selfregistered"
	InitializedUserCodeAdded      models.EventType = "user.initialization.code.added"
	InitializedUserCodeSent       models.EventType = "user.initialization.code.sent"
	InitializedUserCheckSucceeded models.EventType = "user.initialization.check.succeeded"
	InitializedUserCheckFailed    models.EventType = "user.initialization.check.failed"

	UserUserNameReserved models.EventType = "user.username.reserved"
	UserUserNameReleased models.EventType = "user.username.released"

	UserPasswordChanged        models.EventType = "user.password.changed"
	UserPasswordCodeAdded      models.EventType = "user.password.code.added"
	UserPasswordCodeSent       models.EventType = "user.password.code.sent"
	UserPasswordCheckSucceeded models.EventType = "user.password.check.succeeded"
	UserPasswordCheckFailed    models.EventType = "user.password.check.failed"

	UserEmailChanged            models.EventType = "user.email.changed"
	UserEmailVerified           models.EventType = "user.email.verified"
	UserEmailVerificationFailed models.EventType = "user.email.verification.failed"
	UserEmailCodeAdded          models.EventType = "user.email.code.added"
	UserEmailCodeSent           models.EventType = "user.email.code.sent"

	UserPhoneChanged            models.EventType = "user.phone.changed"
	UserPhoneRemoved            models.EventType = "user.phone.removed"
	UserPhoneVerified           models.EventType = "user.phone.verified"
	UserPhoneVerificationFailed models.EventType = "user.phone.verification.failed"
	UserPhoneCodeAdded          models.EventType = "user.phone.code.added"
	UserPhoneCodeSent           models.EventType = "user.phone.code.sent"

	UserProfileChanged  models.EventType = "user.profile.changed"
	UserAddressChanged  models.EventType = "user.address.changed"
	UserUserNameChanged models.EventType = "user.username.changed"

	MFAOTPAdded          models.EventType = "user.mfa.otp.added"
	MFAOTPVerified       models.EventType = "user.mfa.otp.verified"
	MFAOTPRemoved        models.EventType = "user.mfa.otp.removed"
	MFAOTPCheckSucceeded models.EventType = "user.mfa.otp.check.succeeded"
	MFAOTPCheckFailed    models.EventType = "user.mfa.otp.check.failed"
	MFAInitSkipped       models.EventType = "user.mfa.init.skipped"

	SignedOut models.EventType = "user.signed.out"
)

the following consts are for user v1 events

View Source
const (
	UserNameReserved models.EventType = "user.username.reserved"
	UserNameReleased models.EventType = "user.username.released"

	UserLocked      models.EventType = "user.locked"
	UserUnlocked    models.EventType = "user.unlocked"
	UserDeactivated models.EventType = "user.deactivated"
	UserReactivated models.EventType = "user.reactivated"
	UserRemoved     models.EventType = "user.removed"

	UserTokenAdded models.EventType = "user.token.added"

	DomainClaimed     models.EventType = "user.domain.claimed"
	DomainClaimedSent models.EventType = "user.domain.claimed.sent"

	UserMetadataSet        models.EventType = "user.metadata.set"
	UserMetadataRemoved    models.EventType = "user.metadata.removed"
	UserMetadataRemovedAll models.EventType = "user.metadata.removed.all"
)

the following consts are for user(v2)

View Source
const (
	HumanAdded                     models.EventType = "user.human.added"
	HumanRegistered                models.EventType = "user.human.selfregistered"
	InitializedHumanCodeAdded      models.EventType = "user.human.initialization.code.added"
	InitializedHumanCodeSent       models.EventType = "user.human.initialization.code.sent"
	InitializedHumanCheckSucceeded models.EventType = "user.human.initialization.check.succeeded"
	InitializedHumanCheckFailed    models.EventType = "user.human.initialization.check.failed"

	HumanPasswordChanged        models.EventType = "user.human.password.changed"
	HumanPasswordCodeAdded      models.EventType = "user.human.password.code.added"
	HumanPasswordCodeSent       models.EventType = "user.human.password.code.sent"
	HumanPasswordCheckSucceeded models.EventType = "user.human.password.check.succeeded"
	HumanPasswordCheckFailed    models.EventType = "user.human.password.check.failed"

	HumanExternalLoginCheckSucceeded models.EventType = "user.human.externallogin.check.succeeded"

	HumanExternalIDPReserved models.EventType = "user.human.externalidp.reserved"
	HumanExternalIDPReleased models.EventType = "user.human.externalidp.released"

	HumanExternalIDPAdded          models.EventType = "user.human.externalidp.added"
	HumanExternalIDPRemoved        models.EventType = "user.human.externalidp.removed"
	HumanExternalIDPCascadeRemoved models.EventType = "user.human.externalidp.cascade.removed"

	HumanAvatarAdded   models.EventType = "user.human.avatar.added"
	HumanAvatarRemoved models.EventType = "user.human.avatar.removed"

	HumanEmailChanged            models.EventType = "user.human.email.changed"
	HumanEmailVerified           models.EventType = "user.human.email.verified"
	HumanEmailVerificationFailed models.EventType = "user.human.email.verification.failed"
	HumanEmailCodeAdded          models.EventType = "user.human.email.code.added"
	HumanEmailCodeSent           models.EventType = "user.human.email.code.sent"

	HumanPhoneChanged            models.EventType = "user.human.phone.changed"
	HumanPhoneRemoved            models.EventType = "user.human.phone.removed"
	HumanPhoneVerified           models.EventType = "user.human.phone.verified"
	HumanPhoneVerificationFailed models.EventType = "user.human.phone.verification.failed"
	HumanPhoneCodeAdded          models.EventType = "user.human.phone.code.added"
	HumanPhoneCodeSent           models.EventType = "user.human.phone.code.sent"

	HumanProfileChanged models.EventType = "user.human.profile.changed"
	HumanAddressChanged models.EventType = "user.human.address.changed"

	HumanMFAOTPAdded          models.EventType = "user.human.mfa.otp.added"
	HumanMFAOTPVerified       models.EventType = "user.human.mfa.otp.verified"
	HumanMFAOTPRemoved        models.EventType = "user.human.mfa.otp.removed"
	HumanMFAOTPCheckSucceeded models.EventType = "user.human.mfa.otp.check.succeeded"
	HumanMFAOTPCheckFailed    models.EventType = "user.human.mfa.otp.check.failed"
	HumanMFAInitSkipped       models.EventType = "user.human.mfa.init.skipped"

	HumanMFAU2FTokenAdded            models.EventType = "user.human.mfa.u2f.token.added"
	HumanMFAU2FTokenVerified         models.EventType = "user.human.mfa.u2f.token.verified"
	HumanMFAU2FTokenSignCountChanged models.EventType = "user.human.mfa.u2f.token.signcount.changed"
	HumanMFAU2FTokenRemoved          models.EventType = "user.human.mfa.u2f.token.removed"
	HumanMFAU2FTokenBeginLogin       models.EventType = "user.human.mfa.u2f.token.begin.login"
	HumanMFAU2FTokenCheckSucceeded   models.EventType = "user.human.mfa.u2f.token.check.succeeded"
	HumanMFAU2FTokenCheckFailed      models.EventType = "user.human.mfa.u2f.token.check.failed"

	HumanPasswordlessTokenAdded           models.EventType = "user.human.passwordless.token.added"
	HumanPasswordlessTokenVerified        models.EventType = "user.human.passwordless.token.verified"
	HumanPasswordlessTokenChangeSignCount models.EventType = "user.human.passwordless.token.signcount.changed"
	HumanPasswordlessTokenRemoved         models.EventType = "user.human.passwordless.token.removed"
	HumanPasswordlessTokenBeginLogin      models.EventType = "user.human.passwordless.token.begin.login"
	HumanPasswordlessTokenCheckSucceeded  models.EventType = "user.human.passwordless.token.check.succeeded"
	HumanPasswordlessTokenCheckFailed     models.EventType = "user.human.passwordless.token.check.failed"

	HumanSignedOut models.EventType = "user.human.signed.out"
)

the following consts are for user(v2).human

View Source
const (
	MachineAdded   models.EventType = "user.machine.added"
	MachineChanged models.EventType = "user.machine.changed"

	MachineKeyAdded   models.EventType = "user.machine.key.added"
	MachineKeyRemoved models.EventType = "user.machine.key.removed"
)

the following consts are for user(v2).machines

View Source
const (
	UserVersion = "v2"
)

Variables

This section is empty.

Functions

func AddressToModel

func AddressToModel(address *Address) *model.Address

func AuthRequestToModel

func AuthRequestToModel(request *AuthRequest) *model.AuthRequest

func BrowserInfoToModel

func BrowserInfoToModel(info *BrowserInfo) *model.BrowserInfo

func EmailCodeToModel

func EmailCodeToModel(code *EmailCode) *model.EmailCode

func EmailToModel

func EmailToModel(email *Email) *model.Email

func ExternalIDPToModel

func ExternalIDPToModel(idp *ExternalIDP) *model.ExternalIDP

func ExternalIDPsToModel

func ExternalIDPsToModel(externalIDPs []*ExternalIDP) []*model.ExternalIDP

func PasswordCodeToModel

func PasswordCodeToModel(code *PasswordCode) *model.PasswordCode

func PasswordToModel

func PasswordToModel(password *Password) *model.Password

func PhoneCodeToModel

func PhoneCodeToModel(code *PhoneCode) *model.PhoneCode

func PhoneToModel

func PhoneToModel(phone *Phone) *model.Phone

func ProfileToModel

func ProfileToModel(profile *Profile) *model.Profile

func TokenToModel

func TokenToModel(token *Token) *model.Token

Types

type Address

type Address struct {
	es_models.ObjectRoot

	Country       string `json:"country,omitempty"`
	Locality      string `json:"locality,omitempty"`
	PostalCode    string `json:"postalCode,omitempty"`
	Region        string `json:"region,omitempty"`
	StreetAddress string `json:"streetAddress,omitempty"`
}

func AddressFromModel

func AddressFromModel(address *model.Address) *Address

func (*Address) Changes

func (a *Address) Changes(changed *Address) map[string]interface{}

type AuthRequest

type AuthRequest struct {
	ID                  string `json:"id,omitempty"`
	UserAgentID         string `json:"userAgentID,omitempty"`
	SelectedIDPConfigID string `json:"selectedIDPConfigID,omitempty"`
	*BrowserInfo
}

func AuthRequestFromModel

func AuthRequestFromModel(request *model.AuthRequest) *AuthRequest

func (*AuthRequest) SetData

func (a *AuthRequest) SetData(event *es_models.Event) error

type BrowserInfo

type BrowserInfo struct {
	UserAgent      string `json:"userAgent,omitempty"`
	AcceptLanguage string `json:"acceptLanguage,omitempty"`
	RemoteIP       net.IP `json:"remoteIP,omitempty"`
}

func BrowserInfoFromModel

func BrowserInfoFromModel(info *model.BrowserInfo) *BrowserInfo

type Email

type Email struct {
	es_models.ObjectRoot

	EmailAddress    string `json:"email,omitempty"`
	IsEmailVerified bool   `json:"-"`
}

func EmailFromModel

func EmailFromModel(email *model.Email) *Email

func (*Email) Changes

func (e *Email) Changes(changed *Email) map[string]interface{}

type EmailCode

type EmailCode struct {
	es_models.ObjectRoot

	Code   *crypto.CryptoValue `json:"code,omitempty"`
	Expiry time.Duration       `json:"expiry,omitempty"`
}

func EmailCodeFromModel

func EmailCodeFromModel(code *model.EmailCode) *EmailCode

func (*EmailCode) SetData

func (a *EmailCode) SetData(event *es_models.Event) error

type ExternalIDP

type ExternalIDP struct {
	es_models.ObjectRoot

	IDPConfigID string `json:"idpConfigId,omitempty"`
	UserID      string `json:"userId,omitempty"`
	DisplayName string `json:"displayName,omitempty"`
}

func ExternalIDPFromModel

func ExternalIDPFromModel(idp *model.ExternalIDP) *ExternalIDP

func ExternalIDPsFromModel

func ExternalIDPsFromModel(externalIDPs []*model.ExternalIDP) []*ExternalIDP

func GetExternalIDP

func GetExternalIDP(idps []*ExternalIDP, id string) (int, *ExternalIDP)

type Human

type Human struct {
	*Password
	*Profile
	*Email
	*Phone
	*Address
	ExternalIDPs       []*ExternalIDP   `json:"-"`
	InitCode           *InitUserCode    `json:"-"`
	EmailCode          *EmailCode       `json:"-"`
	PhoneCode          *PhoneCode       `json:"-"`
	PasswordCode       *PasswordCode    `json:"-"`
	OTP                *OTP             `json:"-"`
	U2FTokens          []*WebAuthNToken `json:"-"`
	PasswordlessTokens []*WebAuthNToken `json:"-"`
	U2FLogins          []*WebAuthNLogin `json:"-"`
	PasswordlessLogins []*WebAuthNLogin `json:"-"`
	// contains filtered or unexported fields
}

func (*Human) AppendEvent

func (h *Human) AppendEvent(event *es_models.Event) (err error)

func (*Human) AppendEvents

func (p *Human) AppendEvents(events ...*es_models.Event) error

func (*Human) ComputeObject

func (h *Human) ComputeObject()

type InitUserCode

type InitUserCode struct {
	es_models.ObjectRoot
	Code   *crypto.CryptoValue `json:"code,omitempty"`
	Expiry time.Duration       `json:"expiry,omitempty"`
}

func (*InitUserCode) SetData

func (c *InitUserCode) SetData(event *es_models.Event) error

type LanguageTag

type LanguageTag language.Tag

func (*LanguageTag) MarshalBinary

func (t *LanguageTag) MarshalBinary() ([]byte, error)

func (LanguageTag) MarshalJSON

func (t LanguageTag) MarshalJSON() ([]byte, error)

func (*LanguageTag) UnmarshalBinary

func (t *LanguageTag) UnmarshalBinary(data []byte) error

UnmarshalBinary modifies the receiver so it must take a pointer receiver.

func (*LanguageTag) UnmarshalJSON

func (t *LanguageTag) UnmarshalJSON(data []byte) error

type Machine

type Machine struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*Machine) AppendEvent

func (sa *Machine) AppendEvent(event *es_models.Event) (err error)

func (*Machine) AppendEvents

func (sa *Machine) AppendEvents(events ...*es_models.Event) error

type MachineKey

type MachineKey struct {
	es_models.ObjectRoot `json:"-"`
	KeyID                string    `json:"keyId,omitempty"`
	Type                 int32     `json:"type,omitempty"`
	ExpirationDate       time.Time `json:"expirationDate,omitempty"`
	PublicKey            []byte    `json:"publicKey,omitempty"`
	// contains filtered or unexported fields
}

func (*MachineKey) AppendEvent

func (key *MachineKey) AppendEvent(event *es_models.Event) (err error)

func (*MachineKey) AppendEvents

func (key *MachineKey) AppendEvents(events ...*es_models.Event) error

type OTP

type OTP struct {
	es_models.ObjectRoot

	Secret *crypto.CryptoValue `json:"otpSecret,omitempty"`
	State  int32               `json:"-"`
}

type OTPVerified

type OTPVerified struct {
	UserAgentID string `json:"userAgentID,omitempty"`
}

func (*OTPVerified) SetData

func (o *OTPVerified) SetData(event *es_models.Event) error

type Password

type Password struct {
	es_models.ObjectRoot

	Secret         *crypto.CryptoValue `json:"secret,omitempty"`
	ChangeRequired bool                `json:"changeRequired,omitempty"`
}

func PasswordFromModel

func PasswordFromModel(password *model.Password) *Password

type PasswordChange

type PasswordChange struct {
	Password
	UserAgentID string `json:"userAgentID,omitempty"`
}

func PasswordChangeFromModel

func PasswordChangeFromModel(password *model.Password, userAgentID string) *PasswordChange

func (*PasswordChange) SetData

func (pw *PasswordChange) SetData(event *es_models.Event) error

type PasswordCode

type PasswordCode struct {
	es_models.ObjectRoot

	Code             *crypto.CryptoValue `json:"code,omitempty"`
	Expiry           time.Duration       `json:"expiry,omitempty"`
	NotificationType int32               `json:"notificationType,omitempty"`
}

func (*PasswordCode) SetData

func (c *PasswordCode) SetData(event *es_models.Event) error

type Phone

type Phone struct {
	es_models.ObjectRoot

	PhoneNumber     string `json:"phone,omitempty"`
	IsPhoneVerified bool   `json:"-"`
}

func PhoneFromModel

func PhoneFromModel(phone *model.Phone) *Phone

func (*Phone) Changes

func (p *Phone) Changes(changed *Phone) map[string]interface{}

type PhoneCode

type PhoneCode struct {
	es_models.ObjectRoot

	Code   *crypto.CryptoValue `json:"code,omitempty"`
	Expiry time.Duration       `json:"expiry,omitempty"`
}

func PhoneCodeFromModel

func PhoneCodeFromModel(code *model.PhoneCode) *PhoneCode

func (*PhoneCode) SetData

func (c *PhoneCode) SetData(event *es_models.Event) error

type Profile

type Profile struct {
	es_models.ObjectRoot

	FirstName         string      `json:"firstName,omitempty"`
	LastName          string      `json:"lastName,omitempty"`
	NickName          string      `json:"nickName,omitempty"`
	DisplayName       string      `json:"displayName,omitempty"`
	PreferredLanguage LanguageTag `json:"preferredLanguage,omitempty"`
	Gender            int32       `json:"gender,omitempty"`
}

func ProfileFromModel

func ProfileFromModel(profile *model.Profile) *Profile

func (*Profile) Changes

func (p *Profile) Changes(changed *Profile) map[string]interface{}

type Token

type Token struct {
	es_models.ObjectRoot

	TokenID           string    `json:"tokenId" gorm:"column:token_id"`
	ApplicationID     string    `json:"applicationId" gorm:"column:application_id"`
	UserAgentID       string    `json:"userAgentId" gorm:"column:user_agent_id"`
	Audience          []string  `json:"audience" gorm:"column:audience"`
	Scopes            []string  `json:"scopes" gorm:"column:scopes"`
	Expiration        time.Time `json:"expiration" gorm:"column:expiration"`
	PreferredLanguage string    `json:"preferredLanguage" gorm:"column:preferred_language"`
}

func TokenFromModel

func TokenFromModel(token *model.Token) *Token

func (*Token) AppendEvent

func (t *Token) AppendEvent(event *es_models.Event) error

func (*Token) AppendEvents

func (t *Token) AppendEvents(events ...*es_models.Event) error

type User

type User struct {
	es_models.ObjectRoot
	State    int32  `json:"-"`
	UserName string `json:"userName"`

	*Human
	*Machine
}

func (*User) AppendEvent

func (u *User) AppendEvent(event *es_models.Event) error

func (*User) AppendEvents

func (u *User) AppendEvents(events ...*es_models.Event) error

type WebAuthNLogin

type WebAuthNLogin struct {
	es_models.ObjectRoot

	WebauthNTokenID string `json:"webAuthNTokenId"`
	Challenge       string `json:"challenge"`
	*AuthRequest
}

type WebAuthNSignCount

type WebAuthNSignCount struct {
	WebauthNTokenID string `json:"webAuthNTokenId"`
	SignCount       uint32 `json:"signCount"`
}

type WebAuthNToken

type WebAuthNToken struct {
	es_models.ObjectRoot

	WebauthNTokenID string `json:"webAuthNTokenId"`
	Challenge       string `json:"challenge"`
	State           int32  `json:"-"`

	KeyID             []byte `json:"keyId"`
	PublicKey         []byte `json:"publicKey"`
	AttestationType   string `json:"attestationType"`
	AAGUID            []byte `json:"aaguid"`
	SignCount         uint32 `json:"signCount"`
	WebAuthNTokenName string `json:"webAuthNTokenName"`
}

func GetWebauthn

func GetWebauthn(webauthnTokens []*WebAuthNToken, id string) (int, *WebAuthNToken)

type WebAuthNTokenID

type WebAuthNTokenID struct {
	WebauthNTokenID string `json:"webAuthNTokenId"`
}

type WebAuthNVerify

type WebAuthNVerify struct {
	WebAuthNTokenID   string `json:"webAuthNTokenId"`
	KeyID             []byte `json:"keyId"`
	PublicKey         []byte `json:"publicKey"`
	AttestationType   string `json:"attestationType"`
	AAGUID            []byte `json:"aaguid"`
	SignCount         uint32 `json:"signCount"`
	WebAuthNTokenName string `json:"webAuthNTokenName"`
	UserAgentID       string `json:"userAgentID,omitempty"`
}

func (*WebAuthNVerify) SetData

func (w *WebAuthNVerify) SetData(event *es_models.Event) error

Jump to

Keyboard shortcuts

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