SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 62 visiteurs en ce moment

Accueil > Auteurs, authentification et autorisations > Authentification (accès protégés) avant SPIP 1.9 > Gestion hiérarchisée des accès restreints

Gestion hiérarchisée des accès restreints

5 novembre 2004 – par Michael Courcy – 25 commentaires

Toutes les versions de cet article : [français] [français]

0 vote

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Pouvoir mettre en accès restreint des rubriques et des articles.


Une mise à jour de cet article pour la version 1.8 de SPIP est disponible ici : MAJ 1.8 de l’article « Gestion hiérachisée des accès restreints »

Que permet de faire cette contrib ?

-  Choisir quelle(s) partie(s) de votre site public sera en accès restreint.

-  Définir les visiteurs qui ont le droit de visiter telle ou telle rubrique et leurs articles associés.

Cette contrib n’utilise que les squelettes et les formulaires de spip, vous n’aurez pas à modifier le noyau, ce qui vous permettra de réactualiser spip sans inquiétude quant au fonctionnement de ce système.

Pourquoi « hiérarchisée » ?

Tout simplement parce que si vous mettez la rubrique « recettes cuisines » en accès restreint, alors ce sont tous ses articles ainsi que toutes ses sous-rubriques avec leurs articles qui sont en accès restreint. Par exemple « plats mijotés » et « entrées chaudes » qui sont des sous-rubriques de « cuisine » seront aussi « par héritage » en accès restreint.

Et si un visiteur se voit octroyé le droit de visiter « cuisine », il pourra visiter également « entrées chaudes » et « plats mijotés ». Mais si il ne lui a été donné que le droit de visiter « plats mijotés », il ne pourra pas accéder à « entrées chaudes » ou à sa rubrique parente « cuisine ».

Installation

Pour travailler sur les mêmes bases je partirai d’une distribution 1.7 toute neuve et je vous demanderai d’en faire autant.

Pour exemple vous pourrez voir ce système en action sur
acces_restreint
Je la laisserai en l’état pour un mois ou deux. Il n’est pas exclu qu’au moment où vous lirez cet article ce lien ne soit plus valide.

Décompressez l’archive zip jointe,

et dans la racine du site installez en écrasant si nécessaire :

-  article-dist.html
-  rubrique-dist.html
-  controle_acces_rubrique.html
-  controle_acces_article.html
-  controle_acces_rubrique.php3
-  controle_acces_article.php3.

Dans « ecrire » installez en écrasant si nécessaire :

-  inc_extra.php3
-  mes_options.php3.

C’est fini, la gestion des accès restreints est opérationnelle.

On verra plus tard comment l’adapter à vos propres squelettes. Mais pour tester avec les mêmes bases on travaille avec la distrib.

Utilisation

Nous allons commencer par créer la rubrique « cuisine »
puis deux sous-rubriques « entrées chaudes » et « plats mijotés ».


Ignorez pour l’instant la partie située à la fin du formulaire d’édition de la rubrique. Si elle n’y est pas, mettez-la à « accès tout public »

vous devriez obtenir ça :

Puis maintenant créons un article dans chacune des sous-rubriques : moi, j’ai choisi « daube » dans « plats mijotés » et « chèvres chauds sur son lit de cressonnette » dans « entrées chaudes » (c’est pour vous donner envie d’aller au bout de l’article :-) ). Publiez en ligne ces deux articles.

Et maintenant nous allons mettre en accès restreint la rubrique « plats mijotés ». Modifiez la rubrique « plats mijotés » et modifiez sont statut pour « accès restreint », valider, vous devriez obtenir ça :

Puis vous allez visiter le site et cliquer sur la rubrique « plats mijotés »

