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
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.

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);

Notes

[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.

Discussion

132 discussions

  • Bonjour,
    j’avais une question concernant le plugin...
    Pourquoi ne pas laisser la possibilité aux webmaster d’un site, de donner les droits qu’il faut au rédacteur et aux admins restreint...? Ça revient a ce que dit Fabien et tof au final.

    exemple :
    Le rédacteur peut-il modifier son article une fois en ligne : Oui/Non
    Le rédacteur peut il supprimer son article une fois en ligne : Oui/Non
    etc etc...

    Répondre à ce message

  • 2

    En fait j’aimerai que les rédacteurs puisse ajouter, modifier et supprimer leur articles, donc ce plugin correspond bien.
    Un rédacteur par defaut propose un article à l’administrateur, qui le valide ou non.
    Mais ici, une fois qu’il est validé, il peut remodifier le contenu, sans qu’il soit remit en évaluation... donc du point de vue « sécurité de l’information » ce n’est pas très intéressant...

    • Je plussoie à la demande de Fabien.

      Je suis enseignant dans un collège. Qu’un élève puisse modifier un de ses articles, c’est très bien. Mais qu’il ne soit pas revalidé par un admin, c’est moins bien.

      Si au moins un rédacteur pouvait modifier son article « proposé à l’évaluation » ce serait dèjà super !

    • Bonjour,

      Ayant configuré une rubrique wiki pour tout les visiteurs, et leur ayant donné le droit de créer des articles, comment les visiteurs doivent-ils procéder pour créer un article dans cette rubrique sans pour autant accéder à l’espace privé ?

      J’ai publié un premier article dans cette rubrique afin qu’elle soit visible.
      J’utilise SPIP 2, Les Crayons et Ahuntsic.

      Les visiteurs peuvent bien modifier l’article grâce aux crayons, mais je ne vois aucun lien ou bouton leur permettant d’en créer un nouveau.

      Existe-t-il une balise à rajouter dans la page des rubriques ?

      Merci !

    Répondre à ce message

  • 1

    Bonjour,
    ce plugin a l’air de correspondre à ce que je recherche...
    Mais (oui il y a toujours un mais... lol) y a t’il la possibilité pour que quand un rédacteur modifie son article, celui-ci ne soit plus publié mais soit en cours de rédaction...?

    Cordialement,
    Fabien

    • @Fabien : non ce n’est pas prévu, d’ailleurs ça laisserait un « trou » dans le site. Mais tu peux contourner le problème en utilisant d’autres données de l’article (son numéro de version, sa date de dernière modification, etc). Ca dépend de l’application que tu souhaites faire.

    Répondre à ce message

  • 1

    13 rubriques, c’est beaucoup ? Je pense pas.

    Par contre, des mots-clés j’en ai 3000, là ça fait peut-être beaucoup ! Et j’ai cru voir des boucles à ce sujet. C’était la bonne piste, je viens de mettre un critère (juste pour dépanner, un id_groupe aurait été plus intelligent) (0,100) sur les boucles_mots dans autorite/fonds/cfg_autorite.html et bingo, ça réagit au quart de tour.

    Bref, c’est l’espace wiki par mots-clé qui me foutait dedans.
    Un très grand merci fil.

    Répondre à ce message

  • 1

    Bonjour,

    j’avais déjà remarqué que la page privé ?exec=cfg&cfg=autorite mettait un temps fou à s’afficher, mais j’avais réussi tout de même à configurer ce plugin comme il faut.

    Là, j’ai quelques modifs à faire, et impossible d’afficher la page de configuration. J’ai bien le cadre à droite "Cette page de configuration est réservée au webmestre du site : ...", l’entête en onglets « Autorité »/ Les Crayons, mais pas les formulaires. Le source de la page s’arrête d’ailleurs toujours brutalement sur ce bout de code

    <div id='contenu' class='serif'>
    <a id='saut' href='#saut' accesskey='z'></a>

    Quelqu’un saurait me dire pourquoi ou comment débugguer un peu plus ce problème ?

    Pour info, Spip 2.0.3, MySQL : 4.1.22, PHP : 4.4.8

    Et je vois bien qu’il a du mal avec ce plugin (pas de soucis sur d’autres au passage) vu les temps de calculs bien trop long à mon goût relevés dans tmp/prive_spip.log

    Mar 02 09:40:00 monip (pid 25347) calcul (12.715s) [../plugins/auto/autorite/fonds/cfg_autorite] lang=fr, date='2009-03-02 09:39:47', date_redac='2009-03-02 09:39:47' (1089517 octets)
    
    Mar 02 09:40:14 monip (pid 25347) calcul (13.902s) [../plugins/auto/autorite/fonds/cfg_autorite] lang=fr, date='2009-03-02 09:40:00', date_redac='2009-03-02 09:40:00' (1089517 octets)
    
    Mar 02 09:40:24 monip (pid 25347) calcul (9.671s) [../plugins/auto/autorite/fonds/cfg_autorite] lang=fr, date='2009-03-02 09:40:14', date_redac='2009-03-02 09:40:14' (1089517 octets)
    
    Mar 02 09:40:24 monip (pid 25347) calcul (0.012s) [../plugins/auto/crayons/fonds/cfg_crayons] lang=fr, date='2009-03-02 09:40:24', date_redac='2009-03-02 09:40:24' (1947 octets)

    C’est pas un peu beaucoup d’ailleurs la taille d’environ 1 Mo pour la génération du fond. Doit y’avoir une petite boucle sans fin dans un coin ou je me trompe ?

    • La config d’Autorité fait une boucle sur les rubriques. Si tu as un nombre très important de rubriques, ça pourrait expliquer. Il faudrait alors revoir cette partie de la cfg

    Répondre à ce message

  • 2
    François Daniel Giezendanner

    Bonjour Fil,

    Merci pour cette belle contribution.

    La demande devient forte chez nous à Genève concernant la possibilité

    Priorité 1 :

    • de création de rédacteurs et de visiteurs identifiés par des administrateurs restreints.

    Priorité 2 :

    • de création de mots-clés par des administrateurs restreints.

    Peux-tu envisager de compléter le plugin en ce sens ?

    Cordialement

    FDG

    PS, J’ai relevé que ce type de demande a déjà été formulée :

    Création de rédacteurs et de visiteurs identifiés :

    • 2 avril 18:20 , par J Christophe
    • 10 février 19:17 , par Jean Luc Girard

    Création de mots-clés :
    2 mai 2007 10:56

    • Avec la version de SPIP 2.0.0 bêta + plugin autorité, un administrateur restreint peut créer un mot clé, par contre s’il veut rechercher un mot clé existant pour l’associer à un article/site référencé (champ de saisie + bouton Chercher), il se fait jeter avec le message « editer_interdit ».

      Les mots clés étant très utiles, ce serait effectivement bien que les administrateurs restreints puissent les créer, éditer, associer sans restrictions.

    • Jean Christophe

      En effet j’ai aussi ce besoin qu’un admin restreint puisse créer des auteurs.

      Et j’aimerais bien aussi qu’on puis permettre à un rédacteur de modifier ses articles tant qu’il ne sont pas publiés, donc qu’il puisse le repasser de « proposé » à « en cours de redaction »

      J’ai bien essayé de regarder le code mais mes connaissances en php étant très proche de zéro ...

      Merci d’avance donc à qui voudra bien nous coder ça. (dit-il, plein d’espoir ...)

    Répondre à ce message

  • Bonjour,

    Assez étrangement, j’ai un comportement bizarre de SPIP par rapport aux admins restreints et les mots-clés.

    Si je demande que ces derniers puissent les gérer, il n’y a aucun lien vers les mots-clés sur leur interface privée, par contre, si on rentre l’adresse de la page de gestion des mots-clés, ils peuvent y aller et les gérer sans soucis.

    C’est d’autant pus bizarre que les rédacteurs eux, ont un lien pour y aller…

    Répondre à ce message

  • Bonjour
    sur spip 2.0 avec plugin v092 25251

    Un admin restreint ne peut créer ou modifier de rubriques dans son espace restreint.
    A moins de choisir le paramétre
    « les mêmes droits que tous les administrateurs ».

    Dès lors, il a la possibilité de créer des rubriques hors de son espace retreint...

    Répondre à ce message

  • Bonjour
    Version : 0.9.2 [23058]
    avec un SPIP 2.0.0 rc1 [13283]

    dans la Configuration des auteurs
    « A la création d’un auteur, quel est le statut par défaut ? »
    impossible de mettre admin, le champ revient toujours à visiteur après avoir validé.

    une idée ?

    Répondre à ce message

  • Bonjour,

    Et merci pour ce plug-in bien utile :) .

    Sur une installation à base de SPIP 2.0.0 rc1 [13443] avec Autorité en version 0.9.2 [23058], je ne peux pas éviter que les administrateurs puissent éditer la fiche auteur du webmestre. Ils peuvent donc remplacer son mot de passe...

    C’est mieux d’évoluer dans la confiance évidemment, mais je préfèrerais isoler vraiment les webmestres pour éviter les bêtises, et pouvoir ensuite promouvoir des administrateurs le moment venu.

    Est-ce normal, ou ai-je mal compris quelque chose ?

    Merci pour vos réponses.

    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