Le plugin «Autorité»

Ce plugin permet de configurer des «autorisations» différentes de celles par défaut.

Introduction

D’aucuns trouvent le modèle d’autorisations de SPIP trop rigide (voir «psychorigide») : par exemple, seuls les rédacteurs en qui l’on a confiance (et qu’on a donc promu «administrateurs») sont autorisés à modifier les articles déjà publiés.

Depuis sa version 1.9.2, SPIP propose toutefois une API (interface de programmation) qui centralise tous les contrôles d’autorisations diverses et variées.

Le plugin «Autorité» est le premier à exploiter cette API pour proposer d’autres modes de fonctionnement hiérarchique. Il utilise (et nécessite) le plugin CFG, ce qui fait que son code reste relativement simple, en tous cas sans superflu.

Fonctionnalités

Dans sa version 0.9, le plugin «Autorité» propose les possibilités suivantes :

Rôle de webmestre

Ce rôle est indispensable pour modifier la configuration du plugin. Le webmestre est, par défaut, l’administrateur id_auteur=1 du site.

Les webmestres ainsi définis ont également le privilège de ne plus être obligés de passer par FTP pour valider les opérations sensibles du site, comme la mise à jour de la base de données ou la restauration d’un dump.

On peut changer la liste des webmestres en allant éditer le fichier config/mes_options.php (à créer le cas échéant), pour y indiquer l’id_auteur des auteurs qui auront les autorisations de webmestre. Par exemple, si les webmestres sont les administrateurs 2, 4 et 11 :

<?php
define ('_ID_WEBMESTRES', '2:4:11');
?>

Droits des auteurs et visiteurs

  • Auteur modifie article : chaque rédacteur (ou visiteur si l’on utilise un plugin tiers type Openpublishing) peut modifier les articles dont il est l’auteur (uniquement via les crayons pour les visiteurs);
  • Auteur modère forum : chaque rédacteur peut modérer le forum des articles dont il est l’auteur;
  • Auteur modère pétition : chaque rédacteur peut modérer la pétition des articles dont il est l’auteur.

À noter: le premier de ces choix valide obligatoirement les deux suivants.

Droits des rédacteurs

  • Rédacteur modifie email : chaque rédacteur peut modifier son email sur sa fiche d’informations personnelles;
  • Mots-clés : qui peut créer et éditer les mots-clés (administrateurs restreints, rédacteurs...) ;
  • Rédacteur voit stats : les rédacteurs peuvent visualiser les statistiques.

Crayons

  • Editer les forums: par défaut, personne n’est autorisé à modifier les forums ; ce réglage permet de laisser le webmestre (ou les administrateurs) éditer les forums. Mais aussi, si on le souhaite, les auteurs des messages de forum eux-mêmes (à condition qu’ils soient identifiés). Une option (très expérimentale) permet de ne laisser cette dernière autorisation que pour une durée d’une heure ;
  • Editer les signatures: par défaut, personne n’est autorisé à modifier les signatures de pétition. Ce réglage permet d’ouvrir ce droit au webmestre ou aux administrateurs.

Attention: pour ces deux réglages, SPIP n’offre pas d’interface de modification ; il faut utiliser Crayons (ou développer un plugin spécifique).

Espace wiki

Après avoir choisi dans le menu un secteur que l’on veut traiter comme un wiki (c’est-à-dire éditable par tous depuis l’espace public — à condition d’avoir une interface, par exemple les crayons), on indique si l’on souhaite ouvrir le wiki :

  • aux rédacteurs du site;
  • aux visiteurs enregistrés;
  • à tous les visiteurs du site.

Configuration du site:

  • interdire la configuration du site aux administrateurs non-«webmestres»;
  • autoriser les sauvegardes pour les administrateurs restreints / ou les interdire pour tous ;
  • interdire de supprimer les données de la base (s’ajoute à l’authentification FTP);
  • interdire la création de nouvelles rubriques à la racine, ou en sous-rubriques.

