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 :
- 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.
- 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.
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 :
- 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é.
- 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.
- 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.
56 téléchargements