SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Auteurs et Authentification > Restriction de l’accés aux contenus > Accès restreint V1

Le plugin Accès Restreint

vendredi 29 septembre 2006, par achille, Alexandra, BoOz, Cedric Morin, Joseph, RealET. Dernier ajout jeudi 8 novembre 2007


Le plugin accès restreint permet de définir et de gérer des zones de l’espace public et privé en accès restreint. Les zones ainsi définies ne sont alors accessibles qu’aux visiteurs authentifiés et autorisés.


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 authentifié ou s’il n’est pas autorisé, alors l’intégralité de la rubrique (ce qui inclus les sous rubriques, les articles, les liens ...) ne seront pas accessible à ce visiteur.

Si le visiteur est authentifié, 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.

Les dernières versions de ce plugin permettent (à partir de SPIP 1.9.2) de filtrer également l’espace privé. Pour les versions précédentes, on parle de visiteurs identifiés ou non, et uniquement de visiteurs, les rédacteurs et les administrateurs auront eux accès à l’intégralité des contenus depuis 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é à partir de spip 1.9.2) 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 surchargées pour en filtrer les résultats en fonction des droits du visiteur.

I. Installation du plugin accès restreint

1. Placez le plugin, après l’avoir récupéré dans les packages de la zone, http://zone.spip.org/files/spip-zone/, dans un dossier nommé plugins à la racine de votre site SPIP.

2. Allez dans l’espace privée du site : Configuration / Gestion des plugins en tapant l’url suivante : ecrire/ ?exec=admin_plugin

3. Cochez le plugin Accès restreint et validez

JPEG - 22 ko

4. Videz le cache

Attention : en activant ou en désactivant ce plugin, il faut penser à vider le cache de SPIP. Sinon, vous aurez les erreurs php décrites dans le forum de cet article.

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

Les étapes précédantes 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.

- créer une nouvelle zone
- lui donner un titre
- lui donner un descriptif
- cocher "m’ajouter les doits d’accès à cette zone"

Il faut 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 admins 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’acces des rubriques comme une restriction d’accès dans un immeuble : lorsqu’il faut un autorisation pour franchir une porte, tout ce qui est derrière se retrouve en accès restreint.

Valider pour créer la zone. Vous obtiendrez alors ceci :

Toutes les rubriques restreintes de la zone (explicitement ou indirectement) apparaissent sur fond coloré.

La liste des auteurs ayant accès à une zone est affichée sous le formulaire d’édition.

Pour revenir à la liste des zones, cliquez sur Voir toutes les zones :

III. Créer des auteurs et/ou des visiteurs et leur donner les droits sur les rubriques protégées

Une fois la ou les zones créées, il faut aller dans la fiche auteur et indiquer à quelles zones l’auteur ou le visiteur ont accès. La fonction de restriction par zone n’apparaît, en effet, qu’après la création d’un auteur.

ecrire/ ?exec=auteurs_edit&id_auteur=2

Un administrateur général du site peut ajouter ou supprimer l’accès à toute zone pour tous les auteurs (administrateur, rédacteur ou visiteur). Un administrateur restreint ne peut intervenir que sur les rédacteurs et les visiteurs. Il peut accorder ou supprimer l’accès uniquement aux zones auxquelles il a lui-même accès. Il lui est également possible d’accorder l’accès à une des ces zones à un autre administrateur mais ne peut lui supprimer l’accès.

L’interface du plugin est internationalisée. Mais pour l’instant, seul les fichiers de langue anglais et français sont disponibles. Vous pouvez compléter les fichiers de langues ou les personnaliser dans le répertoire lang du plugin.

IV. Fonctionnement et boucles du plugin

1. Aspects techniques

- Le plugin accès restreint installe trois nouvelles tables dans SPIP, comme on peut le voir dans le répertoire base du plugin :

- Une table descriptive des zones d’accès, appelée spip_zone
- et deux tables de liens zones-auteurs et zones-rubriques, appelées spip_zones_auteurs et spip_zones_rubriques.

Ces tables sont sauvegardées automatiquement lors d’un dump dans l’onglet Configuration/Maintenance /Sauvegarde du site.

2. Comportement

Le plugin modifie le comportement des boucles SPIP pour que le résultat ne fasse apparaître que ce que le visiteur (que ce soit un visiteur anonyme un visiteur identifié ou un auteur au sens de SPIP) a le droit de voir.

L’intérêt de cette démarche, c’est qu’elle fonctionne sur toutes les boucles, donc tout le site se trouve instantanément sécurisé sans aucune modification de squelette. Il n’y a pas de risque d’oublier un morceau.

Ce plugin nous garantie l’absence de fuite liée a de nouvelles fonctionnalités de SPIP (comme les modèles [1] de 1.9.1 qui seraient une belle faille pour ceux qui sécuriseraient du contenu au moyen des squelettes).

Le principe même de fonctionnement du plugin acces-restreint est de ’supprimer’ du résultat des boucles tout ce que le visiteur n’a pas le droit de voir. Ainsi les zones à accès réservées sont invisibles pour qui n’y est pas habilité.

N’ayez donc aucune crainte en ce qui concerne les robots, les moteurs de recherche, ou les fichiers de backend. Le filtre est infaillible.

Ce principe de fonctionnement permet au plugin de filtrer le contenu publié sans modification du squelette. Cela permet aussi d’avoir des menus (liste de rubriques) cohérents avec le contenu effectivement accessible. Bref c’est un parti pris, qui fait son efficacité même.