Configuration des auteurs:

  • À la création d’un auteur, quel est son statut par défaut ?
  • Quels types d’auteurs peut-on associer à des rubriques ?
  • Ignorer la notion d’administrateur restreint

D’autres réglages peuvent s’ajouter à ces idées... N’hésitez pas à faire des propositions et à participer au développement.

Installation & configuration

C’est «plug and play». Une fois les deux plugins «Autorité» et «CFG» activés, on se rend sur la page ecrire/?exec=cfg&cfg=autorite pour modifier les réglages (si l’on n’indique aucun réglage, les autorisations standards de SPIP s’appliquent).

Ensuite, roule le navire, après un éventuel vidage du cache les nouvelles autorisations sont en place.

L'interface de configuration
L’interface de configuration
Avec le message d’erreur idoine :)

Compatibilité

La quasi-totalité des réglages ne sont opérationnels qu’avec les versions récentes de SPIP (version 2.x ou 3.x) ; seul le réglage auteur modifie article est compatible avec SPIP 1.9.2a. Il faut également une version de CFG supérieure ou égale à 1.0.2.

Structure du code (si vous souhaitez participer au développement)

Le plugin est développé sur SPIP zone, vous pouvez le charger par svn :

svn co svn://zone.spip.org/trac/spip-zone/browser/_plugins_/autorite

Ce plugin comporte quatre fichiers principaux [1] :
-  plugin.xml décrit le plugin;
-  inc/autoriser.php étend le système d’autorisations et définit les fonctions nécessaires lorsque les autorisations sont différentes des autorisations par défaut;
-  fonds/cfg_autorite.html définit l’interface de configuration, sous forme d’un simple squelette (ceci grâce au plugin CFG);
-  fonds/cfg_autorite_fonctions.php établit la liste des webmestres pour affichage dans le panneau de configuration (Cf. copie d’écran ci-dessous).

Dans inc/autoriser.php on fait bien attention à coder très proprement les fonctions, de manière à toujours pouvoir les redéfinir « de l’extérieur» (dans mes_options.php par exemple); le cas échéant, un message adapté signale les conflits dans le panneau de configuration.

Il est recommandé, lors des tests, d’utiliser plusieurs navigateurs connectés sous des profils d’utilisation différents ; et d’activer le debug des autorisations en inscrivant dans mes_options.php la ligne :

define ('_DEBUG_AUTORISER', true);

Footnotes

