SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

251 Plugins, 182 contribs sur SPIP-Zone, 259 visiteurs en ce moment

Accueil du site > Auteurs, authentification et autorisations > Accès restreint > Accès restreint > Acces Restreint 3.0

Acces Restreint 3.0

11 décembre 2008 – par Cedric Morin – 235 commentaires

63 votes

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 inclus les sous rubriques, les articles, les liens ...) ne seront pas visibles 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 autes, 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 sont modifiés. En particulier, en cas de désactivation, si le cache n’est pas vidé, des erreurs vont apparaîtres 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é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.

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 un 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.

Retour en haut de la page

Vos commentaires

  • Le 21 mars à 11:14, par has

    Bonjour,

    J’aimerais améliorer le plugins accès restreint, au lieu d’authentifier les utilisateurs de la base spip, j’aimerai que l’authentification se fait via une autre base de données avec un autre cryptage du mot de passe ????
    Quelqu’un peux m’aider

    Merci

    Répondre à ce message

  • Le 10 mars à 15:11, par Fabrice

    Bonjour,

    Désolé de vous déranger mais je ne m’en sors pas. Après des jours de recherche sur Spip-Contrib et Google et l’installation de squelettes différents, je n’ai pas de solution.

    Comme les auteurs ici de messages du 11 janvier au 27 janvier j’ai toutes sortes d’erreurs sql (Différentes en fonctions des squelettes essayés... ?) dès que Accès Restreint 3 est activé (Cache vidé, Tmp supprimé,... j’ai tout essayé et lu sur de nombreux forums tout ce qui concernait ces erreurs sql... sans comprendre comment m’en sortir.

    La version de mysql est 5.0.51a. le site est hébergée chez OVH.

    Merci d’avance pour votre éclairage.
    Cordialement,
    Fabrice

    Répondre à ce message

  • Le 1er mars à 20:40, par Perline

    Une curiosité : les visiteurs (statut visiteur) qui arrivent sur la page restreinte voient "erreur 404’’ sans possibilité de login, il doivent "se connecter" pour voir apparaître le formulaire, et accéder à la page.

    Est-ce normal ? Est-ce une sécurité ?

    Merci

    • Le 1er mars à 21:00, par Maïeul

      les pages 404 sont produites par SPIP quand la page calculée par le squelette ne renvoie rien. Comme les squelettes par défaut on une boucle englobante, il est logique que cela ne renvoie rien en cas de visite sur une zone restreint.

      Ceci dit, c’est contournable :

      <BOUCLE_principal(ARTICLES){id_article}>
      ....
      </BOUCLE_principal>
      <BOUCLE_test(ARTICLES){id_article}{tout_voir}>
      ....#FORMULAIRE_LOGIN_PUBLIC....
      </BOUCLE_test>
      <//B_principal>
    • Le 1er mars à 23:33, par Perline

      Je n’arrive pas au résultat par le biais de la partie alternative de la boucle ARTICLES, ni avec une boucle en utilisant le critère tout_voir, pas plus qu’avec le filtre AccesRestreint_article_restreint.

    • Le 1er mars à 23:46, par Maïeul

      étonnant ... ceci dit je viens de m’apercevoir que je me suis trompé. C’est #LOGIN_PUBLIC et pas #FORMULAIRE_LOGIN_PUBLIC

      tu n’obteins rien dans la parte alternatives ?

    • Le 1er mars à 23:55, par Perline

      J’ai essayé avec un peu tout, login_public aussi, il y a me semble-t-il une vague apparition fugace d’un bout de formulaire, mais pas sûre.
      J’ai essayé pas mal de combinaisons dans la partie alternatives, à partir des modèles donnés - boucle ou filtres - mais absolument rien.
      Ma base est un Zpip, donc quelque chose de stable.
      Dans le pied de page il y a le login et si on l’utilise dans la page "404" en réalité une page d’accès restreint, ça marche bien.
      C’est l’intégration dans la partie alternative que je n’arrive pas à déclencher.
      Pourtant rien n’a l’air bien sorcier.
      Vraiment curieux.
      Merci.

    • Le 2 mars à 00:13, par Maïeul

      "Ma base est un Zpip".

      A see ...

      je suppose que tu a fais les test dans contenu/article.html ? le pb, c’est que le squelette "père" article.html à déja une boucle.

      <BOUCLE_principale_article(ARTICLES){id_article}>
      <INCLURE{fond=structure}{env}{id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE}}{type=article}{composition} />
      </BOUCLE_principale_article>

      du coup, bof ca marche pas. ..

      la soluce est de surcharger article.html à la racine.

      avec un truc du genre :

      <BOUCLE_principale_article(ARTICLES){id_article}>
      <INCLURE{fond=structure}{env}{id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE}}{type=article}{composition} />
      </BOUCLE_principale_article>
      <BOUCLE_article_present(ARTICLES){id_article}{tout_voir}>
      <INCLURE{fond=page}{env}{page=login}>
      </BOUCLE_article_present>
      <//B_principale_article>

      pas testé, mais je pense à priori que c’est bon.

    • Le 5 mars à 11:50, par Perline

      Après tests, un truc qui marche c’est, dans article.html :

    • Le 8 mars à 11:09, par Ogmios

      Bonjour,

      Je souhaiterais afficher uniquement les rubriques restreintes.
      J’ai essayé avec

      [(#PLUGIN AccesRestreint |oui)
      [(#ID_RUBRIQUE|AccesRestreint_rubrique_restreint|oui)

      Les deux ou juste un seul, j’ai toutes les rubriques qui s’affichent.

      Pouvez-vous m’aider ?

      Merci

    Répondre à ce message

  • Le 24 février à 19:49, par babbibel

    Salut,

    J’utilise Accès restreint 3.0 sur SPIP 2.0.10 et j’ai constaté que les liens vers les messages du forum d’un article appartenant à une rubrique dont l’accès est restreint ne sont pas filtrés.

    J’ai d’abord pensé que c’était à cause du critère plat ou tout mais c’est apparemment pas ça...

    J’espère que la question n’a pas encore été résolu ici et que quelqu’un pourra m’aider...

    Merci d’avance.

    Répondre à ce message

  • Le 24 février à 15:40, par gigi

    Pour ceux qui rencontreraient le problème : si vous voyez deux fois "mot de passe oublié", supprimez

    1. < a href = "#URL_PAGE{spip_pass}" target = "spip_pass" onclick = "javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=330'); return false;" ><: login_motpasseoublie :></ a >

    qui se trouve déjà dans le formulaire appelé par LOGIN_PUBLIC. Ou, si vous voulez que la page appelée s’ouvre dans une pop-up, recopiez le code ci-dessus dans login public...

    A part ça, tout va, merci du plugin !

    Répondre à ce message

  • Le 22 février à 09:42, par mailou

    Bonjour,

    Je suis en local, j’ai créé une liste de rubriques (avec mot clé "liens") qui apparaissent sur la page d’accueil, tout le site est en accès restreint, si bien que les gens extérieur ne voient qu’un texte qui est écrits dans "DESCRIPTIF_SITE_SPIP", est-il possible que ces rubriques qui fonctionnent avec le mot clé "liens" échappent à cette restriction ?

    Merci

    Répondre à ce message

  • Le 4 février à 15:18, par Eric

    Soit deux configs identiques : SPIP 2.0.10, mêmes plugins, même contenu dans la base,
    Une en local, l’autre en ligne,
    En local acces restreint fonctionne parfaitement
    En ligne, une fois les caches vidés plusieurs problèmes :
    -  sur la page ?exec=zones_edit&id_zone=1 le bloc à gauche pour ajouter des auteurs à la zone n’apparait pas
    -  sur la partie publique, une rafale d’erreurs sql sont indiquées pour des boucles qui fonctionnent très bien quand acces restreint n’est pas activé

    Les différences entre les deux configs :
    En local ça tourne nickel sur un vieux tromblon easyphp 1.8 soit php 4.3.10 et MySQL 3.23.49 (! !)
    En ligne php 5.2.12 et MySQL 5.0.67

    Avez vous déja vu ce genre de problème ?
    Avez vous une idée ( même vague ) de comment en sortir ?

    • Le 12 février à 17:56, par Eric

      C’était un problème sur ma base : résolu !

    Répondre à ce message

  • Le 11 février à 14:29, par naomed

    bonjour,

    Sur ma page sommaire je fais apparaitre une introduction avec une image extraite du texte pour tous les articles y compris ceux qui sont restreints. Pour les visiteurs non logges, l’image n’apparait pas, alors que cela fonctionne pour les logges.

    voici le code utilisé :

    <a href="">[(#TEXTE|extraire_balise{img}||?{[(#TEXTE|extraire_balise{img}|image_reduire{200,200,left})] })]</a>[(#INTRODUCTION|couper{700})]

    je suis en spip 2.0.10 et en local

    quelqu’un aurait il déjà eut ce probleme ?

    Répondre à ce message

  • Le 11 janvier à 21:02, par ?

    Bonjour,

    J’utilise Spip 2.0.10 ( http://mnemosis.univ-paris1.fr ) mais, lorsque je veux activer le plugin accès restreint, différentes erreurs que je n’arrive pas à comprendre s’affichent :

    <BOUCLE_combien>()
    Erreur SQL
    forum.id_rubrique, forum.id_article, forum.id_breve FROM spip_forum AS `forum` WHERE (forum.statut = 'publie') AND (forum.id_article = 21) AND ((0=0 OR (forum.id_article NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1))) OR (forum.id_breve NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1)))
    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 zzza.id_article FROM `mnemosis`.spip_articles as zzza WH
    </BOUCLE_combien>   AIDE        
    2          <BOUCLE_combien>()
    Erreur SQL
    forum.id_rubrique, forum.id_article, forum.id_breve FROM spip_forum AS `forum` WHERE (forum.statut = 'publie') AND (forum.id_article = 51) AND ((0=0 OR (forum.id_article NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1))) OR (forum.id_breve NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1)))
    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 zzza.id_article FROM `mnemosis`.spip_articles as zzza WH
    </BOUCLE_combien>   AIDE        
    3          <BOUCLE_doc>()
    Erreur SQL
    documents.mode, documents.extension, documents.id_document, documents.largeur, documents.hauteur, L1.titre AS type_document, documents.taille, L1.mime_type, documents.titre, documents.descriptif, documents.id_document FROM spip_documents AS `documents` INNER JOIN spip_types_documents AS L1 ON ( L1.extension = documents.extension ) WHERE (documents.taille > 0 OR documents.distant='oui') AND (documents.id_document = 193) AND ((documents.id_document IN ( SELECT zzzd.id_document FROM `mnemosis`.spip_documents_liens as zzzd WHERE (((((zzzd.objet='rubrique' AND 0=0) OR (zzzd.objet='article' AND (zzzd.id_objet NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1)))) OR (zzzd.objet='breve' AND (zzzd.id_objet NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1)))) OR (zzzd.objet='forum' AND (zzzd.id_objet IN ( SELECT zzzf.id_forum FROM `mnemosis`.spip_forum as zzzf WHERE ((0=0 OR (zzzf.id_article NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1))) OR (zzzf.id_breve NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1))))))) OR ((zzzd.objet NOT IN ('rubrique','article','breve','forum')))))) OR (documents.id_document NOT IN ( SELECT zzzd.id_document FROM `mnemosis`.spip_documents_liens as zzzd)))
    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 zzzd.id_document FROM `mnemosis`.spip_documents_liens as
    </BOUCLE_doc>   AIDE        
    4          <BOUCLE_combien>()
    Erreur SQL
    forum.id_rubrique, forum.id_article, forum.id_breve FROM `spipcont`.spip_forum AS `forum` WHERE (forum.statut = 'publie') AND (forum.id_article = 17) AND ((0=0 OR (forum.id_article NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1))) OR (forum.id_breve NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1)))
    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 zzza.id_article FROM `mnemosis`.spip_articles as zzza WH
    </BOUCLE_combien>   AIDE        
    5          <BOUCLE_combien>()
    Erreur SQL
    forum.id_rubrique, forum.id_article, forum.id_breve FROM spip_forum AS `forum` WHERE (forum.statut = 'publie') AND (forum.id_article = 48) AND ((0=0 OR (forum.id_article NOT IN ( SELECT zzza.id_article FROM `mnemosis`.spip_articles as zzza WHERE 0=1))) OR (forum.id_breve NOT IN ( SELECT zzzb.id_breve FROM `mnemosis`.spip_breves as zzzb WHERE 0=1)))
    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 zzza.id_article FROM `mnemosis`.spip_articles as zzza WH
    </BOUCLE_combien>

    J’ai trouvé des messages de plusieurs personnes confrontées à un problème similaire mais aucune façon de le résoudre. Quelqu’un y serait-il parvenu ?
    Je précise que j’ai importé les tables d’un site développé avec spip 1.9 (il avait été victime d’une attaque virale rendant impossible la connexion à l’espace privé).

    Merci à tous !

    • Le 16 janvier à 00:25, par Cedric Morin

      Ce type d’erreur est lié à la version de mySQL. Quelle version utilise-tu ?

    • Le 20 janvier à 12:19, par M.B.

      Bonjour,

      Le site Mnemosis marche avec mMySQL 4.0.24.

      Merci beaucoup pour votre aide,

    • Le 3 février à 11:53, par Eric

      J’ai le même type d’erreur avec MySQL 5.0.67 sur SPIP 2.010

    Répondre à ce message

  • Le 27 janvier à 21:50, par Bernt

    Bonjour,
    Je viens de basculer de la 1.9 vers la 2.010... et je rencontre les mêmes erreurs sql que mentionnées plus bas.
    Je viens d’effectuer une même mise à jour pour un autre de mes sites et je n’ai pas eu ce problème.
    La version de mysql est 5.0.67.
    Merci de m’aider.
    Cordialement,
    BS

    • Le 27 janvier à 23:03, par Bernt

      J’ai fait le test avec une base en local...
      et ça fonctionne.

      J’ai tout désinstallé sur le serveur et réinstallé.
      Sans résultat. _ ???

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ? (optionnel)

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 formulaire accepte les raccourcis SPIP et le code HTML. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Essayez SPIP 2.1-RC

    19 mars – 22 commentaires

    La version Release Candidate de SPIP est sortie de la forge.

  • Squelette Median

    22 juin 2009 – 104 commentaires

    Un squelette généraliste, valide XHTML, et configurable. Sites de démonstration : en es fr

  • Plugin Panoramas 360°

    25 février 2007 – 144 commentaires

    Une solution 100% libre pour faire défiler les panoramas

  • Le Squelette Zpip

    11 novembre 2009 – 140 commentaires

    Zpip est un modèle de squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Il est issu d’une fusion des projets Zesty et SPIP-Zen. Installer Zpip Pour installer Zpip et jouer avec sans plus attendre, il suffit de suivre le guide (...)

  • Zpresse

    19 mars – commentaires

    L’idée c’est de faire un thème minimaliste et sobre que l’on pourrait ensuite personnaliser facilement. Donc trois colonnes, trois couleurs (ou deux tons plus une couleur, plutôt), gris, noir, rouge. Des filets, pour l’instant, d’une part parce que (...)