Nous essayons de créer un discours spécifique à une région, où l’appartenance d’un utilisateur le limitera à certains groupes, mais cela entre actuellement en conflit avec le support des utilisateurs anonymes car les utilisateurs anonymes n’ont aucune association de groupe.
Cette PR ajoute une association de groupes aux utilisateurs anonymes.
J’ai pris en compte les attaques de désanonymisation et vous avez raison : l’héritage de groupe d’utilisateurs n’est pas un outil pour tout le monde et est particulièrement vulnérable pour les instances avec des affiliations de groupe à haute cardinalité. Comme détaillé dans la PR, le concept original pour prendre en charge la publication anonyme dans les groupes régionaux, qui sera implicitement de faible cardinalité dans notre instance.
edit : J’ai ajouté un attribut de groupe appelé anonymous_user_inheritance, qui permet aux administrateurs de choisir si le groupe est hérité par les utilisateurs anonymes ou non. J’ai également ajouté un avertissement à côté du paramètre d’administration pour activer la fonctionnalité, et je suis ouvert à toute suggestion supplémentaire.
Il n’y a pas vraiment de catégorie pour demander des revues de code, en tant que telle, c’est donc probablement la meilleure pour cela.
Les PRs sont souvent les bienvenus, bien qu’il soit bon de confirmer qu’il s’agit d’une direction/fonctionnalité que Discourse souhaite poursuivre avant de plonger trop profondément.
Alternativement, vous pourriez envisager d’introduire cette fonctionnalité dans un plugin afin qu’elle soit disponible sans être intégrée au code principal.
Merci pour le conseil ! Un plugin conviendrait en fait bien à nos besoins, sauf que ce changement nécessite une migration de base de données. Une migration serait-elle réalisable sur un plugin ?
Oui, mais à mon avis, c’est une mauvaise pratique de modifier les tables principales dans un plugin.
Si vous déplacez cela dans un plugin, il est préférable d’utiliser group_custom_fields ou votre propre table désignée.
Dans ce cas précis, vous pourriez également (à la place) ajouter un paramètre de site tel que « groupes hérités autorisés » et laisser l’administrateur sélectionner tous les groupes qui peuvent être hérités dans ce seul paramètre. Cela rendrait les choses beaucoup plus simples et regrouperait toutes les fonctionnalités fournies par le plugin en un seul endroit.
Merci pour vos commentaires Richard ! Pourriez-vous m’aider à comprendre votre deuxième proposition ?
laisser l’administrateur sélectionner tous les groupes qui peuvent être hérités dans ce paramètre unique
Pour vérifier ma compréhension, votre suggestion est d’avoir le paramètre général du site pour autoriser l’héritage de groupe, et ensuite sur la page des paramètres de chaque groupe individuel, il y aurait une case à cocher indiquant si ce groupe est héritable ou non, donc c’est similaire à ce que j’ai actuellement, sauf que le paramètre redondant est supprimé.
laisser l’administrateur sélectionner tous les groupes qui peuvent être hérités dans ce paramètre unique
Suggériez-vous ce qui précède, ou aviez-vous autre chose en tête ? Mon idée initiale était de construire une sorte d’outil de sélection où il y aurait un menu de cases à cocher ou quelque chose de similaire, mais cela devient rapidement complexe à implémenter.
Merci pour le conseil sur les plugins ! Je considérerai l’option des plugins dans de futures contributions.
Non, je suggère que vous ne fassiez pas de ce paramètre une option sur la page du groupe, mais un paramètre unique à l’échelle du site qui contient tous les groupes qui sont héritables à la place.
Un paramètre similaire est Admin - Paramètres - Utilisateurs - groupes autorisant les publications anonymes. Ce n’est pas une case à cocher sur la page des paramètres de chaque groupe « autoriser les publications anonymes pour ce groupe », c’est un seul paramètre avec tous les groupes qui autorisent les publications anonymes,
ou Admin - Paramètres - Publications - groupes autorisant les mentions ici au lieu d’une case à cocher sur la page des paramètres de chaque groupe « autoriser les mentions ici pour ce groupe ».
C’est plus facile à implémenter, cela réduit l’encombrement de la base de données et offre une meilleure vue d’ensemble à l’administrateur du forum.