En contrepartie, un visiteur (identifié ou non) qui essaie d’accéder à du contenu auquel il n’a pas le droit a le même résultat que si le contenu n’existait pas, (il est renvoyé sur une page 404) car, d’un point de vue technique ce contenu n’existe effectivement pas dans le résultat des boucles SPIP des squelettes qu’il interroge.

À partir de là, il y a deux stratégies possibles selon la finalité de l’accès restreint :

- Un filtrage fort, sans indication qu’un contenu existe mais qu’il n’est pas accessible : avoir un lien ’S’identifier’ générique sur tout le site, qui permet aux personnes habilitées de se connecter pour accéder au contenu.

- Un filtrage avec information : dans la partie alternative de la boucle article ou de la boucle rubrique, on regarde si l’objet existe et s’il a été filtré, et dans ce cas alors, on présente le formulaire de login.

À cet effet, deux filtres ont été créés pour le plugin :
- AccesRestreint_article_restreint appliqué à l’id_article

- AccesRestreint_rubrique_restreinte appliqué à l’id_rubrique

De plus le critere {tout_voir} permet de passer outre le filtrage d’acces. Il peut etre utilisé par exemple pour lister les titres des articles dans une rubrique restreinte, ou meme pour verifier l’existence d’un article filtré, a la place des deux filtres ci-dessus.

3. Exemple de boucle :

On peut faire, sur le même modèle, une boucle rubrique, en utilisant l’utilisation normale et judicieuse des parties alternatives des boucles spip. La boucle donnée ci-dessus illustre l’idée, mais il va sans dire qu’en contexte réel, il serait préférable de faire des inclure, soit d’un squelette formulaire avec un login public, soit d’un squelette de page d’erreur 404.

En résumé, pour faire la différence entre un article ou une rubrique inexistante, et un article ou une rubrique masquées, il y a deux filtres pour ca, qu’il faut utiliser dans la partie alternative des boucles.

Un autre exemple utile consiste à lister toutes les rubriques contenues dans une zone. Pour cela on utilise le critere tout_voir et id_zone pour obtenir les rubriques liées à une zone. Mais attention, ce dernier critère ne retourne que les rubriques explicitement cochées dans l’interface, pas toutes les rubriques filles. Pour lister toutes les rubriques d’une zone, il faut donc ecrire :

On notera l’utilisation du critère doublons dans la sous boucle. Il a pour but d’éviter l’affichage d’une même rubrique à plusieurs reprises dans le cas ou plus d’une rubrique est cochée et ou l’une est dans la branche de l’autre.

V. Page d’identification et login public

Voilà le plugin est "magique", il filtre tout pour vous une fois que les accès ont été définis, que les rubriques et les auteurs ont été rattachés aux zones restreintes.

Pourtant, il faut encore faire un petit effort, même si vous avez l’habitude que spip fasse tout pour vous, y compris l’impossible :-)

- Le premier effort à faire, c’est de mettre un formulaire de login en page d’accueil, ou un bouton "s’identifier" qui permette au visiteur de se loguer :

- Pour l’identification, un #LOGIN_PUBLIC fait très bien l’affaire.

- Pour donner des droits d’accès à des personnes qui ne sont ni administrateur (petit bonhomme vert dans la page auteur), ni rédacteur (petit bonhomme jaune), il faut les inscrire en tant que visiteur, (petit bonhomme bleu). Attention, pour avoir un statut visiteur qui ne puisse pas se connecter à la partie privée, il faut bien penser à activer la partie forum et à configurer le site en conséquence. Dans la partie de configuration du site, à cette url, ecrire/ ?exec=config_contenu , cochez les options suivantes :

