Merge branch 'always-return-settings' into 'main'

Make sure getSettings() always returns settings or error

See merge request etke.cc/postmoogle!2
This commit is contained in:
Aine
2022-08-23 13:04:55 +00:00
3 changed files with 6 additions and 12 deletions

View File

@@ -18,7 +18,7 @@ type settings 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) bool {
if noowner {
return true
}
@@ -59,17 +59,17 @@ func (b *Bot) migrate() error {
return nil
}
func (b *Bot) getSettings(ctx context.Context, roomID id.RoomID) (*settings, error) {
func (b *Bot) getSettings(ctx context.Context, roomID id.RoomID) (settings, error) {
span := sentry.StartSpan(ctx, "http.server", sentry.TransactionName("getSettings"))
defer span.Finish()
var config settings
err := b.lp.GetClient().GetRoomAccountData(roomID, settingskey, &config)
return &config, err
return config, err
}
func (b *Bot) setSettings(ctx context.Context, roomID id.RoomID, cfg *settings) error {
func (b *Bot) setSettings(ctx context.Context, roomID id.RoomID, cfg settings) error {
span := sentry.StartSpan(ctx, "http.server", sentry.TransactionName("setSettings"))
defer span.Finish()

View File

@@ -48,7 +48,7 @@ func (b *Bot) getMailbox(ctx context.Context, evt *event.Event) {
defer span.Finish()
cfg, err := b.getSettings(span.Context(), evt.RoomID)
if err != nil || cfg == nil {
if err != nil {
b.log.Warn("cannot get %s settings: %v", evt.RoomID, err)
}
@@ -83,9 +83,6 @@ func (b *Bot) setMailbox(ctx context.Context, evt *event.Event, mailbox string)
if err != nil {
b.log.Warn("cannot get settings: %v", err)
}
if cfg == nil {
cfg = &settings{}
}
if !cfg.Allowed(b.noowner, evt.Sender) {
b.Error(span.Context(), evt.RoomID, "you don't have permission to do that")

View File

@@ -22,7 +22,7 @@ func (b *Bot) getOwner(ctx context.Context, evt *event.Event) {
defer span.Finish()
cfg, err := b.getSettings(span.Context(), evt.RoomID)
if err != nil || cfg == nil {
if err != nil {
b.Error(span.Context(), evt.RoomID, "owner is not set yet")
return
}
@@ -49,9 +49,6 @@ func (b *Bot) setOwner(ctx context.Context, evt *event.Event, owner string) {
if err != nil {
b.log.Warn("cannot get settings: %v", err)
}
if cfg == nil {
cfg = &settings{}
}
if !cfg.Allowed(b.noowner, evt.Sender) {
b.Error(span.Context(), evt.RoomID, "you don't have permission to do that")