Acces Restreint 3.0

Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros sites.
L’interface a été remaniée pour une meilleure ergonomie, mais le fonctionnement des boucles et des squelettes reste identique à la version précedente du plugin

Utilité et fonctionnalités du plugin

Le plugin accès restreint vous permet de protéger et de restreindre l’accès à certaines rubriques uniquement aux visiteurs authentifiés et autorisés.

Si un visiteur n’est pas identifié ou s’il n’est pas autorisé, alors l’intégralité de la rubrique (ce qui inclut les sous-rubriques, les articles, les liens ...) ne sera pas visible par ce visiteur.

Si le visiteur est identifié, alors ce visiteur pourra accéder aux rubriques pour lesquelles il a reçu une autorisation d’accès.

Ainsi, ce plugin vous permet de masquer du contenu aux visiteurs non identifiés, et de créer des droits d’accès aux visiteurs identifiés.

Le plugin vous permet également de filtrer l’espace privé.

En résumé, le plugin Accès restreint permet de définir et de gérer des zones de l’espace public et de l’espace privé en accès restreint.
Chaque zone contient des rubriques, et les auteurs peuvent être associés à des zones pour avoir le droit d’y accéder.
Toutes les boucles natives de SPIP sont modifiées pour en filtrer les résultats en fonction des droits du visiteur.

I. Installation du plugin accès restreint

Le plugin s’installe comme tous les autres, en ajoutant le dossier dans plugins/ et en l’activant dans l’espace privé.


Attention : en activant ou en désactivant ce plugin, il faut penser à vider le cache de SPIP pour que les droits d’accès soient modifiés.
En particulier, en cas de désactivation, si le cache n’est pas vidé, des erreurs vont apparaître sur le site public. Ce n’est pas un bug, mais une sécurité, pour éviter une divulgation de contenu en cas de désactivation involontaire du plugin.

Le plugin pourrait gérer automatiquement le changement de cache lors de son activation/désactivation, mais dans ce cas, en cas de désactivation involontaire, le contenu protégé serait immédiatement visible, ce qui peut être considéré comme une faille de sécurité.

II. Définir les zones en accès restreint

Les étapes précédentes ont pour effet de faire apparaître un nouvel onglet dans Configuration / Accès restreint, avec une petite icone de cadenas : ecrire/ ?exec=acces_restreint

C’est cette page qui va vous permettre de gérer les zones d’accès restreint de votre site, créer de nouvelles zones ou modifier les zones existantes. Pour créer votre première zone, cliquez sur le raccourci Créer une nouvelle zone.

L’administrateur qui crée la zone peut s’octroyer immédiatement les droits d’accès. Seul un administrateur général du site peut créer, modifier ou supprimer une zone.

Renseignez le titre, le descriptif, la portée (publique et/ou privée) de la zone.
Par défaut, l’option « m’ajouter les droits d’accès à cette zone » est cochée car cela correspond à l’usage le plus fréquent.

Il faut ensuite définir les rubriques qui en font partie. Si on coche la racine du site, il n’y a plus aucun affichage sur l’espace public pour ceux qui ne sont pas identifiés. C’est pratique, par exemple, pour mettre un site en ligne pour les administrateurs et les auteurs sans qu’il soit visible pour le simple visiteur.

Les rubriques qui sont cochées sont explicitement restreintes. Si elles sont déplacées dans le site, elle le resteront. Les rubriques qui ne sont pas cochées mais dépendent d’une rubrique restreinte sont elles aussi restreintes, par héritage. Mais si elles sont déplacées dans l’arborescence dans une zone non restreinte elles seront visibles.

Il faut imaginer la restriction d’accès des rubriques comme une restriction d’accès dans un immeuble : lorsqu’il faut une autorisation pour franchir une porte, tout ce qui est derrière se retrouve en accès restreint.

Cliquez sur « Enregistrer » pour créer la zone. Vous revenez alors à la liste des zones, ou apparaît votre nouvelle zone :

Pour chaque zone, un résumé apparaît indiquant le titre et le descriptif de la zone, le nombre de rubriques restreintes, le nombre d’auteurs autorisés, et si la zone et publique et/ou privée.

Le pictogramme en haut à droite de la zone vous indique si vous avez personnellement accès à la zone. Dans le cas où vous n’avez pas accès, il indique un sens interdit sur fond rouge, et sinon une coche sur fond vert, comme ici.

III. Ajouter des auteurs à une zone

Depuis la zone

Vous pouvez maintenant ajouter d’autres auteurs à la zone qui auront le droit de voir son contenu.
Pour cela, cliquez sur modifier

