package auth import ( "strconv" "git.lxtend.com/qqbot/constants" "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 constants.PermissionLevel) bool { auth, err := getAuth(qqID) if err != nil { return false } return auth.Role <= level } func SetPermission(qqID int64, level constants.PermissionLevel) error { auth := Auth{ Qqid: strconv.Itoa(int(qqID)), Role: level, } return setAuth(auth) } func TryExecHandler(msg model.Message, level constants.PermissionLevel, handler model.Handler) (reply model.Reply) { if HasPermission(msg.UserId, level) { return handler(msg) } return model.Reply{ ReplyMsg: "权限验证失败", ReferOriginMsg: true, FromMsg: msg, } }