Une protection de votre site communautaire enfin majeure

Publié le

par

Crédits Photo Jon Tyson. Disponible sur Unsplash

Il y a bientĂ´t 5 ans de cela, je partageais avec vous une version bĂŞta de l’extension que j’ai conçue pour allier la protection de l’accès Ă  un site WordPress fournie par l’extension « Restricted Site Access Â» et la maĂ®trise de l’inscription des collaborateur·rice·s d’une entreprise sur un site communautaire motorisĂ© par BuddyPress et accessible sur Internet.

Aujourd’hui, je vous annonce son changement de nom et surtout la disponibilitĂ© de sa première version majeure, laquelle embarque des fonctionnalitĂ©s supplĂ©mentaires par rapport Ă  sa version bĂŞta.

« BP Restricted Community Â» devient « CommunautĂ© ProtĂ©gĂ©e Â»

Depuis que j’ai dĂ©cidĂ© de ne plus publier mes extensions sur le rĂ©pertoire officiel de WordPress, j’ai pris l’habitude d’utiliser par dĂ©faut le français pour les nommer et pour Ă©crire leurs chaĂ®nes de caractère traduisibles. En effet, techniquement, rien n’oblige Ă  utiliser l’anglais (en_US) par dĂ©faut pour ces chaĂ®nes et je prĂ©fère intĂ©grer une traduction anglaise approximative dans le rĂ©pertoire languages de l’extension que des personnes dont c’est la langue natale pourront amĂ©liorer.

J’ai donc appliquĂ© ce principe Ă  « BP Restricted Community Â» qui est dĂ©sormais « CommunautĂ© ProtĂ©gĂ©e Â». J’en ai aussi profitĂ© pour optimiser l’extension et ses outils de construction (application stricte des standards de code PHP de WordPress, gĂ©nĂ©ration du fichier .pot via WP CLI, arrĂŞt de l’utilisation de jQuery au profit d’un JavaScript moderne dont la compatibilitĂ© arrière est assurĂ©e par ParcelJS, etc..).

Gérer la communauté de collaborateur·rice·s

Pour construire ce site communautaire protĂ©gĂ©, je me suis appuyĂ© sur la rĂ©fĂ©rence en la matière : le projet open source BuddyPress. En tant que membre de son Ă©quipe de dĂ©veloppement, c’était une Ă©vidence Ă  l’époque de sa mise en place.

Si vous hĂ©sitez entre un certain « fork Â» (qui inonde de publicitĂ©s le site Google lorsque vous recherchez un terme en lien avec BuddyPress comme illustrĂ© ci-dessus) et « notre Â» extension open source, complètement gratuite, je vous invite Ă  vous poser la question de la sĂ©curitĂ© et du support :

  1. Si ce « fork Â» est très attrayant avec son superbe thème premium, l’extension officielle BuddyPress profite du programme « bug bounty Â» de WordPress et publie lorsque c’est nĂ©cessaire et dans les meilleurs dĂ©lais des mises Ă  jour de sĂ©curitĂ© comme celle-ci.
  2. Si vous avez un problème avec ce « fork Â», vous devrez le rĂ©soudre avec son Ă©diteur et ne pourrez pas compter sur les moyens du projet open source BuddyPress en particulier sa communautĂ© d’utilisateur·rice·s qui s’entraident sur le forum officiel de l’extension (en) et ses Ă©quipes de dĂ©veloppeur·euse·s (dont moi !) et de contributeur·rice·s qui maintiennent le code source de l’extension depuis cet environnement (en).

Je vous conseille donc de rester très prudent vis Ă  vis de ce « fork Â» prĂ©sentĂ© comme « Better than BuddyPress Â», et vous invite Ă  prĂ©fĂ©rer la sobriĂ©tĂ© du projet officiel qui bĂ©nĂ©ficie des moyens de WordPress pour vous fournir une solution sĂ»re, Ă©volutive, totalement ouverte aux contributions, complètement disponible en français, gratuite et pĂ©renne pour motoriser votre site communautaire.

