SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 81 visiteurs en ce moment

Accueil > Auteurs, authentification et autorisations > Accès restreints > Un niveau d’accès sur les objets

Un niveau d’accès sur les objets

27 mars 2009 – par Guytarr – commentaires

3 votes

Une colonne de type int, représentant un niveau d’accès, ajoutée à la table auteur/visiteur et à la table d’un objet (article, rubrique, mot clé, brève...) permet de protéger ses objets en fonction de l’auteur/visiteur authentifié.

Configuration nécessaire - préalable

  • Spip 2.x (gestion des colonnes supplémentaires dans les boucles)
  • Droits pour ajouter une colonne dans les tables spip
  • Plugins champs extras 2
  • Modifier les boucles en ajoutant un critère
  • Fonctionne uniquement dans un site avec une authentification, sinon, aucun intérêt.

Etude de cas

J’ai eu récemment à mettre en place un extranet avec des articles accessibles à certains visiteurs authentifiés sur un SPIP 2.x

Ces contenus pouvaient se trouver n’importe où, restreindre avec l’accès restreint v3 les rubriques ne suffisait donc pas. J’ai donc crée une colonne supplémentaire dans la table auteur, « nivo_acces », et une colonne de même type dans la table des articles, « nivo_acces » également, histoire de faire simple. Ces deux colonnes ont comme valeur 1 par défaut.

En utilisant le plugins champs extras, j’ai ajouté la gestion de ces champs pour l’interface privée.

Ensuite dans toutes mes boucles articles, j’utilise la comparaison de ce critère entre le niveau de l’article et celui de l’auteur :

BOUCLE_art(ARTICLES){nivo_acces<=#SESSION{nivo_acces}}...

Et voilà. Temps de déploiement : 1/2h maxi en utilisant un rechercher remplacer sur les boucles articles (applicable à n’importe quel objet spip hors auteur) avec un bon éditeur de texte. Après, il faut bien sûr affecter les niveau d’accès désiré aux auteurs et aux articles.
L’avantage, c’est que les niveaux d’accès sont infini (ça part de 1 à n).
L’inconvénient, c’est qu’ils sont « hiérarchisé » (ce ne sont pas des « groupes »).

Cette contribution est intrusive, puisqu’elle demande l’ajout d’un critère dans les boucles.

Dernière modification de cette page le 27 mars 2009

Retour en haut de la page

Vos commentaires

  • Le 25 mai 2010 à 21:39, par DD En réponse à : Un niveau d’accès sur les objets

    Bonjour,

    je voulais tester cette restriction d’accès sur l’objet « DOCUMENT » mais je vois que document n’est pas un objet listé dans la config des champs extra.
    tant pis..
    dd

    • Le 3 février 2011 à 07:59, par Pi r En réponse à : Un niveau d’accès sur les objets

      ça, c’est fait !

    • Le 17 mars 2011 à 12:11, par seds En réponse à : Un niveau d’accès sur les objets

      Je viens d’installer Champs Extras 2 sous spip 2.1.8, mais je ne vois toujours pas l’objet Document dans la liste d’objet...?

      Ai-je bien compris le post de Pi r ?

      par ailleurs, dans le cadre d’un intranet, j’essaie de trouvé une solution pour que les docs joints ne soient pas accessibles par directement leurs urls, et uniquement par des visiteurs authentifiés.
      j’ai testé la protection du répertoire, ma création de .htpasswd a échoué et j’ai abandonné quand j’ai vu ce post.

      Il me reste la solution proposé ici, même si je ne sais pas très bien ce que je fais.

    Répondre à ce message

  • Le 8 mai 2009 à 07:23, par bd13 En réponse à : Un niveau d’accès sur les objets

    L’idée est très bonne, mais il est tout à fait possible de gérer des droits d’accès par groupe en utilisant les mêmes informations. Au lieu de noté un niveau d’accès tu donne en binaire quels sont les groupes qui ont accès. (ex 5 en binaire 101, va autoriser le groupe 1 et 3 mais bloqué le groupe 2) Pour l’utilisateur il faut alors définir de la même façon les groupes auxquels il appartient (ex admin 255 en binaire 11111111, appartient au groupe 1 à 8) Il suffit ensuite de déterminer si au minimum un bit est à 1 sur les 2 valeurs pour donner l’accès. (OU bit à bit)

    de cette façon tu peux gérer tes droits par groupes sans héirarchie

    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

  • LinkCheck : vérificateur de liens

    13 février 2015 – 127 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Mon site affiche une page blanche ou je ne peux plus accèder à l’espace privé

    7 février 2008 – 34 commentaires

    Au secours ! « Tout à coup » votre site devient inutilisable ou inaccessible ! Comment faire ? Pourquoi ? Par où commencer ? Sans pouvoir couvrir tous les cas, cet article va essayer de vous guider rapidement vers la (...)

  • Japibas, squelette responsive

    11 octobre 2013 – 113 commentaires

    Japibas est un squelette responsive, multilingue (français, anglais et espagnol), dont l’habillage conviendrait à un site de type blog ou webzine. Le graphisme est inspiré du template Wordpress Japibas réalisé par Jesper Johansen et distribué sous (...)

  • GIS 4

    11 août 2012 – 1478 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Répétitions et Événement source du plugin Agenda : comment éviter les redondances ?

    8 avril 2015 – commentaires

    Solution perfectible mais réponse fonctionnelle à une demande récurrente et pertinente concernant le plugin Agenda : regrouper les dates des répétitions, sous le titre de leur événement source, afin d’éviter les redondances. Exemple à l’appui. Le (...)