auth

package
v0.0.0-...-e38a99a Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ReadPerm    = "r"
	WritePerm   = "w"
	ExecutePerm = "x"
	DefaultPerm = ReadPerm
	FullPerm    = "rwx"
)
View Source
const (
	PasswordHashLength = 16
)

Variables

This section is empty.

Functions

func GenerateAuthCommandData

func GenerateAuthCommandData(user *HashUser) []byte

GenerateAuthCommandData generate auth command request data

func ParseStringUsers

func ParseStringUsers(users []*User) (userStr string, err error)

ParseStringUsers parse user list to user string

Types

type HashUser

type HashUser struct {
	// UserNameHash a 16 bytes hash of username
	UserNameHash string
	// PasswordHash a 16 bytes hash of password
	PasswordHash string
	// Perm the user permission
	Perm Perm
	// Expires 14 bytes auth request info expires of utc, format like "20060102150405"
	Expires string
	// Version 2 bytes of auth api version
	Version []byte
}

HashUser store the hash info of User

func NewHashUser

func NewHashUser(userNameHash, passwordHash string, perm Perm) *HashUser

NewHashUser create a HashUser instance

func ParseAuthCommandData

func ParseAuthCommandData(data []byte) (user *HashUser, err error)

ParseAuthCommandData parse auth command request data

func ToHashUserList

func ToHashUserList(users []*User) (hashUsers []*HashUser, err error)

ToHashUserList convert User list to HashUser list

func (*HashUser) IsExpired

func (h *HashUser) IsExpired() bool

IsExpired auth request info is expired or not

func (*HashUser) RefreshExpires

func (h *HashUser) RefreshExpires() string

RefreshExpires refresh expires with current utc time

type Perm

type Perm string

func ToPerm

func ToPerm(perm string) (p Perm)

ToPerm convert a perm string to Perm

func ToPermWithDefault

func ToPermWithDefault(perm string, defaultPerm string) (p Perm)

ToPermWithDefault convert a perm string to Perm defaultPerm if the perm is empty, replace with the defaultPerm

func (Perm) CheckTo

func (p Perm) CheckTo(t Perm) bool

CheckTo check the target permission whether accord with current permission if the current permission is invalid, return false always

func (Perm) IsValid

func (p Perm) IsValid() bool

IsValid is a valid permission or not

func (Perm) R

func (p Perm) R() bool

R have the permission to read or not

func (Perm) String

func (p Perm) String() string

String return perm string

func (Perm) W

func (p Perm) W() bool

W have the permission to write or not

func (Perm) X

func (p Perm) X() bool

X have the permission to execute or not

type SessionUser

type SessionUser struct {
	UserId   int
	UserName string
	Password string
	Perm     Perm
}

SessionUser the login user info that is stored in session

func MapperToSessionUser

func MapperToSessionUser(user *User) *SessionUser

MapperToSessionUser convert User to SessionUser

type User

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

User a login user info

func NewUser

func NewUser(userId int, userName string, password string, perm string) (*User, error)

NewUser create a new user

func ParseUsers

func ParseUsers(userStr string) (users []*User, err error)

ParseUsers parse users string to User List For example: user1|password1|rwx,user2|password2|rwx

func RandomUser

func RandomUser(count, userLen, pwdLen int, perm string) ([]*User, error)

RandomUser generate some user with random username and password count is user count you want userLen is the length of random username, max length is 20 pwdLen is the length of random password, max length is 20 perm is the default permission of every random user, like 'rwx'

func (*User) Password

func (user *User) Password() string

Password return user password

func (*User) Perm

func (user *User) Perm() Perm

Perm return user permission

func (*User) String

func (user *User) String() string

String return format user info

func (*User) ToHashUser

func (user *User) ToHashUser() (hashUser *HashUser)

ToHashUser convert User to HashUser

func (*User) UserId

func (user *User) UserId() int

UserId return user id

func (*User) UserName

func (user *User) UserName() string

UserName return username

Jump to

Keyboard shortcuts

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