[1Les autres fichiers sont les icones, les chaînes de langue et le pipeline qui permet d’ajouter un onglet dans la page de configuration.

updated on 2 October 2019

Discussion

129 discussions

  • 4

    J’ai posté récemment un commentaire sur l’évolution du plugin sur la spip-zone.

    http://thread.gmane.org/gmane.comp.web.spip.zone/30404

    Je n’ai pas eu de réponse. Peut-être qu’ici on a un avis ?

    • J’ai effectivement constaté le même problème : un auteur recoit bien les notifications de nouveau message mais n’est pas en mesure d’administrer les forums :(

      Avez-vous besoin de plus d’information pour tenter de corriger ce bug ?

      Merci d’avance !

    • idéalement il faudrait avoir l’avis de l’auteur. Et dans tout les cas il faudrait une personne qui ait le temps de le corriger ...

    • par contre Maieul si tu le couple avec crayons , la tu peu modifier le forum.

      chez moi c’est comme ça que je m’en sert pour modifier les forums pas en censure , mais en correction de fautes d’orthographe

      @micalement

    • oui, mais encore une fois le problème pour moi est de coupler ainsi deux choses qui ne sont pas nécéssairement corrolés : la modification de l’article et la modification des forums

    Reply to this message

  • 2

    Quand je installe le plugin, et dans l’espace de configration je cette messegae, le plugin il ne change pas l’enregistrements:

    Warning: Missing argument 2 for formulaires_editer_logo_charger_dist() in C:\Program Files (x86)\EasyPHP-12.0\www\MONSITE\prive\formulaires\editer_logo.php on line 43

    • as tu la bonne version de SPIP ?

    • Oui, Pierre, je suis sur 3.0.4 [19781]..

      Ce que je fais pour regler mon probleme, je enlever l’inclusion du #FORMULAIRE_EDITER_LOGO dans le plugin est ca marche bien..

    Reply to this message

  • Bonjour,

    J’ai coché la case «pour interdire aux administrateurs de créer de nouvelles sous-rubriques dans l’arborescence». L’icône «Créer une sous-rubrique» ne s’affiche pas, c’est bien.

    Mais il y a des petits malins qui arrivent tout de même à créer des sous-rubriques en créant une rubrique, puis, à l’aide du menu déroulant «À l’intérieur de la rubrique» choisissent de la placer dans une autre rubrique, au lieu de laisser le choix par défaut «Racine du site».

    C’est ennuyeux, car la structure de ce site n’est pas faite pour gérer les sous-rubriques. Comment faire pour désactiver cette possibilité? Merci de vos lumières.

    (Spip 3.0.2 - Autorité 0.9.12)

    Reply to this message

  • 1
    christophe

    bonjour,

    je viens de commencer la création d’un site avec spip2 (plugin escal).

    Ma question concerne les types de visiteurs du site.
    Par défaut avec spip il y a 3 types d’utilisateurs :
    http://www.spip.net/fr_article3517.html
    Je voudrais en ajouter un quatrième (compte générique) qui pourrait accéder à certains dossiers précisés (dossiers de photos, droits à l’image oblige) MAIS QUI N’AURAIT PAS ACCES A L’ESPACE PRIVE.

    J’ai installé le plugin accès restreint qui me permet de faire beaucoup de choses, mais je voudrais que les personnes s’identifiant à l’aide de cet identifiant générique ne puissent qu’avoir accès en plus qu’aux dossiers de photos, et ne pas pouvoir rentrer du tout dans l’espace privé.

    Je suppose qu’il est possible de faire un filtre pour ne pas afficher les boutons “espace privé” pour un utilisateur précis, mais je ne sais pas trop comment ni où rentrer cela.

    Pou info le site en question est :
    http://www2.ac-lyon.fr/etab/lycees/...

    merci beaucoup de votre aide,

    christophe

    • Sylvain_LD

      J’utilise 2.1.15 avec «ESCALV2». J’utilise également «Accès restreint» .
      Avec ce dernier plugin, je bloque l’accès dans la partie privée à certaines rubriques.
      Dans le définition des droit d’accès il faut cocher “privé” puis définir les rubriques bloquées

      Le fichier joint illustre mon propos

    Reply to this message

  • 3

    Merci pour ce plugin qui permet de mettre l’intégrité du site à l’abri de manoeuvres inconsidérées :-)

    Un petit souci: quand je me logue en tant qu’administrateur je peux aller modifier l’auteur webmestre. Est-ce normal qu’on puisse ainsi modifier les données d’un participant de niveau hiérarchique «supérieur»? Le rédacteur, lui, ne le peut pas.

    • Bonjour,
      j’ai le même soucis que Béat, comment interdire la modification de l’identifiant et mot de passe du webmestre par un administrateur, c’est assez curieux comme comportement.

      Que peut-on faire pour résoudre cette contrainte ?

    • Blancerisier

      Oui, j’ai le même problème. Mais j’ai essayé sans le plugin et Spip 2.10 a déjà ce problème : un administrateur peut changer le mot de passe du webmestre... très curieux !

      C’est vrai que si le plugin Autorité pouvait corriger cette “faille” ce serait super !

      Merci par avance !

    • Histoire de ne pas venir ici que pour râler, il faut mentionner que
      dans la version pour Spip3 le problème a été corrigé :-)
      Merci

    Reply to this message

  • Bonjour!

    D’abord merci pour ce plugin qui répond à mes attentes.

    J’aurais par contre besoin d’une toute petite fonctionnalité en plus que je n’arrive pas à créer moi même. En effet, la navigation de mon site repose exclusivement sur les mots clés ainsi je souhaiterais interdire également aux administrateurs de pouvoir les éditer.

    Pas de souci pour trouver le morceau du formulaire qui attribue les valeurs 0,1 ou 2 selon le choix actuel

    j’ai donc bien pensé à rajouter un champ webmestre avec une valeur 3

    Mais il faut à présent modifier la fonctions php (autoriser..php) si j’ai bien suivi, j’ai même trouvé le morceau qui correspond, sous ce bloc
    ## autoriser_groupemots_modifier

    mais mes compétences en php sont assez limitées.

    Quelqu’un pourrait-t-il m’éclairer?

    Merci d’avance

    Reply to this message

  • 1
    Pierre-Jean

    Une idée :

    Pourrais-t-on avec Autorité définir des droits spécifiques sur un auteur particulier et indépendamment de son statut ?

    Je fais confiance à l’auteur n°15 par exemple, je veux bien qu’il puisse créer et éditer des mots clefs... Possible ça ?

    • Ce plugin ne répond qu’à des besoins génériques, mais grâce à l’API inc/autoriser tu peux ajouter tes propres fonctions d’autorisation. C’est relativement facile, et le code du plugin Autorité peut t’aider à voir comment cela fonctionne.

    Reply to this message

  • 5

    Je n’arrive pas à faire fonctionner le plugin, ni en local, ni en ligne.
    J’ai un spip 2.1.11 avec cfg 1.16 et autorité 0.9.10
    Le plugin s’installe, se règle dans cfg (modif acceptées via un bandeau vert) mais ça ne change rien.
    Ce qui m’intéresse principalement est de permettre à un rédacteur de modifier son article après publication. Quand je me connecte en rédacteur, sur un article qui m’est associé, pas de bouton modifier cet article.
    Merci de votre aide

    • Cédric33

      Bonjour,

      Même problème avec SPIP 2.1.10, CFG 1.16 (ou 1.15), et autorité 0.9.10.
      Fonctionnait avec SPIP 2.0.10, CFG 1.15.2 et autorité 0.9.7 - dernière bonne configuration connue, comme diraient d’autres ;-)

    • Bonjour,

      Même problème avec SPIP 2.1.10, CFG 1.16, et autorité 0.9.10. ;)

    • En effet, la version 0.9.10 présentait encore le bug : les réglages étaient enregistrés mais pas dans la bonne meta, donc pas appliqués. La version 0.9.11 solde vraiment le problème.

    • Merci pour cette rectification.
      Ça marche super.

    • Cédric33

      Bonjour,

      Merci aussi.
      Par contre j’ai toujours un problème, en rédacteur, pour le changement de date (actif mais ne fonctionne pas), ainsi que pour le changement de statut (pavé indisponible).

      Il me semble que cela fonctionnait avec les versions SPIP 2.0.10, CFG 1.15.2 et autorité 0.9.7.

    Reply to this message

  • Bonjour,

    J’aimerai que les auteurs de mon site puissent éditer leur profil, ce que je fais en partie en utilisant la balise

    #FORMULAIRE_EDITER_AUTEUR

    Mais il me manque la gestion du logo. J’aimerai que tous les auteurs du site puissent éditer leur logo, même les plus restreints (statut “6forum”, si je ne me trompe pas). Or ces derniers ne semblent pas autorisés à modifier leur logo avec les crayons.

    Est-ce que quelque chose m’échappe? Est-ce possible d’y parvenir à l’heure actuelle en manipulant le plugin autorité?

    Sinon, une astuce pour y parvenir serait la bienvenue, je n’ai pas de soucis à bidouiller un peu de PHP.

    Merci d’avance

    Benoit

    Reply to this message

  • Je me disais bien que je n’ai pas rêvé : ce plugin existe bel et bien (parce-que STEP ne le trouve pas) Passons...

    J’ai autorisé les rédacteurs à voir les statistiques... En tant qu’administrateur. j’utilise le plugin «Change Statut» pour m’assurer que ça fonctionne ; et ben ce n’est pas le cas : «Bandeau 2.1» ne montre pas l’entrée des stats...

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom