Restreindre les réponses aux niveaux de confiance

Salut,

Je me demande s’il existe un moyen de restreindre les réponses/répliques à certains niveaux de confiance ou à des champs personnalisés d’utilisateur ? Nos utilisateurs sont migrés depuis WordPress avec différents niveaux d’adhésion. Nous ne voulons pas donner à tous les utilisateurs la possibilité de voir les réponses à moins qu’ils n’aient atteint un certain niveau d’adhésion.

2 « J'aime »

[quote=“j3ang, post:1, topic:223032”]pour voir les réponses à moins qu’elles n’aient atteint un certain niveau d’adhésion.
[/quote]

Pour voir ou pour répondre ? Ce sont des choses assez différentes.

2 « J'aime »

@HAWK , ah désolé, pour répondre. ils peuvent voir le sujet et les réponses, mais ne devraient pas pouvoir répondre à moins qu’ils n’aient un certain niveau.

2 « J'aime »

Oui, vous pouvez configurer cela au niveau d’une catégorie. Ajoutez chaque groupe de niveaux de confiance et accordez-lui les autorisations appropriées.

2 « J'aime »

Et si nous voulions réellement masquer les réponses, pas seulement restreindre l’autorisation de répondre ? La colonne « voir » est grisée.

2 « J'aime »

Je crains que vous ne puissiez pas faire cela.

1 « J'aime »

Serait-il possible avec un plugin personnalisé ? Je suppose que ce ne devrait pas être difficile de lire l’utilisateur actuel et de masquer toute la section de réponse via JavaScript ?

2 « J'aime »

Désolé, je voulais dire que ce n’est pas possible tel quel. Presque tout est possible avec un plugin personnalisé !

5 « J'aime »

Alors que j’essaie d’accomplir cela via un plugin personnalisé. Je pense que j’y suis presque en modifiant et en remplaçant la variable 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');
}

Il semble qu’une erreur “not found” s’affiche brièvement et que la page se recharge correctement lors d’un rechargement forcé ou lorsque l’on revient après la page d’accueil.

J’utilise une image de développement Docker sur MacOS, assez lente.

Désolé, je ne suis pas encore très familier avec la base de code de Discourse.
Existe-t-il un meilleur moyen d’intercepter les publications lors du chargement d’un sujet ?

Je vois que j’étais censé rouvrir le 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));
    }
  })

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.