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:
- Installiere das Component und füge es zu deinem Theme hinzu.
- Beschränke die
allowed_groupsauf Administratoren. - 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?
prefilled composer link ↩︎