SPIP 1.9.2

Plugin Accès Restreint Modifié

Divers

ATTENTION : il s’agit d’une modification d’une ancienne version du plugin accès restreint à des fins de tests sur les éventuelles évolutions de ce plugin. Cette version modifiée du plugin n’est donc pas conseillée pour un site en production et ne bénéficie d’aucune maintenance.

Si vous souhaitez mettre en place des restrictions d’accès sur votre site, je vous recommande donc la version « officielle » du plugin, stable et maintenue à jour, disponible sur SPIP-Contrib : http://www.spip-contrib.net/Le-plugin-Acces-Restreint.

Afin de répondre à certains besoins personnels, j’ai apporté quelques modifications au plugin Accès Restreint de Cédric Morin.

La documentation du plugin d’origine est disponible sur Spip-Contrib.

Il s’agit d’une première série de réflexions à propos du fonctionnement de ce plugin. Pour d’autres éléments sur cette question voir entre autres :

Les Modifications effectuées

Les modifications apportées sont les suivantes :
- Modification des droits des administrateurs restreints : dans le plugin original, un administrateur restreint peut ajouter ou retirer un auteur de n’importe quelle zone, y compris lui-même. Dans le plugin modifié, un administrateur restreint ne peut ajouter ou retirer une zone à un rédacteur seulement s’il appartient lui-même à la zone concernée.
- Gestion des accès publiques/privées rubrique par rubrique : dans le plugin original, une zone restreint l’accès soit à l’espace publique soit à l’espace privé. Or, il se peut que pour une rubrique donnée, on souhaite qu’elle soit accessible sur le site publique mais pas dans l’espace privée pour un groupe donné de rédacteurs. Dans le plugin modifié, les zones accessibles d’une zone sont définies séparément pour le site publique et l’espace privé, permettant ainsi une gestion plus fine des droits pour une zone donnée.
- Modification de l’héritage des droits : dans le plugin original, lorsqu’une rubrique est cochée pour une zone, toutes ses sous-rubriques deviennent accessibles quelque soit les restrictions posées aux autres zones. Dans le plugin modifié, une sous-rubrique non cochée dans une zone hérite de droits des rubriques parentes uniquement si elle n’est pas défini explicitement. Voir plus loin pour un exemple concret.
- Extension de la restriction à la boucle EVENEMENTS du plugin Agenda si ce dernier est activé. La restriction porte sur le site publique uniquement. Concernant l’espace privé, l’ensemble des évènements restent visibles à tous via l’agenda interne.

Les modifications ont été effectuées sur la version du 27 février 2007 du plugin Accès Restreint disponible sur sur Spip-Zone. Dans le code, toutes les modifications sont précédées du commentaire //JL ou //MODIF JL.

Installer le plugin modifié

Il suffit de télécharger le fichier zip ci-dessous et de copier son contenu dans le répertoire plugins.

ATTENTION : le plugin modifié ne doit pas être activé en même temps que le plugin original, sinon il y aura conflit.

Le plugin modifié utilise les mêmes tables que le plugin original. Si vous passez du plugin original au plugin modifié, ou l’inverse, vous conserverez les noms et descriptions des différentes zones, les affectations des auteurs aux différentes zones. Par contre, vous devrez redéfinir les droits de toutes les zones.

Définir les droits d’une zone

Gestion des droits d'une zone

Les droits sont définis séparément pour la partie publique et l’espace privé.

Les rubriques accessibles sont affichées sur fond coloré, les rubriques inaccessibles (car restreintes par d’autres zones) sont affichées en gris.

Héritage des droits
Dans l’exemple ci-dessus, en donnant accès au secteur Atelier de lecture, les sous-rubriques Archives internes au groupe et Travail en cours héritent des droits de la rubrique parente car elles ne sont pas restreintes directement dans une autre zone. La rubrique Règles éditoriales demeure inaccessible parce qu’une autre zone la restreint explicitement (dans le plugin original, malgré cette définition explicite par une autre zone, la sous-rubrique serait devenue accessible). Si l’on souhaite élargir la zone en cours à cette rubrique, il faut alors cocher directement la case de cette zone.