S’agissant de l’utilisation de BuddyPress dans mon cadre professionnel, j’en avais fait le sujet de mon intervention au premier WordCamp d’Anvers en Belgique. La plupart des fonctionnalités décrites alors ont été maintenues et se comportent toujours aussi bien à ce jour. Pour les plus curieux·euses d’entre vous, voici la vidéo de ma prestation.

La page 19 du support que j’avais utilisé évoque les extensions (celles dont je parle dans cet article) mises en place pour construire cette communauté protégée.

Protéger l’accès au site communautaire

« Restricted Site Access Â» fait l’essentiel du travail concernant la restriction de l’accès au site. Une fois activĂ©e, sa configuration par dĂ©faut fait très bien l’affaire. Si l’utilisateur·rice n’est pas connecté·e, il·elle est redirigé·e vers la page de connexion du site.

Les rĂ©glages par dĂ©faut de « Restricted Site Access Â»

Je suis très satisfait de l’apport de cette extension et je l’ai fait savoir à son équipe de développement en y contribuant (code & traduction) et en lui attribuant la plus forte note sur sa page de présentation sur WordPress.org.

Toutefois, pour mon cas personnel qui requiert que les collaborateur·rice·s de l’entreprise pour laquelle je travaille puisse créer un compte, il ne satisfait pas trois impératifs :

  1. la page d’inscription générée par BuddyPress n’est pas accessible : ce qui empêche de nouveaux·elles collaborateur·rice·s de rejoindre la communauté.
  2. la restriction de l’inscription à des adresses e-mail utilisant les domaines de mon choix (ceux de mon entreprise et de ses filiales) n’est pas une option prise en charge par la configuration régulière de WordPress : le multisite est nécessaire.
  3. des éléments restent accessibles sans avoir besoin de se connecter : les media.

La version bĂŞta de l’extension rĂ©sout les deux premiers et le troisième est dĂ©sormais satisfait par la version majeure de « CommunautĂ© ProtĂ©gĂ©e Â» (pour les serveurs qui utilisent Apache).

La première version majeure de « Communauté Protégée »

1. Rendre disponible les pages d’inscription et d’activation de BuddyPress

Cette fonctionnalitĂ© a bien entendu Ă©tĂ© maintenue dans cette version majeure. « CommunautĂ© ProtĂ©gĂ©e Â» ajoute une exception au gestionnaire des accès de « Restricted Site Access Â» et utilise le style de la page de connexion de WordPress pour mettre en page les formulaires d’inscription et d’activation des comptes.

Le remplacement du logo de WordPress par l’icône du site pour personnaliser ces pages est également toujours disponible. Il suffit pour cela de définir l’image à utiliser pour l’icône de votre site grâce à l’interface de personnalisation de WordPress (le « Customizer »).

2. Limiter les inscriptions Ă  des adresses e-mail dont le domaine est particulier

Ici encore, « CommunautĂ© ProtĂ©gĂ©e Â» continue de rendre disponible l’option rĂ©servĂ©e aux configurations Multisite de WordPress pour ses configurations rĂ©gulières. C’est un Ă©lĂ©ment important de contrĂ´le des personnes pouvant rejoindre la communautĂ© que vous pouvez dĂ©finir grâce au champ de texte multi-ligne de l’option. Veiller Ă  renseigner un domaine par ligne comme illustrĂ© ci-dessous.

Grâce à ce réglage, les indésirables découvriront qu’ils ne peuvent pas rejoindre votre communauté grâce à une information positionnée juste au dessus du champ de l’e-mail du formulaire d’inscription.

3. Réserver l’accès aux media aux seul·e·s membres connecté·e·s de votre communauté

Lorsque votre WordPress est installé sur un serveur équipé d’Apache, une nouvelle option est disponible dans les réglages de vos media pour protéger l’accès à ces ressources aux utilisateur·rice·s qui se sont connecté·e·s au site.

