修改:未开启权限验证情况下的消息推送bug
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
"zhub/internal/config"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
@@ -63,6 +64,12 @@ type PermissionManager struct {
|
||||
func (p *PermissionManager) Init() error {
|
||||
p.lock.Lock()
|
||||
defer p.lock.Unlock()
|
||||
|
||||
Conf := config.ReadConfig()
|
||||
if !Conf.Service.Auth {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Load YAML configuration from file
|
||||
data, err := os.ReadFile("./auth.yml")
|
||||
if err != nil {
|
||||
|
||||
@@ -79,7 +79,7 @@ func messageHandler(v Message) {
|
||||
// auth check
|
||||
switch cmd {
|
||||
case "publish", "broadcast", "delay", "rpc":
|
||||
if !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
|
||||
if Conf.Service.Auth && !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
|
||||
c.send("-Error: Insufficient permissions to send " + cmd + " [" + rcmd[1] + "] message.")
|
||||
log.Printf("[%d] -Auth: %s [%s]\n", c.sn, cmd, rcmd[1])
|
||||
if cmd == "rpc" {
|
||||
@@ -174,7 +174,7 @@ func messageHandler(v Message) {
|
||||
// subscribe x y z
|
||||
for _, topic := range rcmd[1:] {
|
||||
// auth check
|
||||
if !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
|
||||
if Conf.Service.Auth && !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
|
||||
c.send("-Error: Insufficient permissions to " + cmd + " [" + rcmd[1] + "] message.")
|
||||
log.Printf("-Auth: %s [%s]\n", cmd, rcmd[1])
|
||||
continue
|
||||
|
||||
@@ -156,6 +156,12 @@ func (s *ZBus) timer(rcmd []string, c *ZConn) {
|
||||
}
|
||||
|
||||
func (s *ZBus) ReloadTimer() {
|
||||
// 未配置 ztimer 数据库返回
|
||||
if Conf.Ztimer.Db.Addr == "" {
|
||||
log.Println("No found ztimer config in app.ini")
|
||||
return
|
||||
}
|
||||
|
||||
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
|
||||
Conf.Ztimer.Db.User,
|
||||
Conf.Ztimer.Db.Password,
|
||||
|
||||
Reference in New Issue
Block a user