Gestion des autorisations d’accès (le retour)

Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.

Demande récurrente sur la liste, la gestion des droits d’accès a déjà fait l’objet de diverses contributions. La présente ne fait que reprendre les principes en apportant quelques simplifications.

Principale nouveauté, l’utilisation du tableau $contexte_inclus pour récupérer le nom de l’utilisateur connecté et son statut. Les éléments du tableau sont ensuite récupérer dans la page à l’aide d’un simple INCLURE.

Dans le .php :

<?php
$contexte_inclus['nom']=$GLOBALS['auteur_session']['nom'];
$contexte_inclus['statut']=$GLOBALS['auteur_session']['statut'];
$fond = "authenticate";
$delais = 1*1;

include ("inc-public.php3");
?>

Et dans le .html, la boucle suivante :

<BOUCLE_qui(AUTEURS){tout}{nom}>
	<div class="petitexte" style="padding:5px;"><strong>#NOM</strong> vous êtes authentifié [<a href="#URL_LOGOUT" class="lpetitexte">se déconnecter</a>]
	<BOUCLE_moi(AUTEURS){tout}{id_auteur}{statut==0minirezo}> 
	<a href="./ecrire" class="lpetitexte">[administration]</a>
	</BOUCLE_moi>
	</B_moi>
	<//B_moi>
	</div>
</BOUCLE_qui>

Le principe de fonctionnement de l’ensemble est classique :
-  Il faut créer un champs extra dans la rubrique avec les valeurs : tout_public ou restreint. Si jamais vous n’avez pas de fichier mes_options.php3, une version minimaliste fait partie du dossier à télécharger.
-  Ensuite les scripts, qui font partie du fichier authenticate.html, se chargent d’aller chercher la valeur du champs dans l’id_rubrique de l’article, puis dans l’id_rubrique de la rubrique parente et enfin dans le secteur.

De la même façon que sur mon site, si l’accès est restreint, un affichage spécifique apparaît dans la page rubrique, dont le contenu (liste d’articles) reste affichable. Si on demande l’affichage d’un article faisant partie d’une rubrique à accès restreint, la page comporte un message puis le titre et les 250 premiers caractères du texte. Cette solution a été choisie pour permettre le passage de Google et le référencement de certaines de ces pages. il est facile de supprimer ou modifier ces paramètres dans le fichier restrict_access_art.php, en décommentant les lignes contenant des exit ; (12,24,39,53).

En clair, vous devez recopier les 5 fichiers de l’archive à la racine de votre site et utiliser une simple ligne : <INCLURE(authenticate.php3)> à l’intérieur de la page dont vous voulez restreindre l’accès.

Rappel important, la contribution ne fonctionne qu’avec un champs extra nommé accessibility, au niveau des rubriques. Dans la version 1.8 un nouveau champ de la table rubrique peut remplacer le champ extra. Cependant, il n’existe pas d’interface graphique pour remplir ces nouveaux champ.

Ne pas oublier d’activer les forums sur abonnement pour bénéficier du statut visiteur qu’offre SPIP.

Le fichier authenticate.html prévoit la possibilité de détecter si l’utilisateur est ou non authentifié sur une page autre que article ou rubrique. Dans ce cas, le texte offrant la possibilité de s’authentifier est affiché, sans activer la recherche du champs extra.

Discussion

