users adjustments
This commit is contained in:
12
bot/bot.go
12
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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user