Ограничить ответы по уровням доверия

Здравствуйте,

Интересует, есть ли возможность ограничить ответы/комментарии определёнными уровнями доверия или пользовательскими полями? Наши пользователи были перенесены из WordPress с разными уровнями членства. Мы не хотим предоставлять всем пользователям возможность просматривать ответы, если они не достигли определённого уровня членства.

Просматривать или отвечать? Это совершенно разные вещи.

@HAWK, ах, извините, отвечаю. Они могут видеть тему и ответы, но не должны иметь возможности отвечать, пока не достигнут определённого уровня.

Да, вы можете настроить это на уровне категории. Добавьте каждую группу уровня доверия и предоставьте соответствующие права доступа.

А что, если мы действительно хотим скрыть ответы, а не просто ограничить разрешение на ответ? Колонка «Просмотр» недоступна для редактирования.

Боюсь, вы не можете этого сделать.

Возможно ли это с помощью собственного плагина? Я предполагаю, что не должно быть сложно получить текущего пользователя и скрыть весь раздел с ответами через JavaScript?

Извините, я имел в виду, что из коробки это невозможно. Почти всё возможно с помощью кастомного плагина!

Поскольку я пытаюсь реализовать это через пользовательский плагин, мне кажется, что я почти добрался до цели, переопределив переменную postsToRender.

  TopicRoute.reopen({
    setupController(controller, model) {
      this._super(controller, model);
      topicController = controller;
      console.log(topicController);
      let userPrivileged = userCanViewAnswers(topicController.currentUser);

      const postStream = topicController.get("model.postStream");
      window.postStream = postStream;
      window.topicController = topicController;

      topicController.postsToRender = userPrivileged ? topicController.postsToRender : topicController.postsToRender.posts.filter(p => p.post_number == 1);

    }
  });

function userCanViewAnswers(user){
    let user_groups = user.groups.map(g => g.name);
    return user_groups.includes('privileged');
}

Кажется, что сначала появляется ошибка «не найдено», а затем при жесткой перезагрузке страницы или возвращении после главной страницы всё загружается корректно.

Я использую образ Docker для разработки на macOS, он довольно медленный.

Извините, я ещё не очень хорошо знаком с кодовой базой Discourse.
Есть ли лучший способ перехватить посты при загрузке темы?

Я вижу, что мне следовало повторно открыть Controller.

  TopicController.reopen({
    @discourseComputed(
    "model.postStream.posts",
    "model.postStream.postsWithPlaceholders"
  )
    postsToRender(posts,postsWithPlaceholders ){
      let userPrivileged = userCanViewAnswers(this.currentUser);
      return userPrivileged 
      ? (this.capabilities.isAndroid ? posts : postsWithPlaceholders) 
      : (this.capabilities.isAndroid ? posts.slice(0, 1) : postsWithPlaceholders.slice(0, 1));
    }
  })