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:
@@ -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()
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user