Le plugin accès restreint

Accueil / Articles / Le plugin accès restreint
Le plugin accès restreint

Article publié le 27 juillet 2011  Mot(s) clé :   Spip  Enregistrer au format PDF   Version PDF

Comme son nom l’indique, ce plugin permet de restreindre l’accès à une partie du site. J’ai découvert 2 façons de l’utiliser : soit en cachant au public les rubriques restreintes, qui apparaissent lorsque l’on se connecte, soit en utilisant un script php qui informe le visiteur qu’il ne peut voir la rubrique que s’il est connecté.

Pour plusieurs clients, j’ai été amené à utiliser le plugin « Acces Restreint » dans les cas suivants :

-  une école veut mettre des textes en lignes pour ses élèves.

-  un professeur veut mettre des cours à la disposition de ses élèves, mais d’eux seuls (il ne souhaite pas les diffuser largement).

-  une association veut réserver une zone à ses membres, et à eux seuls.

Dans le cadre du professeur qui ne veut diffuser ses cours qu’à ses élèves, et à personne d’autre, j’ai pris l’option de ne pas faire apparaître la rubrique concernée le temps que l’élève n’est pas connecté.

C’est la configuration la plus simple : l’élève sait qu’il doit se connecter, et lorsqu’il le fait, la rubrique « Cours » apparaît.

Cette façon de procéder a un inconvénient : il faut que l’élève se rappelle qu’il doit se connecter. S’il ne s’en souvient pas, il va chercher la rubrique correspondante, et ne va pas la trouver.

Dans les autres cas, en particulier pour l’association qui veut réserver une zone à ses membres, j’ai eu recours à un script présenté dans la contribution LOGIN_PUBLIC et contenu à accès restreint.

Avec la balise #SESSION

C’est ce qu’il y a de mieux. Le code utilisé est le suivant :

[(#SESSION|oui)
<p>Vous êtes authentifié,<a href='#URL_LOGOUT'>cliquez ici pour vous déconnecter</a></p>
<p>... ici le contenu en accès restreint, réservé aux membres de l'Association des Anciens de Hautefeuille</p>
<p>Les champs marqués d'un « * » sont obligatoires</p>
#FORMULAIRE_EDITER_AUTEUR{#SESSION{id_auteur}}]

[(#SESSION|non)<p>Cette partie est en accès restreint. Pour accéder à votre fiche personnelle, connectez-vous. Si vous n'êtes pas inscrit, allez sur la page
<a href="#URL_PAGE{page_inscription}">Inscription</a> pour recevoir votre mot de passe]  

Avec du PHP

(ça marche, mais il faut éviter le PHP dans les squelettes, comme le commentaire de RealET ci-dessous me l’a rappelé)

Le principe consiste à utiliser un test PHP dans le code de votre rubrique, en utilisant la balise #SESSION. Si vous êtes connecté, la page s’affiche, si vous n’êtes pas connecté, un message vous invite à le faire.

Le code est reproduit ici :

<?php if ($auteur_session) { ?>
                        <p>Vous êtes authentifié,
                        <a href='#URL_LOGOUT'>cliquez ici pour vous déconnecter</a></p>
                        <p>Vous êtes connecté. Voici la liste des membres de l'Association des Anciens de Hautefeuille.</p>

[(ici, je mets le code de ma rubrique)]

<?php } else { ?>
<p>Cette partie est en accès restreint. Pour accéder à la liste des membres, connectez-vous. Si vous n'êtes pas inscrit, allez sur la page <a href="#URL_PAGE{page_inscription}">Inscription</a> pour recevoir votre mot de passe</p>
 <?php } ?>

Pour ce qui est de la connexion, deux possibilités :

-  Soit les élèves ont tous le même login et mot de passe. Cela suffit largement dans le cadre de la consultation d’articles par exemple.

-  Soit chaque élève a son login et son mot de passe, auquel cas il doit d’abord s’inscrire et compléter sa fiche « visiteur ».

Ces articles peuvent vous intéresser