3 discussions

  • 2

    Bonjour,

    J’ai installé, comme indiqué, les fichiers dans mon répertoire squelette et modifier mon fichier mes_options.php3.
    Après quelques problèmes (les champs extras apparemment mal déclaré pour SPIP 1.8.3) maintenant je peux choisir dans l’espace privé entre accessibility = « restreint » ou « tout_public » ou « en_travaux ».
    Le problème vient du fait que lorsque je définis une rubrique avec accessibility=« restreint », dans l’espace public j’arrive toujours à voir les articles de cette rubrique (j’ai vidé les caches de SPIP et du navigateur).
    J’ai même fait afficher la valeur de ce champ accessibility sur ma page et, apparement il n’est pas défini.
    Que puis-je faire pour que ça marche ? Merci d’avance.

    • Bonjour,

      Tout d’abord merci pour cette contrib qui a l’air fort intéressante et correspond tout à fait à ce qu’il me fallait.

      Je suis sous spip 1.9.1, J’ai bien suivi toutes les opérations décrites aussi pour mon squelette avec les fichiers dans le repertoire de mon squelette, authenticate.php3 dans la racine et le fichier mes options dans le répertoire écrire . Cependant aucune option n’apparait

      Est-ce le code qui doit être modifié ?

      <?php
      $GLOBALS['champs_extra'] = Array(
          'rubriques'=>Array(
              "accessibility"=>"select|propre|||tout_public,restreint,en_travaux|",
          ),
      );
      
      $GLOBALS['champs_extra_proposes'] = Array(
          'rubriques'=>Array(
              'tous'=>'accessibility',
          ),
      );
      ?>

      Merci d’avance

    • hep ! t’aurais pas oublié de regarder les mots clés associés à cet article ? Parce qu’il est indiqué : « spip 1.8 » spip 1.8.1"... Alors cette contrib n’est, à priori pas indiqué pour ton spip 1.9.1...

      Si tu cherche un plugin pour restriction des droits d’accès, tu as le plugin acces_restreint (http://www.spip-contrib.net/Le-plug...) ou le plugin acces_groupes (http://www.spip-contrib.net/Le-plug...).

    Répondre à ce message

  • 3
    aurélien

    bonjour,
    j’ai un problème avec cette contribution.
    Dans le champ de séléction accessibility, il n’y a pas de choix possible.

    Et lorsque je clique sur le vide, des rubriques restreintes (je ne sais pas comment d’ailleurs) passent en tout_public.
    D’où vient ce problème, cela a-t-il un rapport avec la mise en garde sur Spip 1.8 ? (j’utilise la 1.8.1)

    Une deuxième question : les rubriques restreintes sont tout de meme accessibles sans authentification, faut-il créer un squelette « accés restreint » en paralléle du « normal » ?

    Merci pour votre réponse, je patauge !!!

    • Pour ce qui concerne la liste déroulante des valeurs d’accessibility, ceci provient de la gestion des extras. Dans mon cas, j’utilise toujours les fichiers additionels de l’interface graphique des extras, une contrib qui a un âge certain. Si les valeurs sont bien indiqués dans mes_options.php3 (fichier dans le zip), les valeurs deviennent sélectionnables dans article_edit.php3.

      En ce qui concerne la deuxième question, j’explique que l’affichage des rubriques restreintes (liste d’articles et descriptif) correspond à un choix volontaire. Je montre de quoi il s’agit mais je n’offre pas l’accès aux articles complets. Il est bien expliquer qu’il faut décommenter certaines lignes du script qui gère les restrictions pour interdire l’affichage.

    • Merci pour la réponse,
      je peux enfin choisir l’accéssibilité !!
      Je vais voir pour le ’décommentaire" ;)

      merci

    • Allez, j’en rajoute un.

      CA MARCHE IMPECCABLEMENT !!!

      Merci pour cette contrib et pour l’aide

    Répondre à ce message

  • 4

    La restriction d’accès fonctionne avec des champs EXTRAS (encore un truc un peu obscur de spip...)
    ceci implique donc la présence d’un fichier mes_options.php3 dans le dossier ecrire, ce fichier sert, entre autre, à définir ces fameux champs extras
    (si besoin chercher des infos sur spip-contrib )

    en relisant effectivement c’est assez peu expliqué sur la contrib, mais le fichier mes_options fourni dans le zip doit suffir

    une fois cela en place un champ « accessibility », au niveau des rubriques, permet de choisir le statut de la rubrique : « tout public » ou « restreint » (vider éventuellement le cache du navigateur...)

    dans le squelette la seule ligne <INCLURE(authenticate.php3)> suffit

    c’est pas si dur !

    • Bonjour,

      Je suis débutant dans spip et je ne comprends pas ou la ligne
      doit etre
      mise dans le squelette.
      Merci de bien vouloir m’aider

    • La ligne peut être mise n’importe où. L’emplacement n’est déterminé que par l’affichage. Moi je le positionne en haut à gauche dans un cadre qui affiche l’utilisateur connecté. Il est également possible de le positionner dans un header. Il faut quand même qu’il soit bien visible pour que l’utilisateur introduise ses identifiants et qu’il se retrouve à un endroit similaire dans toutes les pages à restreindre.

    • Bonjour,

      je pense que je me suis mal exprimé en fait c’est la procédure que je ne comprends pas.
      Aprés avoir télécharger le zip j’ai mis tous ces fichiers dans le repertoire « ecrire ».
      en effet lors de la création d’une rubrique il y a bien le champ extra crée avec l’accés restreint.
      mais ensuite cela ne fonctionne pas même après avoir rempli ce champ.
      si vous pouviez m’indiquer la procédure pas à pas je vous en serai trés reconnaissant.
      Merci d’avance.

    • Dans ecrire il faut mettre le mes_options.php3, c’est à dire la déclaration des champs extra. Le reste se passe sur les squelettes, donc à la racine su site ou dans le dossier squelettes, mais surtout pas dans ecrire. Au même endroit que article.php3 pur authenticate.php3 (à la racine du site), ou dans le dossier qui contient les .html (article.html, rubrique.html) pour authenticate.html

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom