Estoy intentando crear un componente de tema que anule la plantilla del perfil de usuario basándome en la pertenencia del usuario visto a un grupo. Me gustaría que los perfiles de usuarios anónimos no mostraran el área #user-content en absoluto, a menos que el currentUser sea personal. He creado un grupo al que los usuarios anónimos se añaden automáticamente, pero tengo problemas para anular condicionalmente la plantilla.
Basándome en Anular plantillas de Discourse desde un tema y Añadir vídeos de fondo a ciertos perfiles de usuario, he estado intentando anular user/summary.hbs de esta manera:
<script type="text/discourse-plugin" version="0.8">
const TARGET_GROUP = "anon"
api.registerConnectorClass('above-user-summary-stats', 'user-summary', {
setupComponent(args, component) {
const inGroup = [...args.model.groups].filter(g => g.name === TARGET_GROUP)
const isAnon = inGroup.length ? true : false;
component.setProperties({isAnon})
}
});
</script>
<script type="text/x-handlebars" data-template-name="user/summary">
<DSection @pageClass="user-summary" @tagName="">
<div class="user-content" id="user-content">
<PluginOutlet
@name="above-user-summary-stats"
@args={{hash model=this.model user=this.user}}
/>
{{log isAnon}}
</div>
</DSection>
</script>
Esto anula la plantilla para todos los perfiles, pero isAnon no está definido, así que creo que no entiendo cómo crear la lógica para que handlebars compruebe al anular en lugar de añadir a un plugin outlet.
¿Es correcto usar registerConnectorClass para esto? ¿Es necesaria una anulación de plantilla aquí? He revisado la API de plugins y User.rb y he descubierto cómo comprobar si el usuario actual está en modo anónimo, pero no encontré ningún acceso fácil aparte del grupo para comprobar si el usuario visto es anónimo. Estoy familiarizado con Rails, js y handlebars, pero soy nuevo en Ember y Discourse.