et là, vous allez avoir une déception car on ne vous a pas barré le passage... :==(

C’est normal, vous êtes encore loggé comme administrateur.
Commencez par vous déconnecter.

et revenez au site public pour réessayer.

Là, vous devriez obtenir ceci :

Revenez au site public sans chercher à vous connecter
et essayez de lire l’article « Daube »...

Même résultat.... Quand on protège une rubrique, on protège aussi les articles qu’elle contient.

Création des visiteurs

Pour les exemples qui vont suivre, on remettra la rubrique « plats mijotés » en accès public, et on mettra la rubrique « cuisine » en accès restreint. On peut constater alors que plus aucun élément du site n’est accessible.

Spip accepte maintenat 4 statuts
-  Les administrateurs
-  les administrateurs restreints
-  les rédacteurs
-  Les visiteurs

Ces derniers ne peuvent être créés que si au moins un article dans le site a ses forums réglés en abonnement. Nous allons donc paramétrer l’article « Daube » de cette façon.

Puis nous allons créer un auteur que l’on appellera « bocuse ». Pour nous simplifier la tâche, on lui donnera le même login et le même mot de passe. On n’oubliera pas de régler son statut à « visiteur », on renseignera le champ « liste des rubriques.... » en rentrant « 2 » qui est l’id de la rubrique « plats mijotés ».

Apres vous être déconnectés, essayez de vous placer sur la rubrique « plats mijotés » en entant
pour login « bocuse » et pour mot de passe « bocuse ».

Ca marche !! Et si vous essayez avec cette connection d’aller sur la rubrique « cuisine » ou sur la rubrique « entrées chaudes », on vous annonce que vous n’avez pas les droits suffisants.

On va donc créer le visiteur « superbocuse » de la même manière que le précedent, mais on renseignera le champ
« liste des rub... » à « 1 ». Vous l’avez compris, « superbocuse » aura le droit de visiter tout le site.

Remarque sur les sessions sous spip

Je ne connais pas l’implémentation des sessions sous spip mais il semble qu’après de nombreuses connexions-déconnexions, et changements d’identité, le mécanisme présenté plus haut aie tendance à demander plus qu’il ne le faudrait à l’utilisateur de se réidentifier.... Il vaut mieux que le défaut aille dans ce sens que dans l’autre. Donc ne pas hésiter à réessayer si vous n’arrivez pas à vous connecter la première fois.

Adapter ceci à tous vos squelettes

Dans votre article.html recopiez en début de fichier la même ligne que dans article-dist.html. Faites la même chose avec rubrique.html et rubrique-dist.html.

Quelques explications pour les développeurs

Ce sont les squelettes « controle_acces_rubrique.html » et « controle_acces_article.html » qui contrôlent l’entrée de l’article ou de la rubrique.

Dans les deux cas le principe est simple :

-  Une boucle hiérarchie parcourt la liste des rubriques, de la rubrique, ou de l’article en cours, jusqu’à la racine. Si pendant ce parcours, une des rubriques a son extra « acces » égale à « restreint », alors le drapeau « $restriction » passe à « true ».
-  Si « $restriction » vaut true alors on vérifie si le visiteur est loggé.
-  Si le visiteur est loggé, la fonction « a_le_droit(...) » récupère l’extra associé à cet auteur (grâce à une fonction de beatnick), et vérifie si dans la hiérarchie citée précédemment l’auteur a le droit de visiter une de ces rubriques, si c’est le cas on le laisse lire la rubrique ou l’article.

N’hésitez pas à me faire remonter les bugs, qui seront, j’en suis certain nombreux....


Une mise à jour de cet article pour la version 1.8 de SPIP est disponible ici : MAJ 1.8 de l’article « Gestion hiérachisée des accès restreints »

P.-S.

Un peu stupidement j’ai oublié id_groupe=20 dans l’appel d’un squelette, en rapport avec une autre contrib donc on s’affolle pas, on l’ignore et ça marche pareil.

Dernière modification de cette page le 13 octobre 2005

Retour en haut de la page

Vos commentaires

  • Le 15 juillet 2008 à 12:07, par ola En réponse à : Gestion hiérarchisée des accès restreints

    bonjour
    je suis en 1.7.2 et l’accès restreint ne s’effectue pas pour la rubrique voulue

    à quoi ceci est il dut ?

    merci

    Répondre à ce message

  • Le 31 mai 2006 à 14:22, par cc En réponse à : Gestion hiérarchisée des accès restreints

    J’utilise cet contrib sur notre site intranet et ca marche tres bien.

    Seul probleme : Meme si le repertoire /IMG est protege par htaccess il est toujours possible d’acceder aux fichiers (documents) qui se trouvent dans une page avec acces protege. Bien sur il faut connaitre le nom du fichier. Quelqu’un aurait trouve une astuce pour eviter ceci ? Merci !

    Répondre à ce message

  • Le 26 avril 2006 à 19:25, par frohard En réponse à : Gestion hiérarchisée des accès restreints

    bonjour,

    j’ai mis en œuvre cette option - le résultat est à moitié atteint ;-)
    en effet, si mes rubriques contiennent bien la mention acces restreint ou public - il n’ y a pas de statut de visiteur chez les rédacteurs - et donc pas de restriction d’acces - version 1.7.2

    que faire ???

    J Marc

    tiens au fait, si quelqu’un peut me dire quel est le squelette du site usma.fr dont je reprends la gestion ...

    merci d’avance

    Répondre à ce message

  • Le 19 octobre 2005 à 16:08, par tcheva En réponse à : Gestion hiérarchisée des accès restreints

    merci ça marche tres bien

    mais je veux savoir un truc j’ai met un menu avec les titres des rubriques comme lien et est ce que c’est possible de ne pas afficher les titres du rubriques qui ont un accès restreint
    que si la personne s’identifie (aussi afficher pour chaque personne ses propres rubriques)

    merci de votre aide

    Répondre à ce message

  • Le 17 octobre 2005 à 19:20, par Luj En réponse à : Cachez cette rubrique que je ne saurais voir !

    Attention, les articles sont toujours visibles (en résumé) sur certaines pages dont surtout le plan du site.
    Il faut donc modifier les boucles pour ne pas afficher les rubriques (et les articles qui sont dessous) :

    <?php if ('[(#EXTRA|extra{acces})]'!='restreint') { ?>

    Ici les boucles d’affichage autorisées

    <? } ?>

    Répondre à ce message

  • Le 7 octobre 2005 à 10:07, par ? En réponse à : Gestion hiérarchisée des accès restreints

    Merci pour cette contrib. Je l’ai applique a notre site Intranet.
    Le seul probleme a ete le cache. Apres fermer IE vous pouviez toujours avoir acces a la page a nouveau sans taper le login+password.
    Il a fallu que je change $delais=0 partout et ca marche !
    CC (England)

    • Le 7 octobre 2005 à 10:10, par ? En réponse à : Gestion hiérarchisée des accès restreints

      J’ai oublie de preciser que j’ai fait une copie du programme pour controler les breves egalement. Si vous voulez une copie veuillez svp indiquer votre e-mail.

    Répondre à ce message

  • Le 25 juillet 2005 à 20:48, par Sir En réponse à : > Gestion hiérarchisée des accès restreints

    Bonjour,
    Merci pour ce topo adapté à mon niveau débutant (en php). Ca marche nickel sur SPIP 1.8. Je cherche le moyen de l’adapter à la rubrique particulière agenda . Quelqu’un aurait-il une solution à me proposer SVP ?
    Merci.

    Répondre à ce message

  • Le 18 avril 2005 à 22:47, par Michael Courcy En réponse à : >MAJ 1.8

    La MAJ pour la 1.8 est ici

    Si elle est publiée bien sur.

    • Le 19 avril 2005 à 22:48, par Dieudonné En réponse à : > MAJ 1.8

      Merci Michaël pour ces contribs !

      • ces mises à jour des interfaces de gestion des extra, et des accès restreints par ces contribs me sont très utiles :

      Pourquoi laisser tomber les champs extra ?

    • Le 27 avril 2005 à 18:18, par Pierre Bénech En réponse à : > MAJ 1.8 - Accès restreint

      Bonjour,

      Où peut on trouver les MAJ pour la version 1.8 de l’article « Gestion hiérarchisée des accès restreints » ?

      Merci par avance

    • Le 3 juin 2005 à 16:40, par ? En réponse à : > MAJ 1.8

      Bonjour,

      Fonctionne-t-elle sur le dernier spip 1.8.1 ?

      Merci par avance

    • Le 30 juin 2005 à 12:46, par dd_a En réponse à : > MAJ 1.8

      Bonjour,

      Tout d’abord un grand merci pour ce travail. Je débute sous spip en construisant un site avec spip 1,8,1, ta contrib et bones 1,8 comme squelette. J’ai pu faire fonctionner le controle des accès mais depuis la mise à jour de bones il y a 2 jours j’ai dû écraser quelque chose et je ne trouve plus quoi. Pourrais-tu indiquer comment adapter ta contrib aux autres squelettes, puisque les fichiers « *-dist.html » que tu mentionnes ont disparu (en précisant si possible quelle est cette ligne qu’il faut ajouter à nos fichiers). Désolé si mes questions paraissent lourdingues ou si elles n’ont pas lieu d’être !

    • Le 4 juillet 2005 à 15:07, par dd_a En réponse à : > MAJ 1.8

      Bon, d’accord, c’était une question con. Disons qu’en utilisant un bon éditeur html tout devient plus clair...

    Répondre à ce message

  • Le 19 novembre 2004 à 22:42, par dml En réponse à : > Gestion hiérarchisée des accès restreints

    Cette contribution marche très bien avec la version 1.7.2.
    Pourquoi l’avoir refusé ?
    Même si elle n’est pas compatible avec la 1.7 voire la 1.8 elle mériterait d’être intégrée dans SPIP moyennant les améliorations/modifications necessaires.

    • Le 21 novembre 2004 à 10:11, par Olivier GENDRIN En réponse à : > Gestion hiérarchisée des accès restreints

      Tout simplement parce qu’elle utilise (fort bien) les champs extra, qui on été introduits dans SPIP 1.7.1 (je crois) et qui ne sont pas destinés à ’survivre’ en l’état à SPIP 1.8. Donc dans quelques mois, elle posera plus de problème qu’elle n’en résoudra.

    • Le 25 novembre 2004 à 22:46, par Michael Courcy En réponse à : > Gestion hiérarchisée des accès restreints

      Absolument d’accord, c’est aussi pour cela que j’ai renoncé à l’entretien de cette contrib quoiqu’elle me rende encore quelques services....

      J’ai beaucoup plus confiance (avec l’arrivée de la 1.8) en la possibilités de définir dans le langage des boucles lui-même la notion de session qu’à le bricoler comme je l’ai fait.

      Quand la 1.8 sortira officiellement je proposerai coup sur coup deux contributions (enfin j’espère y arriver). Une contribution qui permet d’ajouter un mot clé à un auteur et une contribution sur les sessions, c’est la combinaisons de ces deux outils qui permettront de définir des règles de navigations adaptés a l’auteur de la session.

    • Le 21 mars 2005 à 09:49, par Dieudonné En réponse à : > Gestion hiérarchisée des accès restreints sous SPIP 1.8

      Merci encore pour cette magnifique contrib qui m’a permis à la fois :
      -  de mieux comprendre le fonctionnement des extra
      -  de me permettre d’imaginer enrichir assez facilement le fonctionnement de base de SPIP
      -  et de gérer des accès restreints assez facilement !

      Je suis passé à la 1.8b6 en particulier pour sa fonction d’enregistrement de l’historique de modification des articles - ce qui au passage offre la richesse de faciliter le travail à plusieurs sur un article - et je voudrais, malgré les réserves énoncés quant au fonctionnement de cette contrib pour la 1.8, signaler un bug :
      -  cette contrib semble toujours fonctionner, à l’exception des Champs de saisie type Bouton radio ou Liste select.

      Merci d’avance pour l’adaptation de cette contrib à la 1.8 !!!

    • Le 21 mars 2005 à 18:11, par Courcy En réponse à : >Adaptation à la 1.8

      Cette contrib ne sera adaptée à la 1.8 qu’à la sortie officielle de celle-ci.

      Cordialement.

    • Le 4 avril 2005 à 00:42, par Vincos En réponse à : > >Adaptation à la 1.8

      Hello !

      Tu penses qu’ils serait possible pour la futur adaptation à la 1.8 de pouvoir aussi restreindre l’accès à certains rédacteurs à certaines rubriques dans l’espace privé ?

      J’ai des rédacteurs qui ne devraient pas avoir accès à certains documents (documents confidenciels) qui, même avec ta contrib, pouraient passer par l’espace privé pour y accéder.

      Merci

      Vincos

    • Le 4 avril 2005 à 08:09, par ? En réponse à : > Non car c’est une modification du noyau.

      > Non car c’est une modification du noyau.

      Ca entrainerait un refus automatique de la contrib, et c’est contraire aux principe de transparence dans ce cms.

    • Le 6 avril 2005 à 10:43, par Dieudonné En réponse à : > Adaptation à la 1.8 : Une idée du délai ?

      Une idée du délai pour cette adaptation ?

      Je ne suis pas très doué en php, mais je me propose d’aider à bêta-tester en cas de besoin ;)

    • Le 13 avril 2005 à 21:23, par ManuDevil, concepteur multimédia... avec SPIP En réponse à : > >Adaptation à la 1.8

      SPIP 1.8 est sorti. Quoi de neuf pour cette contrib, qui m’a l’air de correspondre tout à fait à ce que je recherche ? Ca marche avec la 1.8 ?

      Merci !

    • Le 22 avril 2005 à 16:20, par ivandps En réponse à : restreindre une partie du site privée

      Tout d’abord bravo aux contributeurs, particulièrement toi Courcy.

      Dommage, je cherche depuis longtemps cette contribe, mais qui soit également adaptée au site privé !

      Je crois ne pas être le seul !

      Merci pour ton travail.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    8 janvier 2014 – 23 commentaires

    SPIP 3 fonctionne nativement avec l’encodage universel unicode utf-8. Sur certains sites (par exemple sur une mise à jour), on peut avoir un site qui est resté en iso-latin ce qui n’est pas conseillé (source de bugs, d’incompatibilité, ...) . (...)

  • ScolaSPIP 4

    19 janvier 2016 – 360 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • SPIP 3.2, Agenda et FullCalendar

    6 juin – 10 commentaires

    Nous avions publié un article sur la manière d’utiliser FullCalendar avec SPIP 3.0 afin d’afficher des évènements sous forme d’Agenda. La version de FullCalendar a changé avec SPIP 3.2. Le présent article est donc un tutoriel adapté à SPIP 3.2. Pour (...)

  • Mailsubscribers

    16 janvier 2013 – 408 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)

  • Nouvelle version - Modération de modifications

    29 janvier 2012 – 49 commentaires

    Suite à une migration depuis SPIP-Agora, j’ai développé ce plugin permettant de reprendre la fonctionnalité « Nouvelle version » inexistente sur SPIP2 ni sur SPIP3 Ce plugin permet d’étendre le work-flow de -rédaction-publication d’un article au cas d’un (...)