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

  • 3

    Pour info, les dernières versions de ce plugin ont disparu de la zone de téléchargement, reste juste la version pour Spip 1.9
    (il en est de même pour d’autres plugins)

    Répondre à ce message

  • 1

    Bonjour,
    Y a-t-il un moyen de court-circuiter le formulaire LOGIN_PUBLIC en passant login/pass dans l’url ? L’idée est de bien avoir des zones restreintes, mais de pouvoir accéder au contenu par un lien direct.

    • Bonjour

      J’ai eu la même problème et la solution semble être ici :
      https://contrib.spip.net/Le-plugin-Acces-Restreint#XI-Astuce-pour-recuperer-un-flux-RSS-personnalise

      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.

      Par exemple, voici une URL d’identification

      • sur un site www.noisette.net
      • avec compte SPIP qui a comme login : bob et comme mot de passe motdepassedebob
      • pour obtenir la page backend

      L’URL à renseigner est donc :

      http://bob:motdepassedebob@www.noisette.net/spip.php?action=cookie&essai_auth_http=oui&url=spip.php?page=backend

    Répondre à ce message

  • 13

    Bonsoir
    Le plugin est il compatible avec Spip 3.2.1 ? Je le pensais en voyant la compatibilité affichée avec 3.2, mais ça ne semble pas le cas vu les problèmes rencontrés sur le site après activation.
    Merci d’avance pour votre réponse.

    • Bonsoir
      Le plugin est il compatible avec Spip 3.2.1 ? Je le pensais en voyant la compatibilité affichée avec 3.2, mais ça ne semble pas le cas vu les problèmes rencontrés sur le site après activation.
      Merci d’avance pour votre réponse.

      Je complète mon premier message : dès que j’active le plugin, je me retrouve avec un affichage un peu style « debug » (Cf. copie d’écran jointe). Je suis hébergé chez 1&1, version Spip 3.2.1 et PHP 7.2.

    • Je continue de me répondre pour compléter le problème : j’ai bien vidé les caches à l’activation comme préconisé. Je constate des erreurs dans les squelettes qui mentionnent l’absence d’une table : Table ’db769841660.spip_zones_liens’ doesn’t exist
      J’ai regardé dans la base de données, effectivement cette table spip_zones_liens n’existe pas, elle ne semble pas avoir été créée lors de l’activation du plugin si elle est liée à lui.

    • c’est un problème.

      Mais après faut savoir que spip n’est pas compatible php 7.2 (pas la 3.2 en tous cas). Ce qui pourrait expliquer des problèmes lors de la création de la table.

    • Bonjour, Merci pour votre réponse rapide. A priori, ce n’est pas lié à la version de PHP : je suis revenu en 7.0 puis 5.6 et le problème est toujours le même. Est-ce que c’est lié au fait que la version 3.15.14 du plugin est une version de test. Il n’y a peu d’autres retours comme le mien ?
      Désolé d’insister, mais ce plugin semble vraiment intéressant pour restreindre les accès et il n’y a pas d’autre alternative sur les dernières versions de spip.
      Merci !

    • non, le plugin est en test depuis un bout de temps.

      Il faudrait voir endésinstatllanet (je dis bien Desinstaller, pas désacticer) le plugin, puis en réinstallant.

      Chez moi il marche bien.

    • Bonjour Maïeul, merci pour vos réponses. Le problème était que la partie « debug » qui s’affichait recouvrait entièrement la partie haute de l’écran et m’empêchait donc de désinstaller le plugin proprement.
      Je m’en suis sorti (je donne l’info au cas où d’autres auraient ce problème) en recréant la table spip_zone_liens qui manquait directement via PHpMyAdmin.
      Cordialement,
      MB

    • Bonjour MB,
      j’ai le même problème et je sais créer une table en PhpMyAdmin , mais que mettre dans « spip_zone_liens » ?
      Car j’ai essayé avec la V3.8 en modifiant 3.0 par 3.2 en compatibilité, mais même problème, j’étais en php 7.2, je suis passé en 7.0, mais pas de changement.
      Et comme j’avais mal désinstallé, il me bloquait mes vignettes en agrandissement !

      Par avance, merci

    • Voilà ! J’ai le même problème chez mon hébergeur (OVH) lorsque j’active Accès Restreint, je vois apparaître les rectangles bleus de Debug, comme MB. (Cf. le message que je viens de poster).
      Je vais donc tenter à la main la création de la table spip_zone_liens et je vais réinstaller le plugin.
      Merci à MB d’avoir laissé l’info.
      Le plus surprenant, c’est qu’en local (Ubuntu+Apache+PHP 5.6) tout s’est installé sans problème.

    • Et bien, ce fut rude, mais ça fonctionne. En fait, il faut créer les deux tables spip_zones et spip_zones_liens (attention, il y a un « s » à zones)
      Comme le plugin fonctionnait en local, en fait, j’ai exporté mes deux tables, et je les ai importées dans ma base de données distante.
      J’ai activé le plugin Accès Restreint, et cette fois tout fonctionne.

    • Bonjour elm31rugby,

      La procédure pour activer le plugin est clair avec vos infos.
      Mais, à part faire une installation en local, où peut-on trouver la structure des 2 tables à créer ?
      Sinon pouvez-vous les fournir ici ?

      D’avance merci.

    • Bonjour, désolé pour le retard. Voici deux copies d’écran des deux tables. Bonne journée !

    • et voici la deuxième

    • Merci bcp. Top !...

    Répondre à ce message

  • 1

    Bonjour, j’ai exactement le même problème , sur les pdfs et sur les fichiers html.
    Ces documents sont systématiquement téléchargés dans le répertoire téléchargements/download.
    Avec firefox, il faut toujours indiquer avec quel outil on veut ouvrir le fichier,
    Avec chrome ils continuent à s’ouvrir dans le navigateur.
    Je préférerai que les fichiers restent dans le répertoire des fichiers temporaires et s’ouvre directement dans le navigateur afin d’avoir une navigation fluide.
    C’est un vrai problème.
    Très bon plugin à part ça...

    • Je pense avoir résolu le problème : dans le fichier api_docrestreint.php (répertoire action), remplacer :

      			// ce content-type est necessaire pour eviter des corruptions de zip dans ie6
      			header('Content-Type: application/octet-stream');
      
      			header("Content-Disposition: attachment; filename=\"$f\";");
      			header('Content-Transfer-Encoding: binary');

      par :

      			if (($doc['extension'] == 'pdf') || ($doc['extension'] == 'html')) {
      				header("Content-Disposition: inline; filename=\"$f\";");
      				header('Cache-Control: private, max-age=0, must-revalidate');	
      			} else {			
      			
      			
      			// ce content-type est necessaire pour eviter des corruptions de zip dans ie6
      			header('Content-Type: application/octet-stream');
      
      			header("Content-Disposition: attachment; filename=\"$f\";");
      			header('Content-Transfer-Encoding: binary');
      
      			}

    Répondre à ce message

  • 6
    Etienne

    Bonjour,
    Petit problème de mon côté : cases cochées « interdire la lecture » et « créer les .htpasswd », tous les accès aux documents du site arrivent à un message sur page blanche « Not Found ; The requested URL was not found on this server. » Ceci qu’on soit connecté ou non, et même pour les documents qui ne sont pas attachés à un article en accès restreint.
    Et case cochée « autoriser la lecture », tous les documents du site sont accessibles par leur url, en accès restreint ou non, là aussi qu’on soit connecté ou non.
    Par ailleurs, je n’ai pas de message « spip » qui dise « ce document est en accès restreint ».
    Est-ce que tout ça est lié aux capacités de mon hébergement, comme dit à l’avant dernier paragraphe du chapitre V ?

    merci,

    • Normalement non.
      Pas besoin de gérer le .htpasswd pour protéger les docs en fonction des zones. c’est une autre option (dont je n’ai pas saisie le sens)

      Mais normalement :

      // config/mes_options.php
      define('ACCES_RESTREINT_FORCE_AUTORISE',true);

      +
      dans
       ?exec=configurer_accesrestreint
      [x] Interdire la lectures des documents.

      doit suffire

      ensuite tu aura des liens la forme
      docrestreint.api/nn/hash/xxxxxxx.xxx

    • Etienne

      Désolé je n’ai pas trouvé dans quel fichier insérer le code que tu me donnes, ni à quel endroit du fichier ...

    • dans config/mes_options.php

      Par défaut, SPIP ne fourni pas ce fichier. Il est donc à créer dans le répertoire config/ .
      mes_options.php étant un fichier PHP, il doit commencer par <?php (soyez extrêmement vigilant : il ne doit y avoir aucun caractère ni espace ni ligne vierge avant la balise ouvrante <?php).

      Documentation ici https://www.spip.net/fr_article4654.html

    • Etienne

      Ok merci, je cherchais un fichier dans le plugin.
      Bon, mais la création de config/mes_options.php avec ton code dedans ne change rien au problème.
      Merci quand même de t’être penché sur la question.

    • tu as vidé le cache ?
      je confirme que ça fonctionne.

      Mais il y a un bug, relevé recemment par nicod
      si les documents sont liés à d’autre objet que des articles ça peut poser problème

      J’ai compris le problème, il y a effectivement un bug dans certains cas.

      Quand on a activé la constante, une requête est lancée pour vérifier si
      le document est attaché à un objet lui même attaché à une rubrique
      restreinte :
      https://git.spip.net/spip-contrib-extensions/acces_restreint/src/tag/v4.0.0/inc/accesrestreint_autoriser.php#L269

      Exemple de requête générée :
      http://spip.pastebin.fr/62681

      Si le document a uniquement un lien vers un article ou une rubrique, ça
      marche comme prévu : la requête ne renvoie rien et un visiteur non
      connecté ne voit pas le doc.

      Mais si le document a un lien vers un autre objet (un auteur par
      exemple) dans spip_documents_liens, la requête renvoie bien
      l’id_document, et l’autorisation est donc donnée, ce qui n’est pas du
      tout ce qu’on veut.

      Cela vient des deux clauses OR ((zzzd.objet NOT IN
      (’rubrique’,’article’,’breve’,’forum’)), qui remontent donc un
      enregistrement s’il y a un lien vers un auteur, une patate ou autre.

      C’est généré ici :
      https://git.spip.net/spip-contrib-extensions/acces_restreint/src/tag/v4.0.0/public/accesrestreint.php#L256

      Cedric, si tu as suivi mon raisonnement (que je peux reproduire
      maintenant), qu’en penses tu ?

    • Etienne

      Après vérification mes documents ne sont rattachés à aucun autre objet que l’article. Je vide bien le cache systématiquement.
      Je ne comprends pas d’où ça vient.
      Bon, c’est pas non plus très très grave. J’aurais préféré que les documents en accès restreints ne soient pas accessibles par leur url aux non connectés, mais ce ne sont pas non plus des documents secret défense.

    Répondre à ce message

  • 2

    Activation impossible
    Bonjour à tous, j’essaie d’activer sur mon site hébergé Accès restreint : impossible. L’espace privé « part en vrille », et m’affiche plein de rectangles bleus de debug.
    Lorsque je supprime par FTP le plugin, tout redevient normal.
    J’ai testé plusieurs versions de Accès restreint, même résultat.
    J’ai désactivé tous les plugins puis j’ai activé Accès restreint : même résultat
    Je suis sur Spip 3.2.7, php 5.6 chez OVH.
    Le pire, c’est qu’en local, avec la même config, tout fonctionne.
    Une idée ?
    Merci,
    Eric LM

    • [Résolu] réponse dans le message posté par MB. Il faut créer à la main les deux tables spip_zones et spip_zones_liens, puis activer le plugin.

    • ilovespip

      Bonjour
      J’ai activé l’acces restreint à la racine du site pour le site public.
      J’ai encore quelques éléments de la home qui s’affichent.
      Tous mes caches SPIP et navigateur ont été vidés pleins de fois.
      Que dois-je faire pour tout bloquer l’affichage sur la home ?
      Merci beaucoup

    Répondre à ce message

  • Bonjour, impossible d’accéder aux documents dans la médiathèque : « Fichier api_docrestreint introuvable ». J’ai supprimé le plugin accès restreint.

    Répondre à ce message

  • Bonjour ! Petit souci avec accès restreint (spip 3.2 - accès restreint 3.15.18) : j’ai 2 zones, l’une réservée à x personnes (par ex. une liste d’élèves), l’autre à x+n personnes (par exemple les élèves et les profs). Les deux zones affectée aux « profs » fonctionnent (affichage des deux rubriques), mais pas celle affectée seulement aux « élèves » (affichage d’aucune des deux rubriques). J’ai vidé le cache, désactivé, désinstallé, réinstallé à tour de bras, rien n’y fait ! Est-ce que je fais une erreur de logique ? Dois-je installer une autre version du plugin ?
    Merci à l’avance de la réponse ! Et merci pour ce plugin ô combien précieux !

    Répondre à ce message

  • 5

    Bonjour,
    Je rencontre un problème fonctionnel à l’utilisation de ce plugin et « accès restreint ».
    J’ai deux rubriques : rubrique A et rubrique B au même niveau d’arborescence.
    Rubrique A est à accès restreint
    Rubrique B contient des articles de la rubrique A (principe de polyhierarchie)

    Lorsque l’utilisateur n’a pas les droits d’accès à la rubrique A, les articles dans la rubrique B ne sont pas affichés alors qu’associés à rubrique B.

    Avez vous déjà rencontrés le problème ? Y a t-il une solution ou un paramétrage ?
    Merci à vous.

    • Désolé, avec les plugins (vous l’aurez compris) accès restreint et polyhierarchie.

    • petit up svp

    • Bonjour,

      Je regarderais le paragraphe VI. Paramétrage plus fin des restrictions pour ton problème.

      Cdt.

    • Bonjour,

      J’aimerais préciser :
      Lorsque l’utilisateur n’a pas les droits d’accès à la rubrique A, les articles de la rubrique A contenus dans la rubrique B ne sont pas affichés alors qu’associés à rubrique B.

      C’est normal, c’est le principe de l’accès restreint, les articles de la rubrique A ne sont pas accessibles à cet utilisateurs, quelque soit la rubrique où ils sont rattaché par poly hiérarchie.

      Cela n’aurait pas de sens de lui donner un accès à ces articles par simple ajout à une autre rubriques, c-à-d simplement en lui proposant de consulter une autre rubrique ! Soit ils sont accessible, soit ils ne le sont pas, il n’y a pas d’entre deux !

      Cordialement

      FDG

    • Bonjour et merci pour vos réponses,

      « Je regarderais le paragraphe VI. Paramétrage plus fin des restrictions pour ton problème. » cela ne débloque pas la situation mais merci d’y avoir réfléchi.

      @François Daniel Giezendanner , le principe de polyhierarchie est une multi publication de contenu. Donc les articles hiérarchisés n’appartiennent pas plus à une rubrique ou à une autre. Il est dommage que le contexte de consultation, donc la rubrique en cours, ne puisse être considéré.

      Les deux plugins m’apparaissent comme incompatibles ou je me trompe ?

      Merci à vous.

    Répondre à ce message

  • 4

    Différence entre Visiteur et administrateur ?

    Sur un SPIP 3.2.1 et plugin accès restreint à jour, dans une rubrique protégée, avec l’interdiction d’accès aux documents, voici ce qu’il se passe :

    - pour un administrateur ou rédacteur : URL_DOCUMENT renvoie bien l’url vers le doc, avec ?nn/hash

    - pour un visiteur, URL_DOCUMENT renvoie une url propre composée des mots du titre du document, qui est donc l’URL enregistré pour ce document... mais qui donne une page blanche...

    Une idée pour que cela marche aussi pour les visiteurs ?

    Julien

    • En fait, en modifiant la fonction urls_generer_url_document() (on supprime le test avec autoriser(’voir’, ’document’, $id)), cela marche de nouveau pour les visiteurs identifiés.

      Le problème serait donc plus du coté de la fonction autoriser() de SPIP, qui n’autorise pas les visiteurs identifier à voir le document.

      Si vous avez des pistes...

    • Problème qui paraît similaire en utilisant un squelette (via recuperer_fond) qui génère un json avec des informations sur le document.
      Malgré un

      {tout_voir}

      dans ce dernier, l’url du document est erroné.

      En ajoutant un autoriser_exception voir, plus de soucis.

      {tout_voir}

      devrait éviter de passer par l’autorisation dans urls_generer_url_document_dist d’accès restreint

    • Bonjour,
      Comment court-circuite t on urls_generer_url_document_dist ?
      Où met on l’autorisation autoriser_exception ? Via un pipeline, si oui lequel ? Car je n’y arrive pas.
      J’ai un document d’un article restreint à afficher en public : l’image s’affiche bien mais l’URL ne s’affiche correctement que si le document qui est associé à un article restreint et un article normal.
      Merci
      DjackO

    • J’ai trouvé : il faut copier le dossier urls et generer_url_document.php dans son plugin. Puis ajouter la condition autoriser_exception dans generer_url_document.ph, et cela fonctionne.

    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