diff --git a/bot/command.go b/bot/command.go index ea19740..9a67a97 100644 --- a/bot/command.go +++ b/bot/command.go @@ -175,7 +175,7 @@ func (b *Bot) runStop(ctx context.Context, checkAllowed bool) { return } - if checkAllowed && !cfg.Allowed(b.noowner, evt.Sender) { + if checkAllowed && !cfg.Allowed(b.noowner, evt.Sender, b.allowedUsers) { b.Notice(ctx, evt.RoomID, "you don't have permission to do that") return } @@ -251,7 +251,7 @@ func (b *Bot) setOption(ctx context.Context, name, value string) { return } - if !cfg.Allowed(b.noowner, evt.Sender) { + if !cfg.Allowed(b.noowner, evt.Sender, b.allowedUsers) { b.Notice(ctx, evt.RoomID, "you don't have permission to do that, kupo") return } diff --git a/bot/settings.go b/bot/settings.go index ad37899..a7a103c 100644 --- a/bot/settings.go +++ b/bot/settings.go @@ -1,6 +1,7 @@ package bot import ( + "regexp" "strconv" "strings" @@ -20,7 +21,11 @@ type settingsOld struct { } // Allowed checks if change is allowed -func (s settings) Allowed(noowner bool, userID id.UserID) bool { +func (s settings) Allowed(noowner bool, userID id.UserID, allowedUsers []*regexp.Regexp) bool { + if !utils.Match(userID.String(), allowedUsers) { + return false + } + if noowner { return true }