Vous retrouvez le formulaire d’édition de la zone avec :

  • les rubriques concernées reperées visuellement par un fond coloré
  • la liste des auteurs autorisés dans la colonne de gauche

Vous pouvez cliquer sur « Ajouter des auteurs » pour visualiser la liste des auteurs du site, triés par nom et paginés :

Le picto « + » situé à droite de chaque auteur vous permet de l’ajouter à la liste des auteurs autorisés. La croix rouge située à droite de chaque auteur autorisé vous permet de le retirer de cette liste.

Vous pouvez ainsi administrer la liste des auteurs autorisés en la complétant comme par exemple ici :

Les mises à jour de la liste des auteurs autorisés sont appliquées immédiatement, sans qu’il soit nécessaire d’enregistrer la zone.

Lorsque vous avez fini, revenez à la liste des zones (par le bouton retour donc, ou le bouton enregistrer si vous avez fait d’autres modifications). Vous pouvez voir que le nombre d’auteurs a été mis à jour.

Depuis une fiche auteur

Vous pouvez aussi gérer les droits d’un auteur depuis sa page personelle dans l’interface privée :

Vous pouvez sélectionner une zone et cliquer sur « Ajouter » :

La liste des zones autorisées est alors mise à jour :

Le lien « Enlever de la zone » vous permet de retirer les droits d’accès à une zone pour cet auteur.

IV. Fonctionnement et boucles du plugin

Tout le fonctionnement des squelettes et des boucles est inchangé par rapport à la version précedente du plugin. On se reportera donc à la partie concernée de sa documentation.

V. Protéger les documents de SPIP

La protection des documents de SPIP associé aux articles protégés est une fonctionnalité souvent demandée.

Le plugin accès restreint permet cela, si votre hébergement remplit deux conditions :
-  qu’il accepte les fichiers .htaccess permettant de donner des directives au serveur
-  qu’il soit suffisamment bien dimensionné, car les accès aux images et documents du site vont tous générer un accès à la base de données (pour savoir si les documents concernés peuvent être vus), ce qui ralentit fortement le site.

Si vous êtes dans ces conditions, ou que vous voulez tout de même essayer (mais on vous aura prévenu), voici comment faire :

Allez sur la page d’accueil du plugin Accès Restreint en cliquant sur son icône dans le menu « Configuration »

Menu icone Accès Restreint

Vous arriverez sur cette page :

Page d’accueil du plugin Accès Restreint

Cliquez sur le raccourci « Configuration des accès .htaccess » :

Raccourcis « Configuration des accès .htaccess »

Vous arriverez sur cette page :

« Ne pas créer ces fichiers » coché par défaut

Il suffit de cocher « Interdire la lecture », dans le premier cadre « Accès aux documents joints par leur URL », et « Créer les fichiers .htpasswd » dans le second cadre.

Vider ensuite votre cache. Tous les urls vers des images et documents de SPIP seront alors remplacés par un url de la forme spip.php?action=acceder_document&file=xxx, qui provoquera la lecture de l’autorisation d’accès au document [1].

Si votre site devient très lent ou plante sans arrêt sur une erreur du type « Accès impossible à mySQL », alors votre hébergement n’est pas suffisant pour ce fonctionnement. Désactiver la fonction pour revenir à un fonctionnement normal.

En complément, si après la mise en place du fichier .htaccess certaines pages de l’interface privée vous sont inaccessibles et que vous obtenez des messages « Accès interdit », vous pouvez désactiver la vérification htaccess de l’interface privée, dans les options du site.

VI. Paramétrage plus fin des restrictions

AR_TYPE_RESTRICTION définit le type de restriction pour traiter les élements communs à plusieurs zones :

  • Une restriction exclusive (ou forte) donne l’acces aux rubriques restreintes par plusieurs zones aux seuls membres de toutes les zones concernées.
  • Une restriction faible donne acces à une rubrique, même restreinte par plusieurs zones, aux membres de chaque zone concernée.
  • Valeurs possibles :
    • faible,
    • forte ou exclusive (par défaut)

Autrement dit, si une rubrique 2 est enfant d’une rubrique 1, et qu’il existe une zone 1 (rubrique 1) et une zone 2 (rubrique 2) :

  • un auteur présent dans la zone 1 (uniquement) ne pourra pas voir la rubrique 2 lorsque la restriction est « forte ». Il le pourra avec une restriction « faible »
  • À l’inverse, un auteur présent uniquement dans la zone 2 ne pourra pas voir la rubrique 1 même si la restriction est « faible » car la parentée n’est pas concernée. Il faut (si souhaité) dans ce cas définir en plus AR_TYPE_RESTRICTION_PARENTEE à « faible » pour l’autoriser.

