fix: 修复权限系统qq提取问题,新增权限问题

This commit is contained in:
lixiangwuxian
2024-10-20 03:20:37 +08:00
parent 049b5774bf
commit 6f78e3e30d
7 changed files with 148 additions and 14 deletions

View File

@@ -1,6 +1,8 @@
package auth
import (
"strconv"
"git.lxtend.com/qqbot/constants"
"git.lxtend.com/qqbot/model"
"git.lxtend.com/qqbot/sqlite3"
@@ -25,6 +27,14 @@ func HasPermission(qqID int64, level constants.PermissionLevel) bool {
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)

View File

@@ -3,6 +3,7 @@ package auth
import "git.lxtend.com/qqbot/constants"
type Auth struct {
ID int64 `json:"id" db:"id"`
Qqid string `json:"qqid" db:"qqid"`
Role constants.PermissionLevel `json:"role" db:"role"`
}

View File

@@ -22,3 +22,17 @@ func getAuth(qqID int64) (auth Auth, err error) {
}
return auth, nil
}
func setAuth(auth Auth) error {
tx, err := sqlite3.GetTran()
if err != nil {
return err
}
defer tx.Rollback()
_, err = tx.Exec("UPDATE auth SET role = ? WHERE qqid = ?", auth.Role, auth.Qqid)
if err != nil {
return err
}
err = tx.Commit()
return err
}