L’ho appena provato, ma credo di aver notato un problema durante i test:
Se un utente non appartiene a nessuno dei gruppi consentiti, il nuovo controllo per user_in_copy_button_allowed_groups non restituisce alcun risultato. Di conseguenza, viene eseguito il codice di fallback per i forum che non supportano ancora user_in_setting, ma questo fallisce:
[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')
Passaggi per riprodurre il problema:
- Installa il componente e aggiungilo al tuo tema
- Limita i
allowed_groupsagli amministratori - Impersona un utente di test non amministratore e controlla la console del browser
Credo che il problema si trovi qui:
if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
if (settings.user_in_copy_button_allowed_groups) {
return true;
}
}
Questo codice restituisce un valore anticipatamente solo quando il valore è true. Quando è false, viene eseguito il codice di fallback sottostante, che si aspetta che il valore dell’impostazione esista ancora come stringa; tuttavia, nei miei test con il mio componente [1], da cui ho copiato il modello di fallback da copy-post, il valore diventa undefined una volta che il supporto per user_in_X è attivo. Immagino che la correzione consista nel restituire anche false in quel caso, in modo che il fallback venga utilizzato solo quando la chiave user_in_X non esiste affatto (core più vecchio), e non ogni volta che il valore risolto risulta essere false.
La mia ipotesi è corretta, o ci si aspetta ancora che l’impostazione fornisca i gruppi come stringa?
prefilled composer link ↩︎