Exemple, dans config/mes_options.php :

# Pour qu'une rubrique placée dans une Zone puisse 
# être accédée en étant une sous rubrique d'une autre Zone
define('AR_TYPE_RESTRICTION','forte');
define('AR_TYPE_RESTRICTION_PARENTEE','faible');

AR_TOUJOURS_TOUT_VOIR est une constante qui, si elle est définie dans le fichier mes_options.php de votre site (ou le fichier d’options de votre plugin qui utilise acces_restreint) modifie le comportement des boucles afin qu’elles affichent tous les résultats, sans aucune restriction. Pour restreindre un affichage, le squelette doit donc tester à la main, par exemple avec le filtre accesrestreint_article_restreint.

Exemple :
-  dans mes_options :

define (AR_TOUJOURS_TOUT_VOIR, 1);


-  dans un fichier squelette :

<BOUCLE_a(ARTICLES)>
[(#ID_ARTICLE|accesrestreint_article_restreint|oui)  <INCLURE{fond=intro_article}{id_article}> ]
[(#ID_ARTICLE|accesrestreint_article_restreint|non) Pas accés à cette page]
</BOUCLE_a>

AR_RESTRICTION_LIENS_STRICTE (après 4.1.0) est une constante qui, si elle est définie dans le fichier mes_options.php de votre site (ou le fichier d’options de votre plugin qui utilise acces_restreint) permet de ne jamais autoriser l’accès à un document ou un forum lié à un objet en accès restreint.

Exemple :
-  dans mes_options :

define (AR_RESTRICTION_LIENS_STRICTE, 1);

Notes

[1A partir de la version 3.8 du plugin, les URLs des documents protégés sont soit sous la forme plus perenne /IMG/xxxxxx.xxx?nn/hash si les réécritures d’URLs sont possible sur votre hébergement, soit de la forme docrestreint.api/nn/hash/xxxxxxx.xxx

Avec SPIP 2.1 le plugin nécessite l’installation du plugin SPIP Bonux.

Discussion

476 discussions

  • -  J’ai les mêmes problèmes que ceux-ci avec SPIP 2.0.8 :

    « Je rencontre le problème suivant : pas de possibilité de rajouter d’auteur à une zone restreinte ni en modifiant la zone, ni en modifiant ou en créant un nouvel auteur !

    J’ai des erreurs lorsque je visite la partie publique du site et que je suis connecté ... et pas un peu des pages d’erreurs SQL qui empêchent toute navigation. Le site est normal si je me déconnecte.

    Pourtant j’ai bien vider le cache après avoir activé le plugin ... Avez vous une idée de ce que je peux faire pour résoudre le problème ? »

    -  En outre, est-il possible des restreindre simplement une rubrique à tout visiteur authentifié, sans devoir ajouter les auteurs/visiteurs un à la fois ?

    Répondre à ce message

  • Bonjour, Je suis tout nouveau sur Sarka Spip. J’ai installé Acces Restreint. J’aimerais appelé dans la page Article.html la page Intro_article.html pour que les visiteurs voient l’existence de l’article ou de la rubrique restreinte et qu’ils soient invité à adherer pour avoir acces à ces pages. Le souci c’est que je ne sais pas comment appelé une page. Je ne sais pas comment inserer ce code dans article.html.

    Si vous pouvez m’indiquer la demarche, merci beaucoup.

    Répondre à ce message

  • Bonjour,

    J’ai une page sur mon site public que j’ai sécurisé avec #LOGIN_PUBLIC et une vérification php de la variable $auteur_session. J’ai créé un compte rédacteur que je donne au gens qui peuvent accéder à la page sécurisée et cela fonctionne très bien

    Par contre je veux que le compte auteur que j’ai créé pour sécuriser la page publique ne puisse pas du tout entrer dans le site privé. Est-ce possible avec Accès restreint 3 ?

    Merci d’avance,
    Gobi

    Répondre à ce message

  • Bonjour,

    J’ai un site en spip 2.0 auquel j’ai ajouté les plugs in : Acces Restreint 3.0 Le Couteau Suisse Lecteur Multimédia en Flash (MP3,flv) SPIP Bonux 2.0 Thickbox v2.

    J’ai bien installé l’accès restreint après avoir bien ramé pour en comprendre la logique, mais l’accès à une rubrique est bien bloqué. J’ai créé un visiteur et il peut se connecter. L’essentiel est donc assuré.

    Mais j’ai tout une série de problèmes :
    -   un visiteur qui se logge et qui revient sur un article protégé après avoir fermé l’onglet ou le navigateur, voit une page vide (bon squelette mais pas de contenu).
    -   un visiteur qui se logge et qui revient sur la page d’accueil de la zone restreinte après avoir fermé l’onglet ou le navigateur est déconnecté même s’il avait coché la case « rester connecté plusieurs jours »
    -   alors qu’il est loggé, que la case « rester connecté plusieurs jours » avait été cochée, qu’il navigue dans les articles de cette rubrique et qu’il revient à la page « d’accueil » de la zone restreinte, il est déloggé.

    bref c’est pas super pour les visiteurs déjà mais c’est encore pire si l’administrateur gère sa rubrique restreinte puis teste le tout avec les login du visiteur sur le même navigateur. Là surviennent les problèmes suivants pour l’administrateur (on a les mêmes pour le visiteur) :
    -   déconnection automatique de l’espace privé au bout d’un certain temps
    -   accès impossible pour des erreurs de cookies (pourtant activés) et en insistant un peu ça (en réécrivant l’url par exemple) ça passe.
    -   plus de formulaire de connection à l’adresse ecrire (mais aux autres oui - celles du genre spip.php ?page=login&url=%2Fecrire%2F ou la bonjour...) Donc on finit toujours pas réussir à ce relogger mais bon...

    J’ai pas trouvé trop de trucs par rapport à ça sur les forums et sur le net. Juste peut-être une histoire de htpasswd. J’ai cherché donc à suivre la procédure pour créer un fichier htpasswd. Mais là dans le fichier htpasswd qui est créé je n’ai que les codes de l’administrateur. Mon visiteur n’apparaît pas. D’où mes problèmes peut-être justement. Mais alors comment ajouter mon visiteur au fichier htpasswd ? ou comment créer le mot de passe crypté ? Ou alors le problème est-il tout autre ?
    J’avoue que je sèche alors que c’est assez enquiquinant toutes ces déconnexions...

    Aide bienvenue :)

    Merci d’avance
    (nb. accessoirement, je cherche à personnaliser le formulaire de connexion - essentiellement en enlevant le lien mot de passe oublié et en redesignant tout ça mais impossible de trouver où ça se passe dans le plug in accès restreint... Si vous avez une réponse pour ça aussi, je n’ai rien trouvé non plus.)

    Répondre à ce message

  • Bonjour,

    je viens de passer spip de 1.9.2e en 2.0.9 et d’installer les plugins qui vont avec dont sarka spip et acces restreint 3.0.

    Je rencontre le problème suivant :
    pas de possibilité de rajouter d’auteur à une zone restreinte ni en modifiant la zone, ni en modifiant ou en créant un nouvel auteur !

    J’ai des erreurs lorsque je visite la partie publique du site et que je suis connecté ... et pas un peu des pages d’erreurs SQL qui empêchent toute navigation. Le site est normal si je me déconnecte.

    Pourtant j’ai bien vider le cache après avoir activé le plugin ...
    Avez vous une idée de ce que je peux faire pour résoudre le problème ?

    Merci

    Répondre à ce message

  • Bonjour,

    Le site de mon école possède un accès restreint pour les parents d’élèves.
    Si les parents ne se connectent pas et cliquent sur un lien qui mène vers un article en accès restreint,
    ils se retrouvent sur une page avec « Erreur 404 ».
    Je souhaiterais qu’apparaisse sur cette page d’erreur le formulaire de connexion.
    Comment faire ?

    Merci d’avance.

    Pascal

    Répondre à ce message

  • 6
    Camille

    Bonjour,
    Je fais une mise à jour de mon site sous spip 2.0 et j’ai donc réinstallé le plugin accès restreint 3.0. lorsque je souhaite consulter mon site, et que je suis connectée en tant qu’administrateur, j’ai 4 messages d’erreurs de syntaxe concernant :

    la BOUCLE_document

    la BOUCLE_doc

    la BOUCLE_forums_liens

    BOUCLE_syndic

    Ces messages viennent forcément du plugin accès restreint car je ne les ai pas lorsque je désactive le plugin.
    Et je ne sais pas comment le rectifier.

    Merci de votre aide,
    Camille

    • Le cache est vidé ?

    • Camille

      oui, oui, je vide le cache après avoir activé le plugin, et systématiquement, ces erreurs apparaissent en visitant le site.
      Toutefois, elle n’apparaissent pas si je suis en simple visiteur non connectée, et l’erreur apparaît également dans l’espace privé, lorsque je suis en train de configurer le plugin accès restreint, si je veux créer ou modifier un visiteur.

      Est-ce que vous souhaitez un imprim’écran de ces erreurs ?

      Merci,

      Camille

    • Je ne suis qu’un simple utilisateur mais chez moi cela fonctionne.
      Cependant, à mon humble avis, il manque des infos pour que celui qui voudrait et saurait t’aider puisse comprendre le pb.
      Par exemple dans mon cas il fallait que le plugin CFG "soit dans le dossier plugins et les autres plugins sont dans son sous-dossier auto. (Si j’ai bien compris au moins certains d’entre eux fonctionnent avec CFG qui doit être à la racine pour prendre l’ascendant.
      Est-ce bien le cas chez toi ?
      Ensuite, quelles versions de quels plugins doivent fonctionner ensemble ?
      La version 2 de SPIP c’est pas 2. 0 8 ou 9 ???
      Ensuite, si tu ne trouve pas de solution dans les forums, tu peux aussi réinstaller et tester différentes configurations en local avec easyphp et en important des sauvegardes issues du site qui tourne.
      Des pb de droit d’écriture dans les dossiers sur le serveur peuvent aussi se poser. Raison supplémentaire de tester en local.

      Personnellement j’ai SPIP 2.08 ;
      cfg ;
      Acces restreint 2.0 ;
      Agenda 2.0 ;
      Squelette Ahuntsic ;
      Autorité ;
      Le couteau Suisse ;
      Crayons ;
      notifications
      saveo 2 (sauvegardes) ;
      spip listes(1-9-3) ;
      Spip bonux 2.0 ;
      Thickbox v2 ;

      Au delà du fait que ça tourne, la gratuité et le fonctionnement communautaire c’est génial, non ?
      A+

    • Bonjour, et merci,
      Je n’ai pas bien compris, dans le dossier plugin, situé à la racine du site, tu mets CFG et un dossier auto dans lequel tu poses tous les autre plugins ? Car je viens d’essayer, et le site ne se lit plus...
      Je trouve que ces plugin sont supers, et suis bien ravie de pouvoir les utiliser ! Je pose juste une question, car jusqu’à présent, utilisant SPIP 1.9 je n’avais aucun souci avec ce plugin, et maintenant que j’ai fais la mise à jour, ça ne fonctionne pas.

    • En fait j’ai suivi la procédure décrite sur ce site :
      http://www.spip-contrib.net/RERS-Reseau-d-echange-de-savoirs

      Je cite :
      « Installez le plugin cfg, puis déplacez son répertoire /plugins/auto/cfg vers /plugins/_cfg/ pour lui donner une priorité sur les autres plugins (dont Spip-listes qui pose problème
       »

      Je ne sais pas si tu installes les plugins en mettant l’adresse des fichiers zippés lors de l’installation des plugins dans l’administration.

      Pour la petite histoire je n’ai finalement pas installé le plugin RES mais tous les autres...

    • Et voilà, ça y est, problème résolu : ces bugs étaient dûs à une base de données en MySQL4. J’ai donc supprimé l’ancienne bdd et recréé une nouvelle en MySQL5 et tout fonctionne à merveille !

      Merci bien sûr aux développeurs de ce super plugin qui nous est bien utile.

      Bonne continuation,

      Camille

    Répondre à ce message

  • Bonjour
    je suis passé à la version 3 du plugin. Tout fonctionne sauf que je n’arrive pas à sauvegarder le nom de la zone d’accès restreint.
    J’ai contourné le problème en ce saisissant directement dans la base de données. ENsuite il apparait correctement
    Mais quand je veux créer une zone, le nom n’est pas ris en compte
    Merci pour votre aide
    Laurent girardeau

    Répondre à ce message

  • 1

    Je viens de faire la mise à jour de Spip 1.9.2 vers Spip 2.0.9.
    J’ai réinstallé Accès Restreint 3.0 en auto
    Impossible d’activer le plugins (pas de message d’erreur !!!)

    • Il manque surement le plugin spip-bonux (je viens d’avoir le même problème).

    Répondre à ce message

  • 3

    Spip 2.09 et Accès restreint Version : 0.3.0.3 [30202]

    Les messages des forums restent apparents lorsque je me déconnecte. Ils restent donc lisibles pour les visiteurs n’yant pas les droits.

    Une idée ?

    Merci

    • Et je suppose que vous avez essayé dans : espace privé/configuration/interactivité « désactiver les forums publics.... choix article par article... »

    • Oui ; ça ne change rien

    • Et après déconnexion suppression des cookies en effaçant l’historique ou les traces suivant le navigateur, ça ne change rien non plus ?

    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