auth

package
v0.0.0-...-28b3ec9 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2016 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Action

func Action(f cli.ActionFunc) cli.ActionFunc

Action load config action

func CreateCertificate

func CreateCertificate(ca bool, subject pkix.Name, years int) ([]byte, []byte, error)

CreateCertificate create certs

func Home

func Home() string

Home home url

func IocAction

func IocAction(fn func(*cli.Context, *inject.Graph) error) cli.ActionFunc

IocAction ioc action

func IsProduction

func IsProduction() bool

IsProduction is production mode?

func JSON

func JSON(fn func(*gin.Context) (interface{}, error)) gin.HandlerFunc

JSON json handler

func OpenDatabase

func OpenDatabase() (*gorm.DB, error)

OpenDatabase open database

func OpenLogger

func OpenLogger() *logging.Logger

OpenLogger open logger

func OpenRedis

func OpenRedis() *redis.Pool

OpenRedis get redis connection pool

func Redirect

func Redirect(fn func(*gin.Context) (string, error)) gin.HandlerFunc

Redirect redirect handler

func WritePemFile

func WritePemFile(file, _type string, buf []byte) error

WritePemFile wirte to a pem format file

Types

type Author

type Author struct {
	Name  string
	Email string
}

Author author info

type Dao

type Dao struct {
	Db                *gorm.DB               `inject:""`
	TextEncryptor     *web.TextEncryptor     `inject:""`
	PasswordEncryptor *web.PasswordEncryptor `inject:""`
	Logger            *logging.Logger        `inject:""`
}

Dao db helper

func (*Dao) AddOpenIDUser

func (p *Dao) AddOpenIDUser(pid, pty, email, name, home, logo string) (*User, error)

AddOpenIDUser add openid user

func (*Dao) Allow

func (p *Dao) Allow(role uint, user uint, years, months, days int) error

Allow allow permission

func (*Dao) Authority

func (p *Dao) Authority(user uint, rty string, rid uint) []string

Authority get user's role names

func (*Dao) Can

func (p *Dao) Can(user uint, name string, rty string, rid uint) bool

Can can?

func (*Dao) Deny

func (p *Dao) Deny(role uint, user uint) error

Deny deny permission

func (*Dao) Get

func (p *Dao) Get(k string, v interface{}) error

Get get setting value by key

func (*Dao) GetUserByEmail

func (p *Dao) GetUserByEmail(email string) (*User, error)

GetUserByEmail get user by email

func (*Dao) GetUserByUID

func (p *Dao) GetUserByUID(uid string) (*User, error)

GetUserByUID get user by uid

func (*Dao) Is

func (p *Dao) Is(user uint, name string) bool

Is is role ?

func (*Dao) Log

func (p *Dao) Log(user uint, msg string)

Log add log

func (*Dao) Role

func (p *Dao) Role(name string, rty string, rid uint) (*Role, error)

Role check role exist

func (*Dao) Set

func (p *Dao) Set(k string, v interface{}, f bool) error

Set save setting

func (*Dao) SignIn

func (p *Dao) SignIn(email, password string) (*User, error)

SignIn sign in

func (*Dao) SignUp

func (p *Dao) SignUp(email, name, password string) (*User, error)

SignUp sign up

func (*Dao) UserClaims

func (p *Dao) UserClaims(u *User) jws.Claims

UserClaims generate user claims

type Engine

type Engine struct {
	Cache             cache.Store            `inject:""`
	Db                *gorm.DB               `inject:""`
	Dao               *Dao                   `inject:""`
	Jobber            jobber.Jobber          `inject:""`
	Logger            *logging.Logger        `inject:""`
	Jwt               *Jwt                   `inject:""`
	PasswordEncryptor *web.PasswordEncryptor `inject:""`
	I18n              *i18n.I18n             `inject:""`
}

Engine engine

func (*Engine) Map

func (p *Engine) Map(inj *inject.Graph) error

Map map objects

func (*Engine) Migrate

func (p *Engine) Migrate(db *gorm.DB)

Migrate db:migrate

func (*Engine) Mount

func (p *Engine) Mount(rt *gin.Engine)

Mount mout

func (*Engine) Seed

func (p *Engine) Seed()

Seed db:seed

func (*Engine) Shell

func (p *Engine) Shell() []cli.Command

Shell command line

func (*Engine) Worker

func (p *Engine) Worker()

Worker register worker handler

type FmChangePassword

type FmChangePassword struct {
	Token      string `form:"token" binding:"required"`
	Password   string `form:"password" binding:"required" validate:"min=6,max=255"`
	RePassword string `form:"re_password" binding:"required"`
}

FmChangePassword sign-up form

type FmEmail

type FmEmail struct {
	Email string `form:"email" binding:"required" validate:"email,max=255"`
}

FmEmail email form

type FmSignIn

type FmSignIn struct {
	Email    string `form:"email" binding:"required" validate:"email,max=255"`
	Password string `form:"password" binding:"required"`
}

FmSignIn sign-in form

type FmSignUp

type FmSignUp struct {
	Name       string `form:"name" binding:"required" validate:"min=2,max=255"`
	Email      string `form:"email" binding:"required" validate:"email,max=255"`
	Password   string `form:"password" binding:"required" validate:"min=6,max=255"`
	RePassword string `form:"re_password" binding:"required"`
}

FmSignUp sign-up form

type FmToken

type FmToken struct {
	Token string `form:"token" binding:"required"`
}

FmToken email form

type Jwt

type Jwt struct {
	Key    []byte               `inject:"jwt.key"`
	Method crypto.SigningMethod `inject:"jwt.method"`
	Logger *logging.Logger      `inject:""`
	Dao    *Dao                 `inject:""`
}

Jwt jwt helper

func (*Jwt) CurrentUserHandler

func (p *Jwt) CurrentUserHandler(must bool) gin.HandlerFunc

CurrentUserHandler inject current user

func (*Jwt) MustAdminHandler

func (p *Jwt) MustAdminHandler() gin.HandlerFunc

MustAdminHandler check must have admin role

func (*Jwt) MustRolesHandler

func (p *Jwt) MustRolesHandler(roles ...string) gin.HandlerFunc

MustRolesHandler check must have one roles at least

func (*Jwt) Sum

func (p *Jwt) Sum(cm jws.Claims, days int) ([]byte, error)

Sum create jwt token

func (*Jwt) Validate

func (p *Jwt) Validate(buf []byte) (jwt.Claims, error)

Validate check jwt

type LeaveWord

type LeaveWord struct {
	ID        uint      `gorm:"primary_key" json:"id"`
	Content   string    `gorm:"not null;type:text" json:"content"`
	CreatedAt time.Time `gorm:"not null;default:current_timestamp" json:"created_at"`
}

LeaveWord leave word

type Link struct {
	Title string
	Href  string
}

Link link info

type Log

type Log struct {
	ID        uint      `gorm:"primary_key" json:"id"`
	UserID    uint      `gorm:"not null" json:"-"`
	User      User      `json:"-"`
	Message   string    `gorm:"not null;type:VARCHAR(255)" json:"message"`
	CreatedAt time.Time `gorm:"not null;default:current_timestamp" json:"created_at"`
}

Log model

type Notice

type Notice struct {
	web.Model
	Lang    string `gorm:"not null;type:varchar(8);index" json:"lang"`
	Content string `gorm:"not null;type:text" json:"content"`
}

Notice notice

type Page

type Page struct {
	Locale      string
	Title       string
	SubTitle    string
	Keywords    string
	Description string
	Copyright   string

	Home   string
	Author Author
	Links  []Link
}

Page page info

type Permission

type Permission struct {
	web.Model
	User   User
	UserID uint `gorm:"not null"`
	Role   Role
	RoleID uint      `gorm:"not null"`
	Begin  time.Time `gorm:"not null;default:current_date;type:date"`
	End    time.Time `gorm:"not null;default:'1000-1-1';type:date"`
}

Permission permission model

func (*Permission) BeginS

func (p *Permission) BeginS() string

BeginS begin to string

func (*Permission) Enable

func (p *Permission) Enable() bool

Enable is enable?

func (*Permission) EndS

func (p *Permission) EndS() string

EndS end to string

type Role

type Role struct {
	web.Model

	Name         string `gorm:"not null;index;type:VARCHAR(255)"`
	ResourceType string `gorm:"not null;default:'-';index;type:VARCHAR(255)"`
	ResourceID   uint   `gorm:"not null;default:0"`
}

Role role model

func (Role) String

func (p Role) String() string

type Setting

type Setting struct {
	web.Model

	Key    string `gorm:"not null;unique;type:VARCHAR(255)"`
	Val    []byte `gorm:"not null"`
	Encode bool   `gorm:"not null"`
}

Setting setting

type User

type User struct {
	web.Model
	Email    string `gorm:"not null;index;type:VARCHAR(255)" json:"email"`
	UID      string `gorm:"not null;unique;type:char(36)" json:"uid"`
	Home     string `gorm:"not null;type:VARCHAR(255)" json:"home"`
	Name     string `gorm:"not null;type:VARCHAR(255)" json:"name"`
	Password string `gorm:"not null;default:'-';type:VARCHAR(500)" json:"-"`

	ProviderType string `gorm:"not null;default:'unknown';index;type:VARCHAR(255)" json:"provider_type"`
	ProviderID   string `gorm:"not null;index;type:VARCHAR(255)" json:"provider_id"`

	LastSignIn  *time.Time `json:"last_sign_in"`
	SignInCount uint       `gorm:"not null;default:0" json:"sign_in_count"`
	ConfirmedAt *time.Time `json:"confirmed_at"`
	LockedAt    *time.Time `json:"locked_at"`

	Permissions []Permission `json:"permissions"`
	Logs        []Log        `json:"logs"`
}

User user model

func (*User) IsAvailable

func (p *User) IsAvailable() bool

IsAvailable is valid?

func (*User) IsConfirmed

func (p *User) IsConfirmed() bool

IsConfirmed confirmed?

func (*User) IsLocked

func (p *User) IsLocked() bool

IsLocked locked?

func (p *User) SetGravatarLogo()

SetGravatarLogo set logo by gravatar

func (User) String

func (p User) String() string

Jump to

Keyboard shortcuts

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