user

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2018 License: MIT Imports: 5 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.

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
}

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) GetUserById

func (s *Extension) GetUserById(id uint) (*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 uint) (*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)
}

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"`
	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