user

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2019 License: MIT Imports: 6 Imported by: 4

README

Nibbler User

Provides a basic user model, and some means to persist and query it.

Utilities

  • GetSafeUser: returns a version of the user with sensitive properties wiped.
  • EnforceLoggedIn
  • EnforceEmailValidated

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToJson

func ToJson(user *User) (result string, err error)

Types

type Extension

type Extension struct {
	nibbler.Extension

	PersistenceExtension PersistenceExtension

	OnBeforeUserCreate     *func(user *User)
	OnAfterUserCreate      *func(user *User)
	OnBeforeUserUpdate     *func(user *User)
	OnAfterUserUpdate      *func(user *User)
	OnBeforePasswordUpdate *func(user *User)
	OnAfterPasswordUpdate  *func(user *User)
}

func (*Extension) AddRoutes

func (s *Extension) AddRoutes(app *nibbler.Application) error

func (*Extension) Create

func (s *Extension) Create(user *User) (*User, error)

func (*Extension) Destroy

func (s *Extension) Destroy(app *nibbler.Application) error

func (*Extension) GetUserByEmail

func (s *Extension) GetUserByEmail(email string) (*User, error)

func (*Extension) GetUserByEmailVerificationToken added in v0.3.4

func (s *Extension) GetUserByEmailVerificationToken(token string) (*User, error)

func (*Extension) GetUserById

func (s *Extension) GetUserById(id string) (*User, error)

func (*Extension) GetUserByPasswordResetToken

func (s *Extension) GetUserByPasswordResetToken(token string) (*User, error)

func (*Extension) GetUserByUsername

func (s *Extension) GetUserByUsername(username string) (*User, error)

func (*Extension) Init

func (s *Extension) Init(app *nibbler.Application) error

func (*Extension) Update

func (s *Extension) Update(user *User) error

func (*Extension) UpdatePassword

func (s *Extension) UpdatePassword(user *User) error

type PersistenceExtension

type PersistenceExtension interface {
	nibbler.Extension
	GetUserById(id string) (*User, error)
	GetUserByEmail(email string) (*User, error)
	GetUserByUsername(username string) (*User, error)
	Create(user *User) (*User, error)
	Update(user *User) error
	UpdatePassword(user *User) error
	GetUserByPasswordResetToken(token string) (*User, error)
	GetUserByEmailValidationToken(token string) (*User, error)
}

type User

type User struct {
	ID                        string     `json:"id" bson:"_id" gorm:"primary_key"` // ID
	CreatedAt                 time.Time  `json:"createdAt"`
	UpdatedAt                 time.Time  `json:"updatedAt"`
	DeletedAt                 *time.Time `json:"deletedAt,omitempty" sql:"index"`
	Email                     *string    `json:"email,omitempty" gorm:"unique"`
	Username                  *string    `json:"username,omitempty" gorm:"unique"`
	FirstName                 *string    `json:"firstName,omitempty"`
	LastName                  *string    `json:"lastName,omitempty"`
	Title                     *string    `json:"title,omitempty"`
	Password                  *string    `json:"password,omitempty"`
	PortraitUri               *string    `json:"portraitUri,omitempty"`
	AvatarUri                 *string    `json:"avatarUri,omitempty"`
	StatusText                *string    `json:"statusText,omitempty"`
	IsActive                  *bool      `json:"isActive,omitempty"`
	IsEmailValidated          *bool      `json:"isEmailValidated,omitempty"`
	DeactivatedAt             *time.Time `json:"deactivatedAt,omitempty"`
	LastLogin                 *time.Time `json:"lastLogin,omitempty"`
	FailedLoginCount          *int8      `json:"failedLoginCount,omitempty"`
	Gender                    *string    `json:"gender,omitempty" gorm:"size:1"`
	PhoneHome                 *string    `json:"phoneHome,omitempty" gorm:"size:24"`
	PhoneWork                 *string    `json:"phoneWork,omitempty" gorm:"size:24"`
	PhoneMobile               *string    `json:"phoneMobile,omitempty" gorm:"size:24"`
	PhoneOther                *string    `json:"phoneOther,omitempty" gorm:"size:24"`
	Fax                       *string    `json:"fax,omitempty" gorm:"size:24"`
	Uri                       *string    `json:"uri,omitempty"`
	Birthday                  *string    `json:"birthday,omitempty"`
	Bio                       *string    `json:"bio,omitempty"`
	AddressLine1              *string    `json:"addressLine1,omitempty"`
	AddressLine2              *string    `json:"addressLine2,omitempty"`
	AddressLine3              *string    `json:"addressLine3,omitempty"`
	AddressCity               *string    `json:"addressCity,omitempty"`
	AddressStateOrProvince    *string    `json:"addressStateOrProvince,omitempty"`
	AddressPostalCode         *string    `gorm:"size:16" json:"postalCode,omitempty"`
	CountryCode               *string    `gorm:"size:3" json:"countryCode,omitempty"`
	EmployeeId                *string    `json:"employeeId,omitempty"`
	ReferenceId               *string    `json:"referenceId,omitempty"`
	PasswordResetToken        *string    `json:"passwordResetToken,omitempty"`
	PasswordResetExpiration   *time.Time `json:"passwordResetExpiration,omitempty"`
	EmailValidationToken      *string    `json:"emailValidationToken,omitempty"`
	EmailValidationExpiration *time.Time `json:"emailValidationExpiration,omitempty"`
	EmploymentStartDate       *time.Time `json:"employmentStartDate,omitempty"`
	EmploymentEndDate         *time.Time `json:"employmentEndDate,omitempty"`
	ContractStartDate         *time.Time `json:"contractStartDate,omitempty"`
	ContractEndDate           *time.Time `json:"contractEndDate,omitempty"`
	Context                   *string    `json:"contractEndDate,omitempty"`
}

func FromJson

func FromJson(jsonString string) (*User, error)

func GetSafeUser added in v0.2.1

func GetSafeUser(user User) User

Directories

Path Synopsis
auth
database
sql

Jump to

Keyboard shortcuts

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