- Enregistrement obligatoire (les utilisateurs doivent s’abonner en fournissant leur adresse e-mail avant de pouvoir poster [2] des contributions.

- Ne pas accepter les inscriptions

Les visiteurs ne se trouvent pas dans la page auteurs de la partie privée, mais à cette url  ?exec=auteurs&visiteurs=oui

Ce plugin a été bien intégré sur ce site, qui pourra nous servir d’exemple : http://cfdt-scerao.fr/. On constate que sur le modèle du squelette login.html présent dans la dist de SPIP 1.9, cette page qui donne accès à l’espace privé, l’auteur de ce site a créé un squelette appelé login_public.html qui sera le passage obligé pour accéder à l’espace réservé aux adhérents, sans qu’ils aient toutefois accès à l’espace privé, avec, comme option l’envoi de mot de passe si celui-ci a été oublié :

Voici le bout de code à mettre dans le squelette login_public.html :

Ce qui donne un formulaire de connection qui ressemble à cette capture d’écran :

Une fois l’adhérent correctement logué, il aura donc accès aux rubriques protégées.

Mieux encore que #LOGIN_PUBLIC , il convient d’utiliser :[(#LOGIN_PUBLIC|mapage.html)] . Voir à ce sujet la documentation de SPIP sur les formulaires http://www.spip.net/fr_article1827.html


- #LOGIN_PUBLIC D’une utilisation beaucoup plus spécifique, la balise #LOGIN_PUBLIC affiche un formulaire permettant à vos utilisateurs de s’identifier tout en restant sur le site public (sans entrer dans l’espace privé). Cette balise sert notamment à authentifier les visiteurs pour les sites proposant des forums modérés sur abonnement. Elle peut aussi servir de brique de base pour restreindre l’accès à certains contenus sur le site public : mais cela reste d’un maniement complexe, et nécessitera encore des développements et la rédaction de tutoriels complets avant d’être facilement utilisable par tous ; néanmoins, un exemple d’utilisation avancée est donné plus bas.
Le #LOGIN_PUBLIC, par défaut, « boucle sur lui-même », c’est-à-dire que le formulaire revient sur la page où il se trouve. On peut cependant indiquer une page vers laquelle le formulaire mènera, sous la forme :

[(#LOGIN_PUBLIC|spip.php?page
=mapage)] ou [(#LOGIN_PUBLIC|spip.php?rubrique20)]

Si votre site offre une inscription automatique à l’espace privé, les données de connexion à l’espace public sont identiques à celles de l’espace privé ; c’est-à-dire que les données envoyées à l’utilisateur pour s’identifier à l’espace public lui permettent également d’accéder à l’espace privé.
Si, au contraire, vous avez interdit l’inscription automatique à l’espace privé, il faut impérativement avoir au moins un article dont les forums seront réglés en mode « sur abonnement » pour activer cette balise ; dès lors, SPIP pourra fournir des informations de connexion pour le site public sans accès à l’espace privé.

- #URL_LOGOUT est le pendant de #LOGIN_PUBLIC ; il donne une URL permettant à un visiteur authentifié de se déconnecter.
On peut passer un paramètre à cette balise pour spécifier l’adresse de retour après la déconnection. Par exemple :

[(#URL_LOGOUT{spip.php?page=
sommaire})] renverra vers la page de sommaire.

Voici un exemple simple, mais complet, d’utilisation de ces deux balises. Il faut passer par un peu de php pour tester la variable $auteur_session qui indique qu’un auteur est identifié ou non. Si c’est le cas, on peut récupérer (voire tester) son statut, son login, etc., via $auteur_session['statut']....

VI. Comment je fais dans mes squelettes ?

Nous mettons en pièce jointe un fichier Accès_restreint_noisettes.zip, avec tous les éléments qu’il vous faut.

Nous vous proposons une méthode simple, qui modifie un minimum la Dist, et s’adapte à n’importe quelle situation.

1/ Insérer partout dans vos squelettes les deux noisettes d’identification et de déconnection. Libre à vous de créer des chaînes de langues, et ou/de personnaliser le texte. Le plus simple est de se servir d’une inclusion sous les rubriques, dans inc_rubrique.html par exemple.

2/ Mettre les noisettes dans le répertoire squelettes, avec éventuellement l’image du cadenas.

- inc_identification_sedeconecter.html

Cette noisette n’affiche rien si le visiteur est identifié, et affiche le nom de la personne s’il est identifié, en lui proposant de se déconnecter.

- inc_identification_visiteurs.html

Cette noisette n’affiche rien si vous êtes identifié, et affiche le formulaire d’identification si le visiteur n’est pas identifié.

L’interêt de créer deux fichiers distincts, c’est que l’on peut les placer à deux endroits différents sur le site.

3/ formulaire_login.html
Le placer dans squelettes/formulaires pour ne pas l’écraser lors d’une future mise à jour, et de le personnaliser. Nous vous en proposons un, légèrement modifié par rapport à celui de la distribution officielle, qui a l’énorme avantage de désactiver le focus [3] , qui pourrait se révéler très vite pénible et encombrant, car il agit comme une ancre, et si vous ne le désactiver pas, vos visiteurs seront automatiquement "redirigés" vers le formulaire d’authentification. Ce défaut ergonomique se constate sur les petites résolutions, ou sur les sites ayant de nombreuses rubriques

formulaire_login.html

4/ inc_nom_statut_ip.html
Une dernière noisette optionnelle, qui peut vous donner le statut de la personne connectée, administrateur, rédacteur ou visiteur, à inclure par exemple dans inc_identification_sedeconecter.html

5/ Voir aussi la noisette qui permet de donner l’intro de l’article et un formulaire de login avec le critere {tout_voir}.
Elle est disponnible sur la zone et dans la dernière version du plugin.
Pour la voir en fonctionnement, c’est sur spip-zone.info.

6/ Une autre noisette, qui joue sur le plugin Balise Session et Accès restreint, est disponnible ici.

Voilà vos squelettes sont fin prêts pour un intranet ou un accès restreint.

VII. Ce que ne faisait pas le plugin en version SPIP 1.9.1

Le plugin accès restreint sous SPIP 1.9.1 était parfait pour l’espace public. Mais, il ne permettait pas encore de restreindre et de filtrer l’espace privé.

VIII. Accès restreint et filtrage de l’espace privé depuis la version 1.9.2 Pr1, SVN et au-delà

C’est désormais possible de bénéficier de toutes les fonctionnalités du plugin dans l’espace privé. Pour chaque zone restreinte, on définit si ca doit filtrer l’espace public et/ou l’espace privé. Et non seulement ca restreint l’accès, mais ca permet encore de filtrer l’affichage de la partie privée.

Donc un rédacteur qui n’est pas rattaché à une zone ne verra pas les rubriques de cette zone dans l’interface d’administration. Un administrateur non plus. Attention toutefois, seul l’administrateur restreint, ne pourra pas changer le statut des zones du plugin. Un administrateur complet peut se rajouter à une zone restreinte s’il le désire.

IX. Interaction avec le plugin Agenda

Le plugin accès restreint filtre, dans l’espace public, la boucle EVENEMENTS du plugin Agenda. Seuls les évènements inclus dans un article appartenant à une rubrique accessible seront visibles.

À partir des versions SVN n°11549 pour le plugin accès restreint et 11548 pour le plugin agenda en date du 21 avril 2007, le filtrage des évènements dans l’espace privé est également pris en charge.

X. Jouons avec le plugin accès restreint et le plugin balise session

Objectifs :

- Afficher un bouton de connexion si et seulement si le plugin accès restreint est installé *et* il y a au moins une rubrique de restreinte.
- Un fois identifié, Afficher d’une manière différente les rubriques qui était masquées
- Et afficher un bouton de déconnexion

Dans un premier temps, vérifier que le plugin accès restreint est installé. Pour cela, lire la config des plugins en y cherchant la signature du plugin accès restreint :

Ensuite, dans le squelette login-logout.html vérifions qu’il y a au moins une rubrique protégée.

C’est<BOUCLE_AuMoinsUneRubriqueProtegee(ZONES_RUBRIQUES){0,1}> qui fait tout le travail : regarder si dans la table du plugin accès restreint, il y a au moins une ligne.

Quant à #SESSION{id_auteur}, c’est une balise du plugin sessions qui permet de savoir s’il y a ou nom un auteur de connecté.

Et il faut avoir quelque par dans le squelette l’affichage du formulaire de login, conditionné au fait que l’on a demandé la connexion :

Enfin pour différencier les rubriques qui étaient invisibles avant la connexion, vérification que la rubrique en cours est bien dans une zone restreinte :

Amusez-vous bien !

XI. Astuce pour récupérer un flux RSS personnalisé

Si vous vous abonnez au flux RSS d’un site avec Accès restreint, par exemple avec Thunderbird, avec l’adresse http://monsite.net/spip.php?page=backend, vous ne verrez apparaitre dans le flux que les articles accessibles aux visiteurs non identifiés puisque, via Thunderbird, vous ne serez pas identifié sur le site.

Il est possible d’utiliser une identification HTTP afin de récupérer un flux RSS contenant l’ensemble des articles auxquels vous avez accès. ATTENTION : avec ce type d’identification, votre login et votre mot de passe seront transmis en clair dans l’URL.

Utilisez l’adresse suivante pour vous abonner au flux RSS dans Thunderbird : http://login:motdepasse@monsite.net/spip.php?action=cookie&essai_auth_http=oui&url=spip.php?page=backend. Vous obtiendrez alors un flux comportant les articles auxquels vous avez accès. Cette astuce fonctionne avec n’importe quelle page.

Documents joints

Notes

[1] Imaginons une rubrique 23 sécurisée par un squelette avec du code php <?php if (....) ?> pour ne pas afficher la page si l’auteur n’a pas les droits, et bien si dans un forum, par exemple, il faisait appel au modèle <article 30> ou à une autre variante, il pourrait accéder à du contenu restreint. Avec ce plugin, qui ne joue pas sur la squeletisation, tout est bien sécurisé, on peut dormir tranquilement, ce sont bien toutes les boucles qui sont filtrées.

[2] Cela ne veut pas dire, pour autant, que vous êtes obligés d’utiliser les forums, mais seulement que vous pourrez octroyer des zones restreintes à de simples visiteurs

[3] L’astuce pour désactiver le focus est assez fine, on a déplacé le crochet de la fonction javascript qui gère le focus.
Avec Focus

Sans Focus


Répondre à cet article

  • Le plugin Accès Restreint - accès rubriques Filles

    21 avril 2008 08:44, par emic78

    Bonjour,

    pouvez-vous me confirmer que restreindre l’accès à seulement une sous-rubrique d’une rubrique est possible ?

    Ce que je voudrais c’est sur ma page de sommaire afficher le titre de la rubrique seul puis arpès clic afficher toutes les autres sous rubriques à accès restreint, j’ai surement oublier des bout de codes dans mon squelette.

    Pour le moment j’ai beau cocher ma sous-rubrique, celle-ci n’est pas accessible.

    Répondre à ce message

    • J’ai résolu mon problème grâce à la boucle proposé plus tout_voir

      Par contre je souhaiterai récupérer l’idée de la zone à laquelle est rattachée le visiteur qui pourrait être par exemple #ID_ZONE, mais ce n’est pas le cas. J’en ai testé d’autres. En appelant la variable php $id_zone je n’ai pas non plus de résultat.

      Avez-vous une idée du nom de la variable ?

      Merci

      Répondre à ce message

      • il te faut utiliser le plugin session pour récupérer simplement l’id_auteur en cours.
        (c’est faisable aussi sans le plugin, mais avec du php et du #SET #GET)

        <BOUCLE_zone_id(spip_zones_auteurs) {id_auteur = #SESSION{id_auteur}} {"<br />"}>
         <BOUCLE_zone_nom(spip_zones) {id_zone}>
           #ID_ZONE - #TITRE
         </BOUCLE_zone_nom>
        </BOUCLE_zone_id>
        </B_zone_id>
         pas identifié
        <//B_zone_id>

        Répondre à ce message

    Retour au début des forums

  • Je voudrais créer un menu sur www.eolides.com

    L’une des rubriques est à accès restreint. Dans le menu (qui n’est pas encore en ligne), pour cette rubrique, j’ai fait un lien qui va vers la page login_public... au lieu de le faire directement vers la rubrique.

    Ai-je eu raison ? Parce que du coup, même une fois logués, à chaque fois qu’ils recliquent sur ce menu, les visiteurs tombent sur la page "se loguer" au lieu d’aller directement sur la rubrique à accès réservé.

    Que dois-je faire pour qu’une fois logués, ils puissent naviguer librement sur le site, sans avoir à se reloguer toutes les 2 mn ??

    Répondre à ce message

    Retour au début des forums

  • bonjour Voici mon problème Pour être plus clair : Il y a des rubriques dans le portail. Dès lors qu’on s’authentifie, on a accès à certains rubriques et pas à d’autres. Le problème est que malgré les bonnes declarations, les nouveaux users ne voient pas une rubrique. Donc à comparer leur profil avec ceux qui ont bien accès, je me suis rendu compte qu’il y a un champ ( attribut) ldap qui leur manquait. Si je leur ajoute cette dernière, ils ont accès à la rubrique. Mais le problème, c’est que mon responsable ne veut plus de ce champ car il ne doit plus exister. Donc je deduis donc qu’il y forcement un test sur ce champ. Moi je souhaiterais orienter le test sur un autre champ. Je crois que mon prédécesseur à supprimer le champ dans le formulaire de déclaration des users sans modifier son code.

    Sinon, j’ai lu les infos sur le plugin rubriques à accès restreint. Mais je n’avance toujours pas.

    Pour info : j’ai posté aussi un message sur le forum de spip http://forum.spip.org/fr_202956.html#forum203111

    Répondre à ce message

    Retour au début des forums

  • Félicitations et merci pour ce plugin bien pratique. Cependant est-il possible, comme commencé dans l’article pour 1.9.1 : http://www.spip-contrib.net/Plugin-Restriction-des-droits-des , de restreindre encore plus les admin. ou, en d’autres termes, de créer des super-rédacteurs ?

    Pour l’avoir essayé... je ne peux vraiment pas me permettre d’avoir des admin. restreints qui peuvent modifier les noms, les e-mails et les bio. des rédacteurs et des visiteurs, voir les stat. et l’origine des visites, et, sauvegarder la base de donnée du site (!).

    En revanche, j’ai absolument besoin de super-rédacteurs (ou d’admin. très très restreints) autorisés à gérer et modifier certaines rubriques, leurs sous rubriques, leurs articles, leurs brèves éventuellement et le choix des mots-clés à y associer, dans l’espace privé.

    Bref ! Tout ce qui concerne la rédaction mais surtout pas l’administration et encore moins la configuration.

    Y a-t-il une solution ?

    D’avance merci.

    Répondre à ce message

    Retour au début des forums

  • Le plugin Accès Restreint compatibilité de version

    21 avril 2008 11:40, par Gefonline

    Bonjour,

    je viens de migrer un site de spip 1.9.2c a 1.9.2d. J’utilisais le plugin accès restreint sans problème dans la version précédente mais sous 1.9.2d je ne parviens pas à créer une zone. En effet, le message suivant m’est retourné lorsque j’enregistre une nouvelle zone : "Vous n’avez pas accès à cette page." Avant que je continue à chercher où j’ai bien pu faire une fausse manip j’aimerais m’assurer que le plugin est bien compatible 2d.

    Merci de votre aide

    Répondre à ce message

    • En fait, j’ai l’impression que c’est plus un problème de compatibilité de plugin. J’utilise également le plugin openbublishing et si j’active mes zones d’accès restreint en premier (j’ai refait entièrement ma migration), alors ça marche mais cette fois c’est openpublishing qui refuse d’initialiser ses tables... Mais bon j’en suis pas sûr parce que si je désactive l’accès restreint, je ne parviens pas à faire marcher openpublishing pour autant. C’est juste que la première fois j’avais commencé par me soucier d’openpublishing en premier, cad avant d’essayer de créer des zones d’accès restreint, et celui-ci marchait sans pb. Je continue de creuser ( et de m’enliser ;)

      Répondre à ce message

    • Le plugin Accès Restreint compatibilité de version 25 avril 2008 14:26, par Meriguan

      moi j’ai le même problème, j’ai la même version SPIP(1.9.2d) et j’ai seulement mis le pluging d’Accès Restreint, c’est l’unique que j’ai mis et le message c’es aussi :

      "Vous n’avez pas accès à cette page."

      alors ???

      Répondre à ce message

    Retour au début des forums

  • Le plugin Accès Restreint

    20 avril 2008 16:39, par Eric

    Bonjour,

    Je viens de récupérer les plugins Agenda et Accès restreint. Après installation, je remarque que le plugin Accès restreint ne filtre pas les événements de l’agenda comme annoncé (boucle EVENEMENTS).

    J’ai utilisé la boucle suivante :

    <B_lesevts>
    <h2><:agenda:></h2>
    <BOUCLE_lesevts(EVENEMENTS){par date}{statut=publie}{0,5}>
      <div class="evt-item">
        [<div class="evt-date">(#DATE_DEBUT|jour|=={[(#DATE_FIN|jour)]}|?{
          Le [(#DATE_DEBUT|jour)][/(#DATE_DEBUT|mois)][/(#DATE_DEBUT|annee)]
          [(#HORAIRE|=={oui}|?{
          [(#REM) memes heures ?]
          [(#DATE_DEBUT|=={#DATE_FIN}|?{
          [ (#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})]
          [(#REM) pas memes heures ?]
          [(#DATE_DEBUT|!={#DATE_FIN}|?{
          [ (#DATE_DEBUT|heures)]:[(#DATE_DEBUT|minutes)]
          [-(#DATE_FIN|heures)]:[(#DATE_FIN|minutes)],''})]
           ,''})]
           ,
           Du [(#DATE_DEBUT|jour)][/(#DATE_DEBUT|mois)][/(#DATE_DEBUT|annee)]
           [(#HORAIRE|=={oui}|?{
           [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})]  
           au [(#DATE_FIN|jour)][/(#DATE_FIN|mois)][/(#DATE_FIN|annee)]
           [(#HORAIRE|=={oui}|?{
           [(#DATE_FIN|heures)]h[(#DATE_FIN|minutes)],''})]  })</div>]

           [<div class="evt-lieu">Lieu : (#LIEU)</div>]
                   
           <a href="[(#URL_ARTICLE)]">[(#TITRE|supprimer_numero|couper{40})]</a>
                           
           [<div class="description">(#DESCRIPTIF|couper{100})</div>]

      </div>
     </BOUCLE_lesevts>
    </B_lesevts>

    La boucle remonte l’ensemble des événements, y compris ceux correspondants aux articles publiés dans une rubrique dont l’accès est restreint, et ceux pour tous les utilisateurs (anonymes ou autorisés).

    Je remarque également que l’agenda ne tient pas compte des restrictions.

    Quelqu’un a-t-il rencontré le même problème ? Y a-t-il une solution ?

    Répondre à ce message

    • Le plugin Accès Restreint 21 avril 2008 12:45, par Eric

      Oups... Merci de ne pas tenir compte de mon message précédent. Je n’avais pas récupérer la dernière contribution... Le zip mis sur la présente page n’est pas le plus récent. En tout cas, je félicite le(s) concepteur(s) des deux plugins Agenda et Accès restreint. Cordialement

      Répondre à ce message

    Retour au début des forums

  • Le plugin Accès Restreint

    26 février 2008 14:45

    Bonjour,

    j’ai installé ce plugin depuis plusieurs mois, il fonctionne très bien sur une 1.8. En revanche, une question concerne les documents attachés : Tous les documents (pdf, rtf, jpg, etc...) sont mis dans le même répertoire, que l’article soit en restreint ou pas. Du coup des pièces jointes voulues en accès restreint se retrouve aussi référencées dans google ou autre, et accessible directement. Peut-on imaginer des répertoires ’bis’, protégés pour l’accès restreint ?

    Répondre à ce message

    • Le plugin Accès Restreint 19 avril 2008 15:24, par Madrilene

      Bonjour je suis dans uns situation identique ou les images ne doivent pas etre "consultables" par un internaute non identifié et loggué ?. Y -a-il une solution ? Merci

      Répondre à ce message

      • Le plugin Accès Restreint 19 avril 2008 18:12, par cy_altern

        ça serait bien que vous lisiez les post de ce forum avant de poser des questions auxquelles on a déja répondu...
        Voir http://www.spip-contrib.net/Le-plug...

        Répondre à ce message

        • Le plugin Accès Restreint 20 avril 2008 10:05, par jil quillevere

          bonjour, et excusez-moi si le pb ci-dessous a déjà été posé (je n’en trouve pas trace sur les posts) : j’utilise SPIP 1.9.2d et le plugin accès restreint 1.9. j’ai créé 21 zones d’accès restreint, vu apparaître un affichage de ces zones par 10 ( 1 /11 /21) Lorsque je veux voir les zones de 11 à 20, seules les 10 premières s’affichent, idem pour la 21 ème, idem par l’icône + . L’appel des pages se fait comme ci-dessous : (de 1 à 10) http://monsite.eu/ecrire/ ?exec=acces_restreint (de 10 à 20) http://monsite.eu/ecrire/ ?exec=acces_restreint&debut=10#a1 ( de 20 à 30) http://monsite.eu/ecrire/ ?exec=acces_restreint&debut=20#a1 ( la totalité par +) http://monsite.eu/ecrire/ ?exec=acces_restreint&debut=-1#a1

          mais seules les 10 premières s’affichent

          et donc plus d’accès en modification sur les zones au-delà de 10 Merci de me donner une piste cordialement

          Répondre à ce message

    • Le plugin Accès Restreint 20 avril 2008 11:08, par jil quillevere

      je ne sais pas si ceci résoudra totalement votre problème mais j’avais aussi ce souci ( accessibilité du répertoire IMG , stockage des fichiers attachés ou liés par type de format et non par thématique comme je le souhaitais et d’autre part non accès depuis l’espace de publication (rédaction d’article) via le plugin FCKeditor à un autre répertoire de stockage que celui d’IMG) et je l’ai partiellement "résolu" (sans toutefois avoir exploré toutes les failles que cela pose sans doute) de la manière suivante : installation de DocManager (dmanager_3.0b d’AlternC : http://www.dmanager.org/ ) dans le répertoire IMG et "protection" de chaque répertoire de "Files" par un fichier de redirection vers l’URL de login . c’est un peu bourrin et j’ai bien conscience que cela ne règle pas complètement le problème posé mais c’est peut-être une piste à explorer : si cela ne règle pas la sécurité , cela apporte un confort pour le stockage organisé des ressources à lier aux articles.. je suis preneur de tout test complémentaire là dessus cordialement

      Répondre à ce message

    Retour au début des forums

  • problème espace privé

    15 avril 2008 16:05, par ouiskas

    Bonjour,

    Ça fait quelques temps que je me prends la tête sur ce plugin (qui me semble très bien au dire de la communauté !) mais là je bloque...

    voilà mon souci : je fais un site où se trouve des pages de membres prédéfinies : le nom du membre correspond à une rubrique et ses données à des articles. Jusque là tout va bien... Mon problème est le suivant comment permettre au membre de modifier leurs articles et de ne pas pouvoir en créer d’autres ?

    D’après mon raisonement, j’ai procédé comme suit : j’ai créée une zone restreinte dans l’espace privé et donné à un rédacteur cette zone restreinte. sauf que au moment ou ce dernier se connecte (via l’interface de l’espace privé) et ben il voit toute la structure du site et pas juste sa zone restreinte !!! je ne comprends pas pourquoi !!! alors j’ai tenté en le mettant en visiteur mais encore moins puisque plus de possibilité de connexion...

    en fait normalement je programme en php/mysql mais au vu des possibilité de spip et de rapidité d’execution ça me semble bien ! mais là je sèche... quelqu’un peut il m’aidé ?!? SVP ! peut être ce n’est pas la solution à prendre... mais alors peut on faire des formulaires qui permettent de modifier telle ou telle page sans passer par l’interface privée ?

    je craque ! merci pour votre aide précieuse !

    précision spip 1.9.2c

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Bravo pour le plugin que j’utilise depuis plus d’un an.

    Je viens de remarquer qu’un document pdf attaché à un article en zone restreinte est accessible à tous si Google l’a indexé, mais pas l’article lui-même.

    A la création de mon site, j’ai transmis un fichier Google SiteMap pour référencer correctement mon site, sans exclure les rubriques en accès restreint . Est ce lié ?

    Merci de vos réponses

    Répondre à ce message

    • ce comportement est tout à fait normal (et absolument pas lié à l’utilisation de google site map) : le plugin ne restreint que l’accès aux articles/rubriques puisqu’il filtre les éléments affichés à partir de la base de données, mais en aucun cas il ne limite l’accès aux documents.
      Dans ton cas, le document lié à l’article restreint est placé dans le même répertoire que tous les autres documents donc accessible comme ces derniers si tu appelle son URL (.../IMG/pdf/nom_du_fichier.pdf).

      Pour ce qui est de la protection de l’accès aux documents, ni ce plugin ni le plugin accès restreint par groupes n’offrent de solution intégrée.
      Tu trouvera une contrib traitant de ce problème dans cet article : http://www.spip-contrib.net/Protege... mais il te faudra un faire un minimum de code pour qu’elle soit compatible avec les autorisations/restrictions définies par le plugin accès restreint...
      La zone est ouverte à tous (svn ://zone.spip.org/spip-zone/_plugins_/_stable_/acces_restreint), on attend donc cette amélioration du plugin avec impatience !

      Répondre à ce message

    Retour au début des forums

  • Le plugin Accès Restreint

    6 avril 2008 22:21, par laventin85

    bonjour à tous,

    Je souhaiterai faire un site web, et on m’a conseiller de le faire avec spip. De plus, je souhaiterai restreindre l’accès au public et avoir des rubriques non vues du public.j’utilise donc le plugin accès restreint, qui fonctionne parfaitement bien, car les rubriques privées n’apparaissent pas lorsque je suis pas loguer dans l’espace privée. Mais je n’arrive pas à faire apparaître les noisettes de connexion ou de déconnexion dans ma page d’accueil pour les visiteurs, même en suivant les instructions de ce tutoriel. Je dois sûrement mal m’y prendre, dans quel(s) fichier(s) dois-je ajouter les lignes de code. Et dois les ajouter en mode graphique ou dans le code HTML, et a quel emplacement.

    Configuration : spip 1.9.2d serveur web et SQL free Squelette d’origine

    Merci d’avance

    Répondre à ce message

    Retour au début des forums

  • Le plugin Accès Restreint

    27 mars 2008 23:36, par Yannick

    Bonjour,

    Si j’active l’"accès restreint à une zone dans l’espace privé", il m’est impossible de créer un visiteur à partir du back-office. quelqu’un aurait-il une solution ?

    Merci d’avance Yannick

    Répondre à ce message

    Retour au début des forums

  • Erreur installation

    25 mars 2008 22:43, par JuL

    Bonsoir j’essai d’installer le plugins sous SPIP 192d, mais j’ai cette erreur dans l’interface des plugins ...

    « Fichier absent : ../plugins/acces_restreint_1_9/inc/acces_restreint.php »

    Bon il est vrai que je n’ai pas mal de plugins activé ..

    #cfg : moteur de configuration

    # le pluginCrayons

    # Formulaires&Tables (SPIP 1.9.1+)

    #r le pluginEscoitar Gis Plugin

    # pluginGoogleMap Api

    # le plugin Inscription2

    #r le pluginTableDATA

    Avez vous une info ?

    Merci

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Je suis sous Spip 1.9.2d avec plugin Beespip. Après installation de Accès restreint V2 :

    J’ai l’erreur suivante :

    Fatal error : Call to undefined function AccesRestreint_evenements_accessibles_where() in /home/pierre/DEVELOP/htdocs/xampp/develop/ARIEDA_1.9.2d.bee.353/ecrire /public/composer.php(48) : eval()’d code on line 13

    Est-ce qu’il y a un correctif à appliquer ?

    Je n’ai toujours pas la solution pour le menu dont les rubriques restreintes ne s’affichent pas même pour ceux qui y sont autorisées (ma question précédente)

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Mon site est sous Beespip et j’ai installé acces_restreint 2.0

    Je n’arrive pas à afficher dans le menu une rubrique qui est en accès restreint.

    Mon architecture

    J’ai créé la Zone Educ avec restriction sur l’accès public qui contient 1 sous-rubrique Educ. (La sous-rubrique Educ appartient à la rubrique-secteur Salarié qui elle n’est pas en accès restreint.

    Il y a 3 utilisateurs autorisés pour la Zone Educ dont Educ1 en tant que rédactreur Educ1. 1 article ART1 a été créé dans la ss-rubrique Educ et validé.

    Quand je suis connecté en tant que Educ1, je vois à partir de la partie privé l’article ART1 sans pouvoir le modifier.(je n’en suis pas l’auteur)

    Quand je vais sous la partie publique, la rubrique Salriés/Educ n’apparait pas au niveau du menu. Les rubriques sans accès-restreint apparaissent.

    Je joins ci-dessous le code du menu. Y a-t-il une modif à faire pour faire afficher la sous-rubrique ?

    Merci de votre aide

    <?php
    if (($auteur_session) || (#CONFIG{spipgen_intranet}=='non')) {
    ?>
    [(#CONFIGbeespip_pos_date|==’menug’| ?’ ’,’’)

    inc_beespip_date}{lang}>
    ]

    [(#REM) Formulaire de recherche ] [(#CONFIGbeespip_pos_recherche|==’haut’| ?’ ’,’’)

    (#FORMULAIRE_RECHERCHE)
    ]

    [(#CONFIGspipgen_menudeplie|==’oui’| ?’ ’,’’)

    ]

    <?php
    if(floor(phpversion()) < 4)    {
        
    // La version de PHP est inférieure à 4,
        // la fonction in_array n'existe donc pas
        
    function in_array($member$array)
        {
            
    reset($array);
            while (list(
    $k$v) = each($array)) {
                if (
    $v == $member) return true;
            }
            return 
    false;
        }
    }

    // récupération de la hiérarchie courante
    $hierarchie = array();
    <
    B_articleencours>
      <
    BOUCLE_articleencours(ARTICLES) {id_article}{lang}>
        <
    BOUCLE_hierarchie(HIERARCHIE){id_article}>
          
    $hierarchie[] = #ID_RUBRIQUE;
        
    </BOUCLE_hierarchie>
        
    $hierarchie[] = #ID_RUBRIQUE;
        
    $actuelle #ID_RUBRIQUE;
      
    </BOUCLE_articleencours>
    </
    B_articleencours>

      <
    BOUCLE_principale2(RUBRIQUES){id_rubrique}{lang}>
        <
    BOUCLE_hierarchie2(HIERARCHIE){id_rubrique}>
          
    $hierarchie[] = #ID_RUBRIQUE;
        
    </BOUCLE_hierarchie2>
        
    $hierarchie[] = #ID_RUBRIQUE;
        
    $actuelle #ID_RUBRIQUE;
      
    </BOUCLE_principale2>

    <
    //B_articleencours>

    <BOUCLE_rubblog(RUBRIQUES){titre_mot=menu_deplie}{lang}>
          
    $hierarchie[] = #ID_RUBRIQUE;
    </BOUCLE_rubblog>

    // inclusion du script de gestion des layers de SPIP
    $flag_ecrire false;
    include 
    '#CHEMIN{beespip_inc_layer.php}';
    ?>

    <script type="text/javascript" src="#CHEMIN{beespip_layer.js}"> </script>

    [(#REM) Exclusion des rubriques et articles ayant le mot clé "exclu" ]

    <?php $idrub #ID_RUBRIQUE; ?> <?php ${'nb'.$idrub} = #TOTAL_BOUCLE; ?>

    <?php
            
    if (in_array(#ID_RUBRIQUE, $hierarchie)) {
              
    echo bouton_block_visible2('rub#ID_RUBRIQUE');
            } else {
              echo 
    bouton_block_invisible2('rub#ID_RUBRIQUE');
            }
          
    ?>
    <?php echo (#ID_RUBRIQUE !== $actuelle ? '' : (in_array(#ID_RUBRIQUE, $hierarchie) ? '<span style="color: #000000;">' : '')); ?> [(#TITRE|supprimer_numero)] <?php echo (#ID_RUBRIQUE !== $actuelle ? '' : (in_array(#ID_RUBRIQUE, $hierarchie) ? '</span>' : '')); ?>

    <?php
          
    if (in_array(#ID_RUBRIQUE, $hierarchie)) {
            
    echo debut_block_visible2('rub#ID_RUBRIQUE');
          } else {
            echo 
    debut_block_invisible2('rub#ID_RUBRIQUE');
          }
        
    ?>

    [(#CONFIGarticle_menu|==’oui’| ?’ ’,’’)

    ] [(#CONFIGarticle_menu|==’oui’| ?’ ’,’’)] /B_trirubrique> /B_rubriquesansarticle>

    <?php
            
    if (in_array(#ID_RUBRIQUE, $hierarchie)) {
              
    echo bouton_block_visible2('rub#ID_RUBRIQUE');
            } else {
              echo 
    bouton_block_invisible2('rub#ID_RUBRIQUE');
            }
          
    ?>
    <?php echo (#ID_RUBRIQUE !== $actuelle ? '' : (in_array(#ID_RUBRIQUE, $hierarchie) ? '<span style="color: #000000;">' : '')); ?> [(#TITRE|supprimer_numero)] <?php echo (#ID_RUBRIQUE !== $actuelle ? '' : (in_array(#ID_RUBRIQUE, $hierarchie) ? '</span>' : '')); ?>

    <?php
            
    if (in_array(#ID_RUBRIQUE, $hierarchie)) {
              
    echo debut_block_visible2('rub#ID_RUBRIQUE');
            } else {
              echo 
    debut_block_invisible2('rub#ID_RUBRIQUE');
            }
          
    ?>

    [(#CONFIGarticle_menu|==’oui’| ?’ ’,’’)

    ] [(#CONFIGarticle_menu|==’oui’| ?’ ’,’’)] /B_trirubrique2> /B_sous_rubriquesansarticle>

    <?php
            
    echo fin_block2('rub#ID_RUBRIQUE');
          
    ?>

    <?php
          
    echo fin_block2('rub#ID_RUBRIQUE');
        
    ?>


    <?
    }
    ?>

    Répondre à ce message

    Retour au début des forums

0 | 25 | 50 | 75 | 100 | 125 | 150 | 175 | 200 |...