From cec2761911a8f056498a3f1f87368cfb2c5b8665 Mon Sep 17 00:00:00 2001 From: Aine Date: Tue, 30 Aug 2022 15:43:06 +0300 Subject: [PATCH] users adjustments --- bot/bot.go | 12 +----------- bot/command_admin.go | 7 ++++++- bot/settings_bot.go | 23 ++++++++++++++++++----- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index 195f273..e8b1d01 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -50,24 +50,14 @@ func New( lp: lp, mu: map[id.RoomID]*sync.Mutex{}, } - err := b.migrateBotSettings(users) + err := b.initBotUsers(users) if err != nil { return nil, err } - - _, homeserver, err := lp.GetClient().UserID.Parse() - if err != nil { - return nil, err - } - allowedUsers, uerr := parseMXIDpatterns(b.getBotSettings().Users(), "@*:"+homeserver) - if uerr != nil { - return nil, uerr - } allowedAdmins, aerr := parseMXIDpatterns(admins, "") if aerr != nil { return nil, aerr } - b.allowedUsers = allowedUsers b.allowedAdmins = allowedAdmins b.commands = b.buildCommandList() diff --git a/bot/command_admin.go b/bot/command_admin.go index 114b043..978d8eb 100644 --- a/bot/command_admin.go +++ b/bot/command_admin.go @@ -109,8 +109,13 @@ func (b *Bot) runUsers(ctx context.Context, commandSlice []string) { return } + _, homeserver, err := b.lp.GetClient().UserID.Parse() + if err != nil { + b.SendError(ctx, evt.RoomID, fmt.Sprintf("invalid userID: %v", err)) + } + patterns := commandSlice[1:] - allowedUsers, err := parseMXIDpatterns(patterns, "") + allowedUsers, err := parseMXIDpatterns(patterns, "@*:"+homeserver) if err != nil { b.SendError(ctx, evt.RoomID, fmt.Sprintf("invalid patterns: %v", err)) return diff --git a/bot/settings_bot.go b/bot/settings_bot.go index 53af08f..858fca1 100644 --- a/bot/settings_bot.go +++ b/bot/settings_bot.go @@ -35,16 +35,29 @@ func (s botSettings) Users() []string { return []string{} } -// TODO: remove after migration -func (b *Bot) migrateBotSettings(users []string) error { +func (b *Bot) initBotUsers(users []string) error { + _, homeserver, err := b.lp.GetClient().UserID.Parse() + if err != nil { + return err + } config := b.getBotSettings() - cfgUsers := config.Users() - if len(users) > 0 && len(cfgUsers) == 0 { - _, err := parseMXIDpatterns(users, "") + oldUsers := config.Get(botOptionUsers) + // TODO: remove after migration + if len(users) > 0 && oldUsers == "" { + _, err := parseMXIDpatterns(users, "@*:"+homeserver) if err != nil { return err } config.Set(botOptionUsers, strings.Join(users, " ")) + } + + allowedUsers, uerr := parseMXIDpatterns(config.Users(), "@*:"+homeserver) + if uerr != nil { + return uerr + } + b.allowedUsers = allowedUsers + + if oldUsers != config.Get(botOptionUsers) { return b.setBotSettings(config) }