Я пытаюсь создать компонент темы, который переопределяет шаблон профиля пользователя в зависимости от принадлежности просматриваемого пользователя к группе. Я хочу, чтобы профили анонимных пользователей вообще не отображали область #user-content, если только currentUser не является сотрудником. Я создал группу, к которой анонимные пользователи добавляются автоматически, но у меня возникают проблемы с условным переопределением шаблона.
Основываясь на статьях Переопределение шаблонов Discourse из темы и Добавление фоновых видео к определенным профилям пользователей, я пытался переопределить user/summary.hbs следующим образом:
<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>
Это переопределяет шаблон для всех профилей, но isAnon имеет значение undefined, поэтому я думаю, что не понимаю, как создать логику для Handlebars, чтобы проверять условия при переопределении, а не при добавлении в plugin outlet.
Правильно ли использовать registerConnectorClass для этой задачи? Необходимо ли здесь переопределение шаблона? Я изучил API плагинов и User.rb, понял, как проверить, находится ли текущий пользователь в анонимном режиме, но не нашел простого способа (кроме проверки группы), чтобы определить, является ли просматриваемый пользователь анонимным. Я знаком с Rails, JS и Handlebars, но новичок в Ember и Discourse.