Documentation
¶
Overview ¶
Package wa provides a simple web application framework.
Index ¶
- Variables
- func GenKey() ([]byte, error)
- func GenToken(key []byte, password string) []byte
- func NewLogger(config *Config) (*log.Logger, di.CleanUp, error)
- func Register(m *Module)
- func Run(injector *di.Injector) (err error)
- type AppBIZ
- func (a *AppBIZ) ChangePassword(session *Session, w http.ResponseWriter, oldPassword, newPassword string) error
- func (a *AppBIZ) GetClaim(session *Session, key string) (string, error)
- func (a *AppBIZ) GetClaims(session *Session) ([]Item[string, string], error)
- func (a *AppBIZ) GetModules(session *Session) []*Module
- func (a *AppBIZ) Login(w http.ResponseWriter, code string, password string, keep bool) (*User, error)
- func (a *AppBIZ) Logout(session *Session, w http.ResponseWriter) error
- type ClaimDAO
- type Config
- type Date
- type DateTime
- func (a DateTime) Day() int
- func (a DateTime) Hour() int
- func (a DateTime) MarshalText() ([]byte, error)
- func (a DateTime) Minute() int
- func (a DateTime) Month() int
- func (a DateTime) Second() int
- func (a DateTime) String() string
- func (a DateTime) Time() time.Time
- func (a *DateTime) UnmarshalText(text []byte) error
- func (a DateTime) Year() int
- type DictValue
- func (a DictValue) Bool(k string, xs ...bool) bool
- func (a DictValue) Dict(k string, xs ...DictValue) DictValue
- func (a DictValue) Float(k string, xs ...float64) float64
- func (a DictValue) Int(k string, xs ...int) int
- func (a DictValue) List(k string, xs ...ListValue) ListValue
- func (a DictValue) String(k string, xs ...string) string
- type Group
- type GroupDAO
- type ID
- type Item
- type ListValue
- func (a ListValue) Bool(i int, xs ...bool) bool
- func (a ListValue) Dict(i int, xs ...DictValue) DictValue
- func (a ListValue) Float(i int, xs ...float64) float64
- func (a ListValue) Int(i int, xs ...int) int
- func (a ListValue) List(i int, xs ...ListValue) ListValue
- func (a ListValue) String(i int, xs ...string) string
- type Module
- type Session
- type SessionMGR
- type User
- type UserDAO
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidGroupName = errors.New("无效的组别名称") ErrInvalidUserCode = errors.New("无效的用户代码") ErrInvalidUserName = errors.New("无效的用户名称") ErrInvalidID = ws.Errorf("无效的ID") ErrAuthFailed = ws.Errorf("用户认证失败") ErrUserLocked = ws.Errorf("用户已经锁定") ErrWeakPassword = ws.Errorf("密码过于简单") )
Errors.
Functions ¶
Types ¶
type AppBIZ ¶
type AppBIZ struct {
// contains filtered or unexported fields
}
AppBIZ represents the app BIZ.
func NewAppBIZ ¶
func NewAppBIZ(config *Config, sessionMGR *SessionMGR) *AppBIZ
NewAppBIZ creates a new app BIZ.
func (*AppBIZ) ChangePassword ¶
func (a *AppBIZ) ChangePassword(session *Session, w http.ResponseWriter, oldPassword, newPassword string) error
ChangePassword changes the user password.
func (*AppBIZ) GetModules ¶
GetModules returns the modules.
type ClaimDAO ¶
type ClaimDAO interface {
// Set sets the claim.
Set(uid ID, key string, value string) error
// Get gets the claim.
Get(uid ID, key string) (string, error)
// GetKeys gets the claim keys.
GetKeys() ([]string, error)
// Query queries the claims.
Query(uid ID) ([]Item[string, string], error)
}
ClaimDAO represents the claim DAO.
type Date ¶
type Date uint32
Date represents a date.
func (Date) MarshalText ¶
MarshalText implements encoding.TextMarshaler.
func (*Date) UnmarshalText ¶
UnmarshalText implements encoding.TextUnmarshaler.
type DateTime ¶
type DateTime uint64
DateTime represents a datetime.
func NewDateTime ¶
NewDateTime creates a new datetime.
func ParseDateTime ¶
ParseDateTime parses string to datetime.
func (DateTime) MarshalText ¶
MarshalText implements encoding.TextMarshaler.
func (*DateTime) UnmarshalText ¶
UnmarshalText implements encoding.TextUnmarshaler.
type DictValue ¶
DictValue represents a dict value for config.
type GroupDAO ¶
type GroupDAO interface {
// Create creates a new group.
Create(group *Group) (*Group, error)
// Delete deletes the group.
Delete(gid ID) error
// Update updates the group.
Update(group *Group) (*Group, error)
// Get gets the group by id.
Get(gid ID) (*Group, error)
// Find finds the group by code.
Find(code string) (*Group, error)
// Query queries the groups by keyword.
Query(gid ID, keyword string) ([]*Group, error)
// CheckGroup checks the group.
CheckGroup(pid, gid ID) error
}
GroupDAO represents the group DAO.
type ID ¶
type ID uint64
ID represents a ID.
func (ID) MarshalText ¶
MarshalText implements encoding.TextMarshaler.
func (*ID) UnmarshalText ¶
UnmarshalText implements encoding.TextUnmarshaler.
type Item ¶
type Item[K comparable, V any] struct { Key K Value V }
Item represents a common value/text item model.
type ListValue ¶
type ListValue []any
ListValue represents a list value for config.
type Module ¶
type Module struct {
Code string
Name string
Text string
Load func(*ws.Router) error `json:"-"`
Unload func() error `json:"-"`
}
Module represents a module.
type Session ¶
type Session struct {
UID ID
// contains filtered or unexported fields
}
Session represents a session.
func NewSession ¶
func NewSession(sessionMGR *SessionMGR, r *http.Request) (*Session, error)
NewSession creates a new session.
func (*Session) CheckGroup ¶
CheckGroup checks the group.
type SessionMGR ¶
type SessionMGR struct {
// contains filtered or unexported fields
}
SessionMGR represents the session manager.
func NewSessionMGR ¶
func NewSessionMGR(config *Config, groupDAO GroupDAO, userDAO UserDAO, claimDAO ClaimDAO) *SessionMGR
NewSessionMGR creates a new session manager.
func (*SessionMGR) Create ¶
func (a *SessionMGR) Create(w http.ResponseWriter, uid ID, keep bool) error
Create creates a new session.
func (*SessionMGR) Delete ¶
func (a *SessionMGR) Delete(w http.ResponseWriter, uid ID) error
Delete deletes the session.
type UserDAO ¶
type UserDAO interface {
// Create creates a new user.
Create(user *User) (*User, error)
// Delete deletes the user.
Delete(uid ID) error
// Update updates the user.
Update(user *User) (*User, error)
// Get gets the user by id.
Get(uid ID) (*User, error)
// Find finds the user by code.
Find(code string) (*User, error)
// Query queries the users by keyword.
Query(gid ID, key string, value string, keyword string) ([]*User, error)
// SetAuthToken sets the user auth token.
SetAuthToken(uid ID, token []byte) error
// GetAuthToken gets the user auth token.
GetAuthToken(uid ID) ([]byte, error)
// SetSessionToken sets the user session token.
SetSessionToken(uid ID, token []byte) error
// GetSessionToken gets the user session token.
GetSessionToken(uid ID) ([]byte, error)
}
UserDAO represents the user DAO.