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

  • Bonjour,
    J’utilise ce plugin, j’ai trois zones medcin, infirmier, sage femme
    comment je peux faire de sorte que si un infirmier essaie de se loguer dans un espace medcin, un message s’affiche disant « désoler cet espace est reservé aux medcins »
    Merci de votre réponse

    Répondre à ce message

  • Bonjour,
    Je découvre qu’une nouvelle version 3.14.3 est disponible or j’ai la version 3.14.1 et SPIP ne me propose pas l’icône de mise à jour !!! C’est d’ailleurs le cas pour tous les autres plugins qui ont des nouvelles versions. Je suis sous SPIP 3.1.1 avec la dernière mise à jour de Mars 2016. D’où cela peut-il provenir ?
    Merci de votre aide

    Répondre à ce message

  • Bonjour et merci pour ce plugin,

    J’ai crée deux zones medcin et infirmier

    Si un infirmier essaie de se connecter dans l’espace medcin, j’aimerai affiché un message qui dit « Désolé cet espace est réservé aux medcins » et vice versa, comment je dois faire ca ?? Merci de votre aide

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’avoir le cas 2 fois de suite sur un site en SPIP 2.1.26.

    Soit un auteur. Soit 180 zones.
    On lui ajoute toutes les zones (clic par erreur sur le lien permettant de le faire)
    Il y a alors un lien [Enlever de toutes les zones]
    Mais ce lien ne fait aucune action.

    Ce lien est de la forme : ecrire/?exec=auteur_infos&action=retirer_zone&arg=-1-auteur-814&hash=db623e868877a81ac1df64ad79a622eea0309dbc&redirect=.%2F%3Fexec%3Dauteur_infos%26amp%3Bid_auteur%3D814

    C’est assez gênant .

    Répondre à ce message

  • Bonjour

    Dans le cadre d’une mise a jour, je suis passé d’un site 2.1.10 à un site 3.1.1.

    Le plugin acces restreint me renvoie l’erreur :

    Erreur SQL 1054
    Unknown column 'zzzf.id_article' in 'IN/ALL/ANY subquery' 

    J’ai cette erreur à la fois dans le back office et dans la partie publique

    c’est bien le plug in, j’ai fais des tests en désactivant tout et en laissant uniquement celui la et c’est bien lui qui déclenche cette erreur.

    Est ce que cette erreur est connue ? que faire ?

    merci

    jacques

    Répondre à ce message

  • Bonjour,

    J’ai une question assez spéciale :

    Peut-on adapter ce plugin en ajoutant un type d’objet différent ?

    Par exemple, là je souhaiterai que les forums d’articles soient limités dans la partie privée et soient considérés comme une zone dont je peux limiter l’accès..

    J’en ai la conviction, mais vraiment je suis un manche question programmation plugin il y a un truc que je n’imprime pas et qui bloque ma compréhension...

    Pouvez-vous quelque chose pour moi ?

    Merci d’avance !

    Répondre à ce message

  • Spipmalion

    Bonjour,

    Accès restreint est-il compatible avec Déférencer les médias ?
    http://plugins.spip.net/medias_dereferencer.html

    Les 2 plugins créent des .htaccess, vont-il bien ensemble ?

    Répondre à ce message

  • 12

    Bonjour,
    Ce plugin « Acces Restreint 3.0 » est visiblement noté comme compatible avec la version de SPIP 3.1.0 .
    J’ai installé la dernière version de SPIP 3.1.0 [22707], mais chez moi, elle est considérée par SPIP comme incompatible.
    Que faire ?
    Merci pour vos lumières.
    Pat

    • quelle version du plugin as tu installé et comment ? il te faut la Version 3.14.0 minimum pour la compat SPIP 3.1.

    • Bonjour Maïeul,
      J’ai installé la dernière version disponible sur le site, la version 3.14.0 mais qui dirige vers une version 3.13.0 .
      Je l’ai télécharger puis installer manuellement dans le répertoire des plugins .
      Voilà ...
      Merci pour ta réponse
      Pat

    • je ne saisi pas : quand je telecharger la version marquée 3.14.0, j’ai bien la version 3.14.0

      Mais là où il y a peut-être un couac : cette version est marquée comme en dev. Du coup peut être pas prise en compte lors de l’activation du plugin.

      peux tu donc :
      -  retelecharger la version 3.14.0
      -  ouvrir le fichier paquet.xml et modifier etat="dev" par etat="test"
      -  installer cela comme plugin
      -  faire un retour sur la compatibilité effective ou pas avec la 3.1

    • je ne saisi pas : quand je telecharger la version marquée 3.14.0, j’ai bien la version 3.14.0

      mais où est cette version ?
      Comme je l’ai moi-même signalé, (commentaire juste en dessous) lorsqu’on clique sur cette version 3.14 c’est un zip 3.13 qui est proposé
      Si on va dans la section téléchargement, c’est également une version 3.13
      Ce zip de janvier 2016 ne fonctionne pas avec spip 3.1 et j’ai du revenir à la version que j’avais, la 3.13.4 de dev commitée en octobre 2015 utilisée avec spip 3.0.21

    • ahah ! je sais. Il ne faut pas regarder le nom du fichier, qui n’est pas correct.

      Si tu dezipe et ouvre le fichier .xml, tu vois

      <paquet
      	prefix="accesrestreint"
      	categorie="auteur"
      	version="3.14.0"
      	etat="dev"
      	compatibilite="[3.0.0;3.1.*]"
      	logo="prive/themes/spip/images/zone-32.png"
      	schema="0.4.2"
      	documentation="http://contrib.spip.net/Acces-Restreint-3-0"
      >	

      ce qui te dis que tu a la version 3.14, laquel est en courd dev mais compatible avec SPIP 3.1.
      D’où ma suggestion de changer le etat="dev" en etat="test" pour tester effectivement la compatibilité avec 3.1.

    • finalement, avec spip 3.1, j’avais récupéré cette version « 3.14 » en croyant avoir une version 3.13

      Ce plugin refuse de s’activer sans afficher de message. ce sont des erreurs « arguments inconnus » sur le site public qui m’ont alerté.
      croyant voir une nouvelle version 3.14, je me suis retrouvé avec le même paquet non fonctionnel (marqué 3.13) d’où mon commentaire d’info. Depuis PAT a visiblement le même problème.

      Solution provisoire
      rester sur l’ancien plugin 3.13.4 qui est aussi en état « dev » sans que cela gêne spip 3.1 :

      <paquet
      	prefix="accesrestreint"
      	categorie="auteur"
      	version="3.13.4"
      	etat="dev"
      	compatibilite="[3.0.0;3.1.*]"
      	logo="prive/themes/spip/images/zone-32.png"
      	schema="0.4.2"
    • Bonjour à tous,
      Merci pour vos réponses, J’ai voulu suivre vos conseils, mais au moment de télécharger l’archive Zip du plugin le lien est brisé et donc impossible de télécharger la version 3.14. du plugin. voir image jointe.

      jfd est-ce que ta version de Spip est la dernière (SPIP 3.1.0 [22707] ) ?

      Encore merci PAT

    • oui j’ai la même version de spip
      Le nom du pluging vient d’être changé -> N° de version supprimée pour être mis dans la bonne colonne, donc ton « not found » est logique. Passes par « téléchargement » pour la récupérer
      Mais c’est toujours le zip de janvier et comme je l’ai dit, cette version d’accès restreint ne fonctionne pas chez moi.

      Tu peux toujours modifier le xml de dev en test comme le propose Maïeul.
      Perso, j’ai pris le risque de continuer avec la version 3.13.4 d’octobre, qui fonctionne même sans modifier le xml, mais mes sites sont juste des gadgets pour voir le fonctionnement. Il n’y a donc pas grand risque en cas d’intrusion

    • @jfd

      Ce plugin refuse de s’activer sans afficher de message. ce sont des erreurs « arguments inconnus » sur le site public qui m’ont alerté.
      croyant voir une nouvelle version 3.14, je me suis retrouvé avec le même paquet non fonctionnel (marqué 3.13) d’où mon commentaire d’info. Depuis PAT a visiblement le même problème.
      Solution provisoire
      rester sur l’ancien plugin 3.13.4 qui est aussi en état « dev » sans que cela gêne spip 3.1

      je n’ai pas compris. Peux tu reexpliquer ce que tu as testé ? je croyais que la 3.13.4 ne marchait pas sous SPIP 3...

    • étapes :
      -  1) récupération de spip 3.1 et des plugins dispos à la date du jour (donc ce que je croyais être une 3.13 est qui est une 3.14) (je passe pas par spip contrib mais directement par la page téléchargement)
      -  2) copie manuelle de spip 3.1 dans les dossiers d’un site de test (pour évaluer le comportement)
      -  3) copie manuelle des plugins
      -  4) appel de l’espace privé pour installation
      -  5) appel de la gestion des plugins, tout cocher, activer
      -  6) affichage du compte rendu « vos plugins sont activés » tout est vert
      -  7) retour à l’espace public et appel d’un article spip passe en mode débug et signale que des arguments sont inconnus (je ne me rappelle plus lequel mais je crois que c’est « tout voir »),
      -  8) retour à l’espace privé, accès restreint n’est pas activé
      -  9) activation d’accès restreint, rien ne se passe (comme si je n’avais rien fait)
      -  10) installation manuelle sur 4 de mes mini-sites spip 3.0.21->3.1 (même pas peur)
      -  11) mise à jour des tables affichage « la mise à jour des plugs s’est bien déroulée »
      -  12) test un fonctionne, 3 retournent l’erreur
      -  13) vérification et constat suivant :
      les sites qui ne fonctionnent pas ont bien le plugin à jour (le fameux 3.14 baptisé 3.13) et il est désactivé.
      par contre, j’ai oublié de le copier sur celui qui continue à fonctionner et qui a encore le 3.13.4
      -  14) copie du vieux plugin sur les sites en panne, ils se mettent à fonctionner sans problème
      -  15) passage sur le site de dev et constat de tickets fermés et d’une version 3.14
      -  16 passage sur spip contrib et constat que la 3.14 est bien là mais pointe sur le zip de ce que je croyais être une 3.13 (tu suis toujours ?) et qui est en fait la version que je n’arrive pas à activer (donc la 3.14)
      -  17) début de la discussion :-))

      En ce qui concerne la « vieille » 3.13.4, elle est marquée de 3.0 à 3.1.* dans le xml et est en version dev
      A++

    • donc si je comprend bien, tu avais une 3.13.x qui marchait sous SPIP 3.1, mais la 3.14 ne marche pas ?

      je viens de refaire un test avec la 3.14 sur un SPIP 3.1 neuf, et tout roule …

    • désolé pour le retard mais je n’ai pas d’internet chez moi.
      Donc
      j’avais des spip3.0.21 avec le plugin 3.13.4 qui marchait
      pour passer de 3.0.21 à 3.1, j’ai remplacé mes plugin par ceux compatibles (donc le 3.14 pour accès restreint)
      par rapport à ton test, le mien était aussi sur un spip tout neuf mais avec une base préremplie en spip 3.0.21 pour un test en réel
      il y a donc eu mise à jour de la base après installation.
      en ce qui concerne mes mini sites, la base était aussi en spip 3.0.21 mais je n’ai pas remplacé les dossiers tels que local, tmp...
      Dans les deux cas, le plugin en 3.14 n’était pas activé et pas activable.

      un retour à la version 3.13.4 (par remplacement du dossier) a permis de retrouver sans avoir à l’activer un plugin fonctionnel.
      Depuis, j’ai remis la version 3.14 pour voir, et le plugin est resté activé.
      Visiblement, le problème se pose avec un plugin 3.14 mis AVANT les mises à jours faites par spip 3.1.

    Répondre à ce message

  • J’ai mis à jour la doc pour y rajouter AR_TYPE_RESTRICTION et AR_TYPE_RESTRICTION_PARENTEE

    Répondre à ce message

  • Spipmalion

    Bonjour,

    Sur un SPIP 3.0 certains liens vers des documents dans des rubriques restreintes s’affichent sous la forme : www.adressesite.com/nom_du_fichier.pdf et provoquent une erreur

    Quelqu’un a rencontré le même problème ?

    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