fix: 修复权限系统qq提取问题,新增权限问题
This commit is contained in:
10
auth/auth.go
10
auth/auth.go
@@ -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)
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user