Acabei de tentar isso, mas acho que notei um problema durante os testes:
Se um usuário não estiver em nenhum dos grupos permitidos, a nova verificação para user_in_copy_button_allowed_groups não retorna um resultado. Portanto, o código de fallback para fóruns que ainda não podem lidar com user_in_setting é executado, mas falha:
[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')
Passos para reproduzir:
- Instale o componente e adicione-o ao seu tema
- Limite os allowed_groups a administradores
- Use a função “Impersonate” em um usuário de teste não administrador e verifique o console do navegador
Acho que o problema está aqui:
if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
if (settings.user_in_copy_button_allowed_groups) {
return true;
}
}
Isso retorna precocemente apenas quando o valor é true. Quando é false, o código de fallback abaixo é executado, o que espera que o valor da configuração ainda exista como uma string - mas nos meus testes com meu componente [1], onde copiei o padrão de fallback do copy-post, ele é undefined uma vez que o suporte user_in_X está ativo. Acho que a correção é retornar false nesse caso também, para que o fallback seja usado apenas quando a chave user_in_X não existir totalmente (core mais antigo), e não sempre que o valor resolvido acabar sendo false.
Minha suposição está correta, ou ainda se espera que a configuração forneça os grupos como uma string?
prefilled composer link ↩︎