Fallback für `user_in_X`-Theme-Einstellung schlägt fehl, wenn der aufgelöste Wert falsch ist

Ich habe das gerade ausprobiert, aber ich glaube, ich habe während des Tests ein Problem bemerkt:
Wenn ein Benutzer in keiner der erlaubten Gruppen ist, gibt die neue Überprüfung für user_in_copy_button_allowed_groups kein Ergebnis zurück. Daher wird der Fallback-Code für Foren ausgeführt, die user_in_setting noch nicht verarbeiten können, dieser schlägt jedoch fehl:

[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')

Schritte zur Reproduktion:

  1. Installiere das Component und füge es zu deinem Theme hinzu.
  2. Beschränke die allowed_groups auf Administratoren.
  3. Simuliere einen Testbenutzer, der kein Administrator ist, und prüfe die Browserkonsole.

Ich denke, das Problem liegt hier:

if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
    if (settings.user_in_copy_button_allowed_groups) {
      return true;
    }
  }

Dies gibt nur dann frühzeitig zurück, wenn der Wert true ist. Wenn er false ist, wird der untenstehende Fallback-Code ausgeführt, der erwartet, dass der Einstellungswert weiterhin als String vorhanden ist – aber in meinen Tests mit meinem [1]-Component, wo ich das Fallback-Muster von copy-post übernommen habe, ist er undefined, sobald die user_in_X-Unterstützung aktiv ist. Ich vermute, die Lösung besteht darin, in diesem Fall ebenfalls false zurückzugeben, sodass der Fallback nur dann verwendet wird, wenn der user_in_X-Schlüssel überhaupt nicht existiert (ältere Core-Version), und nicht jedes Mal, wenn der aufgelöste Wert zufällig false ist.

Ist meine Annahme korrekt, oder wird weiterhin erwartet, dass die Einstellung die Gruppen als String bereitstellt?


  1. prefilled composer link ↩︎

1 „Gefällt mir“