Comme le montre la capture d’écran ci-dessus, l’ajout de cette option révèle une anomalie dans l’affichage de cette page d’options. La présentation du réglage lié à l’organisation des fichiers au sein du répertoire utilisé pour stocker les téléversements est ramassée et n’utilise pas toute la largeur disponible. J’ai alerté l’équipe de développement de WordPress et leur ai suggéré ce correctif.

PS : la mise en place de cette protection a nécessité une adaptation du code quant à la possibilité de remplacement du logo de WordPress par l’icône du site dans son espace de connexion et d’inscription. En effet, l’image utilisée pour cette icône se situant dans le répertoire des téléversements, elle n’est donc pas accessible depuis cet espace puisque l’utilisateur·rice n’est pas connecté·e.

4. La mise en conformité de la procédure d’inscription par rapport au règlement européen de la protection des données personnelles des utilisateur·rice·s.

WordPress, depuis sa version 4.9.6, intègre des outils de mise en conformité par rapport à ce règlement en réservant en particulier une des pages de votre site WordPress pour communiquer sur sa politique de confidentialité. Dans le cas de notre site communautaire protégé : cette page, comme toutes les autres n’est pas accessible sans authentification préalable. Il est néanmoins important que les personnes désirant rejoindre votre site communautaire puisse en prendre connaissance avant de s’inscrire et l’approuver en s’inscrivant.

D’ailleurs, lorsque la page relative à la politique de confidentialité est en place, BuddyPress génère automatiquement la case à cocher pour enregistrer cet accord, comme l’illustre la capture d’écran ci-dessus.

Pour concilier cette nécessité avec celle de la protection du site, j’ai pensé que le meilleur moyen était d’utiliser l’envoi d’un e-mail contenant la politique de confidentialité. Ainsi, lorsqu’un·e visiteur·se non connecté·e souhaite afficher la page en question, il·elle est redirigé·e sur un formulaire servant à demander l’envoi de cette politique par e-mail.

L’avantage de ce choix est de pouvoir contrôler le domaine de l’adresse e-mail du demandeur par rapport à la liste des domaines autorisés (fonctionnalité décrite au point 2). Dans la capture d’écran ci-dessus, la politique de confidentialité n’a pas été envoyée car le domaine de l’e-mail utilisé n’est pas autorisé : un message d’erreur en informe le·la visiteur·se.

Pour l’envoi d’e-mails de ce type : un message rĂ©servĂ© Ă  une seule personne, BuddyPress propose une magnifique API pour vous permettre de personnaliser l’apparence de vos contenus. Comme le montre les deux captures d’écran prĂ©cĂ©dentes, « CommunautĂ© ProtĂ©gĂ©e Â» utilise cette API pour gĂ©nĂ©rer un modèle d’e-mail dĂ©diĂ© Ă  l’envoi de la politique de confidentialitĂ© que vous pourrez retrouver depuis la navigation « E-mails Â» de l’administration de votre site. L’extension enrichit Ă©galement cette API en proposant d’inclure l’image utilisĂ©e pour l’icĂ´ne du site dans l’entĂŞte de l’e-mail.

Enfin, voici un exemple de l’e-mail contenant la politique de confidentialité envoyé suite à la demande d’un·e utilisateur·rice dont le domaine de l’adresse e-mail est autorisé sur le site communautaire.

5. Télécharger & installer « Communauté Protégée »

L’extension « CommunautĂ© ProtĂ©gĂ©e Â» est hĂ©bergĂ©e sur GitHub et est enregistrĂ©e sur l’EntrepĂ´t. Si vous utilisez l’EntrepĂ´t vous pourrez effectuer l’installation d’un simple clic. Autrement, il s’agira d’utiliser l’interface de tĂ©lĂ©versement d’une nouvelle extension de votre administration WordPress pour y dĂ©poser le fichier zip tĂ©lĂ©chargeable ci-dessous.

Requiert : WordPress >= 5.5, BuddyPress >= 6.2, Restricted Site Access >= 7.2.

Afficher la page GitHub de la version