Actually check for chat command permission

master
HimbeerserverDE 2021-09-09 16:58:38 +02:00
parent 4c5063b9f9
commit e3ee372dfb
No known key found for this signature in database
GPG Key ID: 1A651504791E6A8B
1 changed files with 10 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package proxy
import (
"fmt"
"strings"
"sync"
@ -9,7 +10,7 @@ import (
type ChatCmd struct {
Name string
Perms []string
Perm string
Handler func(*ClientConn, ...string) string
}
@ -71,7 +72,14 @@ func onChatMsg(cc *ClientConn, cmd *mt.ToSrvChatMsg) string {
chatCmdsMu.RLock()
defer chatCmdsMu.RUnlock()
return chatCmds[cmdName].Handler(cc, args...)
cmd := chatCmds[cmdName]
if !cc.HasPerms(cmd.Perm) {
cc.Log("<--", "deny command", cmdName)
return fmt.Sprintf("Missing permission %s.", cmd.Perm)
}
return cmd.Handler(cc, args...)
}
return ""