qq_bot/auth/auth.go
2024-10-20 01:24:45 +08:00

38 lines
744 B
Go

package auth
import (
"git.lxtend.com/qqbot/handler"
"git.lxtend.com/qqbot/model"
"git.lxtend.com/qqbot/sqlite3"
)
func init() {
authTableCreateSQL := `
CREATE TABLE IF NOT EXISTS auth (
id INTEGER PRIMARY KEY AUTOINCREMENT,
qqid TEXT UNIQUE,
role INTEGER
);
`
sqlite3.TryCreateTable(authTableCreateSQL)
}
func HasPermission(qqID int64, level int) bool {
auth, err := getAuth(qqID)
if err != nil {
return false
}
return auth.Role <= level
}
func TryExecHandler(msg model.Message, level int, handler handler.Handler) (reply model.Reply) {
if HasPermission(msg.UserId, level) {
return handler(msg)
}
return model.Reply{
ReplyMsg: "权限验证失败",
ReferOriginMsg: true,
FromMsg: msg,
}
}