fix: 修复权限加入问题

This commit is contained in:
lixiangwuxian 2024-10-20 03:56:35 +08:00
parent 9cbcc3227f
commit 67cff69184
3 changed files with 12 additions and 3 deletions

View File

@ -21,7 +21,11 @@ func init() {
func HasPermission(qqID int64, level constants.PermissionLevel) bool { func HasPermission(qqID int64, level constants.PermissionLevel) bool {
auth, err := getAuth(qqID) auth, err := getAuth(qqID)
if err != nil { maxRetry := 50
for i := 0; i < maxRetry && (err != nil); i++ {
auth, err = getAuth(qqID)
}
if err != nil || auth.Qqid == "" {
return false return false
} }
return auth.Role <= level return auth.Role <= level
@ -40,7 +44,7 @@ func TryExecHandler(msg model.Message, level constants.PermissionLevel, handler
return handler(msg) return handler(msg)
} }
return model.Reply{ return model.Reply{
ReplyMsg: "权限验证失败", ReplyMsg: "权限不足,有需要请联系管理员",
ReferOriginMsg: true, ReferOriginMsg: true,
FromMsg: msg, FromMsg: msg,
} }

View File

@ -16,10 +16,15 @@ func getAuth(qqID int64) (auth Auth, err error) {
err = tx.Get(&auth, "SELECT * FROM auth WHERE qqid = ?", qqID) err = tx.Get(&auth, "SELECT * FROM auth WHERE qqid = ?", qqID)
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
_, err = tx.Exec("INSERT INTO auth(qqid, role) VALUES(?, ?)", qqID, constants.LEVEL_USER) _, err = tx.Exec("INSERT INTO auth(qqid, role) VALUES(?, ?)", qqID, constants.LEVEL_USER)
tx.Get(&auth, "SELECT * FROM auth WHERE qqid = ?", qqID)
} }
if err != nil { if err != nil {
return Auth{}, err return Auth{}, err
} }
err = tx.Commit()
if err != nil {
return Auth{}, err
}
return auth, nil return auth, nil
} }

View File

@ -12,7 +12,7 @@ import (
) )
func init() { func init() {
handler.RegisterFrontMatchHandler("用户权限", setUserLevel, constants.LEVEL_ROOT) handler.RegisterFrontMatchHandler("用户权限", setUserLevel, constants.LEVEL_USER)
handler.RegisterHelpInform("用户权限", "用户权限 [用户] [权限] 设置用户权限。允许的权限有:根用户、管理员、信任、用户、拉黑") handler.RegisterHelpInform("用户权限", "用户权限 [用户] [权限] 设置用户权限。允许的权限有:根用户、管理员、信任、用户、拉黑")
} }