users adjustments

This commit is contained in:
Aine
2022-08-30 15:43:06 +03:00
parent ea1ef9da7f
commit cec2761911
3 changed files with 25 additions and 17 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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)
}