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, lp: lp,
mu: map[id.RoomID]*sync.Mutex{}, mu: map[id.RoomID]*sync.Mutex{},
} }
err := b.migrateBotSettings(users) err := b.initBotUsers(users)
if err != nil { if err != nil {
return nil, err 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, "") allowedAdmins, aerr := parseMXIDpatterns(admins, "")
if aerr != nil { if aerr != nil {
return nil, aerr return nil, aerr
} }
b.allowedUsers = allowedUsers
b.allowedAdmins = allowedAdmins b.allowedAdmins = allowedAdmins
b.commands = b.buildCommandList() b.commands = b.buildCommandList()

View File

@@ -109,8 +109,13 @@ func (b *Bot) runUsers(ctx context.Context, commandSlice []string) {
return 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:] patterns := commandSlice[1:]
allowedUsers, err := parseMXIDpatterns(patterns, "") allowedUsers, err := parseMXIDpatterns(patterns, "@*:"+homeserver)
if err != nil { if err != nil {
b.SendError(ctx, evt.RoomID, fmt.Sprintf("invalid patterns: %v", err)) b.SendError(ctx, evt.RoomID, fmt.Sprintf("invalid patterns: %v", err))
return return

View File

@@ -35,16 +35,29 @@ func (s botSettings) Users() []string {
return []string{} return []string{}
} }
// TODO: remove after migration func (b *Bot) initBotUsers(users []string) error {
func (b *Bot) migrateBotSettings(users []string) error { _, homeserver, err := b.lp.GetClient().UserID.Parse()
if err != nil {
return err
}
config := b.getBotSettings() config := b.getBotSettings()
cfgUsers := config.Users() oldUsers := config.Get(botOptionUsers)
if len(users) > 0 && len(cfgUsers) == 0 { // TODO: remove after migration
_, err := parseMXIDpatterns(users, "") if len(users) > 0 && oldUsers == "" {
_, err := parseMXIDpatterns(users, "@*:"+homeserver)
if err != nil { if err != nil {
return err return err
} }
config.Set(botOptionUsers, strings.Join(users, " ")) 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) return b.setBotSettings(config)
} }