Protéger son contenu

  du contenu protégé et accessible après enregistrement


La problématique recherchée : organiser l’accès controlé par inscription du visiteur, avec accès immédiat à du contenu protégé.

C’est possible, mais pas encore avec Accès Restreint (écrit en Aout 2015), quoique !

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A noter que l’accès peut aussi être restreint par plages d’IP, avec les plugins Intranet ou acces_restreint_ip non documenté..

On peut vouloir protéger du contenu pour bien des raisons, et la plupart du temps on aura à disposition un très bon et très puisant plugin "Accès Restreint". Néanmoins, Accès Restreint ne permet pas d’automatiser l’accès direct à un contenu "protégé" et il faut manuellement valider les personnes qui s’inscrivent. Ce qui n’est parfois absolument pas pensable.

On veut proposer aux visiteurs la démarche suivante :

Le visiteur doit remplir un formulaire en ligne pour s’enregistrer. Il doit ensuite avoir instantanément accès à un contenu protégé, après réception envoi d’un email avec identifiants et mot de passe.

Rappelons d’abord que l’ouverture d’une inscription libre [1] est une facilité native de SPIP, que vous aurez à autoriser dans la configuration...

 Utiliser un plugin ?

Le plugin Jaz était semble-t-il la solution, mais il semble que ce plugin ne soit plus maintenu, et ne fonctionnerait pas bien pour SPIP 3....

Donc, en attendant que Accès Restreint ou Jaz ne proposent une "vraie solution fiable et parfaitement sécurisée", voici une solution de repli.

 Une solution en code SPIP

Solution proposée : il suffira d’ajouter un petit bout de code (une petite Boucle), qui se limite finalement au contrôle sur la balise #SESSION : existante, elle montre que le visiteur est authentifié (donc a accès au contenu restreint) ou n’est pas existante, et le visiteur est par défaut rerouté sur la page 404.html.

Aux pages à protéger [2], il faut ajouter le code de Teddy :

  1. <BOUCLE_visiteur_session (CONDITION) {si #EVAL{$GLOBALS\['visiteur_session'\]\['nom'\]}|oui}>
  2. <div class="bloc" id="inc_identification_sedeconnecter">
  3. <h3 class="titre">[(#EVAL{$GLOBALS\['visiteur_session'\]\['nom'\]})]</h3>
  4. ...
  5. </div>
  6. </BOUCLE_visiteur_session>

Une formulation équivalente s’obtient avec un test de #SESSION ou mieux -en début de squelette- avec la nouvelle balise [(#AUTORISER{..}|sinon_interdire_acces{..})], mais il faudra trouver le bon verbe d’autorisation [3], à déduire de la page descriptive des Autorisations Dans Spip (également publiée sur le Carnet de Contrib).
Le visiteur non enregistré sera rerouté vers une page 404.html (titrée "Restricted area", ou tout autre URL-page proposée en paramètre du filtre |sinon_interdire_acces{url_retour}), sur laquelle l’on pourrait afficher 2 formulaires :

  1. le formulaire standard de "login" [4],
  2. un formulaire spécifique de "sign in".

Ce second formulaire pourrait être personnalisé, tel que fourni par le plugin "Inscription 3", proposant de nombreux champs d’origine (adresse, mobile, etc.). Sa configuration de paramètres permet de régler par défaut le statut des nouveaux inscrits à Les autorisations / gestion des droits [5].

Ajoutons que si les champs d’origine n’existent pas ou ne sont pas appropriés, on pourra ajouter des champs supplémentaires via le très puissant plugin "Champs Extra" (sur la table ’AUTEURS".

 Et l’information par mail.

On utilisera le plugin "Facteur" pour la mise en forme de l’email envoyé automatiquement, utilisant le source d’origine rappelé ci-dessous :

Here are your identifiers. You may now participate on the site
"@nom_site_spip@" (@adresse_site@):

Pour en changer :
- surcharger la chaine de langue d’origine <:form_forum_voici1:> (qui remplace alors le texte d’origine)
- modifier la structure de l’e-mail. Il faut commencer idéalement par copier le dossier "emails" du plugin Facteur et de le coller dans le dossier Squelettes. Il ne reste plus qu’à modifier le fichier texte.html du nouveau dossier.

Attention : les fichiers documents joints ne sont pas protégés, et on pourra y accéder via les moteurs de recherche.

Ben... voilà !
"et la Boucle est bouclée"


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1Sur simple fourniture d’une adresse mail, sans intervention d’un Administrateur...

[2On pourra spécifier ces pages :
- par le plugin Compositions,
- en dupliquant les rubriques et articles en les renommant une rubriqueXX.html, article-XX.html (XX étant l’ID...)
- en insérant un bouton oui/non sur les rubriques et/ou articles via Champs Extra et spécifiant si je voulais protéger le contenu. En cas de oui, la boucle ci-dessous s’active..

[3Ici, voir : le premier paramètre de cette balise correspond au paramètre de la fonction

[4Attention aux surcharges portées sur le ./formulaire/login.html ; bien que pratique, une telle surcharge oubliée peut brusquement rendre toute connexion impossible après une mise-à-jour de SPIP !

[5Important de ne pas toujours laisser le défaut administrateur, ce qui ouvrirait alors l’espace privé, même si c’est de manière limitée


Liens visibles seulement pour les inscrits.

Article publié le 4 septembre 2015, et actualisé en juillet 2017 .

Répondre à cet article