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 »
Vous arriverez sur cette page :
Cliquez sur le raccourci « Configuration des accès .htaccess » :
Vous arriverez sur cette page :
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
ouexclusive
(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);
Discussions par date d’activité
476 discussions
J’avais bien noté dans votre documentation qu’il fallait vider le cache une fois le plugin désactivé mais comment puis je faire maintenant que je n’ai plus d’accès à l’espace privé ?
Faut il que je supprime tous les fichiers présents dans le répertoire « cache » par ftp?
Merci par avance pour votre aide
Cordialement,
Répondre à ce message
J’ai posté le même message sur le forum spip mais je me demande après réflexion si vous ne pouvez pas m’aider davantage puisque le message d’erreur semble provenir du plugin acces restreint :
Je suis sous SPIP v2.0.2 avec le squelette ahuntsic et hébergé chez free.
J’ai désactivé le plugin spip_liste et acces_restreint_v3 par l’interface privé sans soucis (je l’ai testé, il marchait bien, bon boulot, mais je voulais d’abord expliquer le but aux futurs rédacteurs).
J’ai voulu activer les compressions des différentes pages toujours dans l’interface privé à la suite. Firefox moulinait et maintenant j’ai le message suivant
Pouvez vous venir à mon aide ?
Merci par avance,
hleb
Il faut vider le cache apres la desactivation du plugin acces restreint, sinon les squelettes plante. Ce « défaut » est volontaire pour éviter toute révélation publique de contenu protégé après un désactivation accidentelle du plugin.
Répondre à ce message
Salut
Quelle est la procédure pour faire la mise à jour d’un site sous spip 1.92e avec accès restreint V2.0 pour passer sous spip 2 et accès restreint 3 et ne pas perdre les zones déjà définies ?
A+
Apparement il y a un probleme de mise a jour de la base. Une fonction dans /base/acces_restreint_install.php est sensée le faire ; mais pour une raison ou une autre, ça ne marche pas. Par contre en créant à la main les deux champs ’publique’ et ’privee’ comme definis aux lignes 29 et 31, tout va bien !
Répondre à ce message
Bonjour
J’essaie de faire fonctionner ce plugin. J’ai défini une rubrique en acces restreint dans la config du plugin. Si je suis connecte avec un ident qui a acces a la rubrique, elle s’affiche correctement. Sinon, j’ai une erreur 404 et je trouve ce message dans le spip.log :
Erreur - ’accesrestreint_autoriser’ non definie !
La meme erreur semblait provenir d’une incompatibilite avec un autre plugin :
http://archives.rezo.net/spip-zone.mbox/200811.mbox/%3C6BADC437-C6DE-4B37-879F-B62EA0C328C8@yterium.com%3E
Voici mes plugins... installes :
Lecteur Multimédia en Flash (MP3,flv)
Acces Restreint 3.0
Barre typographique généralisée
Barre Typo V2 pour 1.9.2 et suivantes
cfg : moteur de configuration
Corbeille
Le Couteau Suisse
Crayons
Imprimer document
SPIP Bonux 2.0
Thickbox v2
Répondre à ce message
bonjour, sur spip 2.02 avec ce plugins qui fonctionne plutot très bien, il est malheureusement impossible de supprimer une zone. Quelqu’un a une solution ? il semble que ce ne soit pas grand chose (mauvais appel de la fonction sur le lien ??)
Répondre à ce message
Bonjour,
J’ai besoin d’une petite confirmation suite à la questionne de Pierre Stegen sur la version de MySql : est-ce que ça veut dire que ce plugin ne peut fonctionner avec d’autre base - en particulière SQLite ? J’ai malheureusement pas MySql disponible.
Chris
Répondre à ce message
Merci aux dév’ qui ont eu la bonne idée de mettre à disposition un pipeline (accesrestreint_liste_zones_autorisees) qui permet de modifier/compléter la liste des zones a laquelle appartient le visiteur. Utilisé avec une table adhérente, j’ai pu ainsi ajouter automatiquement l’accès à une zone « adhérente » pour les personnes autorisées (juste un problème, il me faut maintenant importer la base d’adhérents en question ;)).
Répondre à ce message
J’ai installé le plugin (auto, puis manuellement) ; malheureusement, je n’arrive pas à l’activer. Je n’arrive à activer que les plugins qualifiés de « stable ».
J’ai la version 2.02 de spip
J’avais simplemnt oublié un plugin nécessaire à son fonctionnement (oups)
Répondre à ce message
Bonjour,
Tout d’abord vous remercier pour votre travail qui nous est bien utile. Malheureusement, je n’arrive pas à utiliser votre plugin avec la nouvelle configuration Spip 2.02 et le squelette Sarka-Spip version 3.
Cela me serait pourtant fort utile car il est important que tout le monde n’ait pas accès à la partie intranet du site.
Voici le message que j’obtiens lors de chaque tentative de mise en route du plugin accès restreint 3.0.
()
Erreur SQL
documents.id_document, documents.mode, documents.fichier,
documents.titre, L1.titre AS type_document, L1.mime_type,
documents.id_document FROM spip_documents AS
documents
LEFT JOINspip_documents_liens AS l ON documents.id_document=l.id_document
LEFT JOIN spip_articles AS aa ON (l.id_objet=aa.id_article AND
l.objet=« article ») LEFT JOIN spip_breves AS bb ON
(l.id_objet=bb.id_breve AND l.objet=« breve ») LEFT JOIN
spip_rubriques AS rr ON (l.id_objet=rr.id_rubrique AND
l.objet=« rubrique ») LEFT JOIN spip_forum AS ff ON
(l.id_objet=ff.id_forum AND l.objet=« forum ») INNER JOIN
spip_types_documents AS L1 ON ( L1.extension = documents.extension
) WHERE ((aa.statut = « publie ») OR bb.statut = « publie » OR
rr.statut = « publie » OR ff.statut=« publie ») AND (documents.taille
> 0 OR documents.distant=’oui’) AND (documents.id_document = 2461)
AND (documents.id_document IN ( SELECT zzz.id_document FROM
jonfosse
.spip_documents_liens as zzz WHERE(((zzz.objet=’rubrique’ AND 0=0) OR (zzz.objet=’article’ AND
(zzz.id_objet NOT IN ( SELECT zzza.id_article FROM
jonfosse
.spip_articles as zzza WHERE 0=1)))) OR(zzz.objet=’breve’ AND (zzz.id_objet NOT IN ( SELECT zzzb.id_breve
FROM
jonfosse
.spip_breves as zzzb WHERE 0=1)))))) GROUP BYdocuments.id_document
You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use
near ’SELECT zzz.id_document FROM
jonfosse
.spip_documents_liens asVoyez-vous de quoi il s’agit ?
Merci d’avance pour votre aide.
Pierre Stegen (http://www.jonfosse.be)
PS : j’ai posté le même message sur le site « sarka-spip »
Je fais les questions et les réponses ;-) c’est d’autant plus facile que j’ai pu disposer de l’aide apportée par 8-alien sur le forum sarka-spip.
Je confirme qu’il faut impérativement une vrsion MySql > à 4.1. pour que cela fonctionne.
Merci pour votre travail
Pierre Stegen
Répondre à ce message
Bonjour,
J’ai le même problème de création de visiteurs. Sur un site ancien 1.9 ils y sont toujours, mais sur un site tout neuf 2.0 rien.
Sur le site ancien 1.9, l’ordre alpha dans le classement par nom est bizarre :
A G L M P V Z B C D E F H I J K N O Q R S T U W X Y
Cela explique-t-il quelque chose aux concepteurs de ce très utile plugins
Merci Alain
la réponse a été donnée par le 19 décembre 21:55 , par Fred.T
J’insiste même si c’est la veille de noël et que tout le monde doit être dans ses cadeaux....
Oui moi j’arrive à créer des visiteurs, il suffit de mettre enregistrement obligatoire ET accepter les visiteurs sur site public dans config/interactivité.
Mais quand j’ai créé un visiteur je ne peux pas lui attribuer une zone restreinte (que j’ai par ailleurs créée) car la partie « Rejoindre cette zone » pour sélectionner une zone n’apparait pas.
Vous aviez indiqué qu’il s’agissait d’un bug (si j’ai bien compris) est ce toujours le cas ? ou bien est-ce que je fais une mauvaise manip ?
D’autre part quand on sélectionne accès restreint il apparait sur la gauche un logo : raccourci : config des accès .htaccess est ce cette partie qu’il faut modifier ?
Merci de votre réponse et bon noël
C’est un super plugin qui fonctionnait super bien en 19.2 j’aimerais bien que cela soit de même en 2.02
Danièle LV
Je ne reproduis pas ce bug. J’ai testé avec succès l’ajout d’une zone à un visiteur.
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 :
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.
Suivre les commentaires : |