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

  • Salut à tous,

    j’utilise 1.9.2a et je veux pouvoir donner le droit aux rédacteur de modifier leur article publié. C’est ce qui est compatible d’après cet article. J’ai également la toute dernière version téléchargée ce jour de cfg.

    Bon, les fonctionnalités sont prises en compte sauf que les auteurs ne peuvent plus rien visualiser, nin sur leur page d’accueil « a suivre » ni en voulant ouvrir leurs articles.

    Dois-je absolument upgrader mon spip ou bien y a-t-il une solution toute simple ?

    Merci d’avance,
    Thomas

    Répondre à ce message

  • 2
    Fan de MultiSaisons

    Ce plugin me pose des pbs d’affichage et d’accès à certaines pages de l’espace privé (modification de vieux articles, sauvegarde de la base de données). Au lieu que les dites pages ne s’affichent j’ai une page blanche.

    Tout rentre dans l’ordre si je le désactive.

    Je suis chez free (et n’ai pas le choix de l’hébergeur), en spip 1.9.2c.
    J’ai testé la version du plugin du 28 août comme celle du 20 octobre et j’ai le même problème.

    Rien à signaler sur la partie publique...

    http://aikidobudoclub.free.fr

    • Bonjour,

      J’envisage d’essayer ce plugin avec la même configuration (free et 1.9.2 c). Depuis octobre avez-vous résolu ces problèmes ?

      merci.

      Domi

    • Comme il est dit ci-dessus : « la quasi-totalité des réglages nécessitent de travailler avec la branche de développement de SPIP »

    Répondre à ce message

  • 3

    J’ai trouvé un petit os : j’aurais aimé par exemple ne pas toucher au statut de l’internaute. hors si je veux activer autorité je dois faire un choix : ou auteur par défaut ou visiteur par défaut. Perso j’aurais aimé laisser ce choix à l’internaute.

    ne pourrait-on pas avoir une possibilité de plus ?
    -  visiteur par défaut
    -  auteur par défaut
    -  aux choix de l’internaute, (ne pas agir)

    Parce que là je ne peux valider les autres fonctions sans faire ce choix contraignant pour moi.

    • Je ne comprend pas trop la question. Il me semble qu’avec ou sans le plugin, c’est pareil ?

      Et comme qui peut le plus peut le moins, pourquoi un internaute choisirait-il d’être « visiteur » s’il peut être « rédacteur » ?

    • Si “autorité” est configuré rédacteur par défaut, alors un visiteur qui s’inscrirait avec“spip-list” ne recevrait pas de statut dans spip. Idem dans un sens contraire : si “autorité” est en visiteur par défaut alors l’internaute qui s’inscrirait comme rédacteur n’aurait pas de statut.

      Même un admin ne peut pas modifier ce statut : il n’apparait pas dans les listes d’auteurs ou de visiteurs sous spip. Du coup c’est ennuyeux.

    • Demande peut-être chez « SPIP-List » car je ne vois pas du tout de quoi tu parles

    Répondre à ce message

  • 1

    Lors de l’accès à la config du plugin, spip me renvoi :

    Erreur...
    Fichier exec/cfg introuvable

    Incompatibilité ou erreur de ma part ?

    Répondre à ce message

  • Alain Sichel

    Je n’arrive pas à faire fonctionner le plugin Autorité (0.9.1) sur un site en 1.9.2c, même en n’activant pas d’autre plugin que cfg, je n’obtiens qu’une liste de messages d’erreur et je ne trouve pas l’origine de ce problème :

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /home/lescentr/www/ecrire/public/composer.php(48) : eval()’d code on line 45

    J’ai exactement le même problème sur un autre site passé récemment de la version 1.8.3 à 1.9.2b

    Répondre à ce message

  • 2

    Ce plugin me semble effectivement très intéressant et ouvrir pas mal de possibilités ...
    Mon besoin est le suivant : Que des rédacteurs puissent modifier leurs articles mais que ces corrections soient obligatoirement validées par un admin (restreint ou pas) avant publication.

    J’ai l’impression que cela n’est pas prévu ... mais je me trompe peut-être ... Merci.

    • Dans le schéma actuel, un article est toujours dans son état « courant ».

      On pourrait peut-être envisager un formulaire de proposition de modifs qui irait remplir la table spip_versions, avec possibilité ensuite de valider ces propositions, mais 1) ça n’est pas fait, et ça risque d’être relativement difficile à faire 2) ce n’est pas directement lié au plugin Autorité (la question des droits est secondaire).

    • Cela semble effectivement compliqué.
      Je vais regarder. Merci pour votre réponse.

    Répondre à ce message

  • 1

    Tout d’abord merci pour ce plugin très utile.

    Je ne sais pas si c’est possible mais j’ai besoin de modifier les droits des administrateurs restreints : je ne veux pas qu’il puisse modifier les droits des rédacteurs. Est-ce que c’est possible ?

    Dans la config je n’ai pas autorisé les sauvegardes pour les administrateurs restreints et pourtant cette option apparait pour eux ..

    Ma version de SPIP est SPIP 1.9.2b [9381] et bientôt 1.9.2c..

    merci

    catherine

    • Comme indiqué dans l’article : « seul le réglage auteur modifie article est compatible avec SPIP 1.9.2 ». Le reste concerne la branche développement de SPIP 1.9.3.

    Répondre à ce message

  • Merci c’est exactement c dont j’avais besoin principaement pour la onction de modification d’article pour les redacteurs.
    Par contre j’ai un bug : lorsque un redacteur veut ajouter un logo ou un document à partir d’une page type : http://www.site.com/ecrire/?exec=articles&id_article=8
    tout fonctionne mais il y a un problème avec ajax qui ne charge pas les nouvelles images ou docs sans qu’on rafraichisse la page.
    J’utilise certe une version 1.9.2 mais étant donné que ce rafraichissement automatique par ajax fonctionne en temps normal je pense qu’il doit y avoir un bug. Je change de version de spip tout de même dans la journée pour m’en assurer.

    Répondre à ce message

  • 6

    Bonjour,

    Ne le prenez pas mal ce que je vais vous dire, c’est très sympa d’avoir fait SPIP, d’avoir fait le plugin Autorité. J’ai quand même des critiques à vous soumettre, ce n’est pas par méchanceté, juste un retour d’impressions.

    J’ai l’impression que cela vient du fait que, dès le départ, les droits d’accès étaient mal définis.

    -  Un rédacteur, par définition, est là pour rédiger des articles. Mais aussi modifier les articles existants, les articles en cours de rédaction et les articles proposés, non ? Pourquoi ne peu-on pas appliquer ces autorisations ?
    -  Certains diront que dans ce cas, on peut les définir administrateurs. Mais là, c’est la pagaille, les administrateurs (même restreints) peuvent modifier les comptes des autres utilisateur, ce qui n’a plus rien à voir avec le statut du « Rédacteur » !
    -  Les administrateurs ne peuvent toujours pas modifier un article en cours de rédaction créé par un autre utilisateurs. Et quand à la rédaction collective ? N’était-ce pas justement le but de SPIP ?
    -  Pourquoi les administrateurs et les rédacteurs ne peuvent-ils pas avoir une clé PGP définie dans leur profil ?
    -  Il existe aussi un certain nombre de bugs, on clique sur un lien et on tombe sur un « Accès interdit » - Quelle utilité de mettre un lien dans ce cas ? C’est sans doute le plugin Autorité qui fait ça.

    Moi, tout ce que je voulais, c’est d’avoir un site où les articles sont rédigés par plusieurs rédacteurs, et une fois qu’ils sont prêts, ils sont proposés à l’évaluation, et, enfin, validés pour la publication par les administrateurs. La gestion des versions (qui existe dans SPIP) est incontournable dans ce cas.

    Et aussi, il paraît intéressant de laisser les rédacteurs modifier les articles déjà publiés, mais faire en sorte que les administrateurs valident ces changements pour les rendre publics.

    Moi je pense comme ça. Pensez-vous autrement ou alros c’est juste une question de temps de développement ?

    • Merci pour ce commentaire, même si j’ai du mal à démêler le troll, les bugs et les demandes de fonctionnalités

      Peux-tu préciser les bugs rencontrés (accès interdit, ok, mais sur quelles pages et en partant de quel lien ? et quelle version de SPIP utilises-tu ?)

      Pour ce qui est du modèle que tu envisages, il semble manquer :
      -  le droit pour un rédacteur de modifier un article dont il n’est pas signataire (facile à faire)
      -  le système de validation de corrections sur un article publié (ça c’est un peu plus dur)

    • Fil, j’ai cliqué sur le lien « Prévisualiser » d’une page proposée à l’évaluation faite par un administrateur, alors que j’étais connecté en tant que rédacteur. Le plugin Autorité était configuré pour accepter les modifications des articles proposés à l’évaluation par les rédacteurs. Résultat : une page avec « Accès interdit ». (Version SPIP 1.9.2 je crois ou alors la 1.9.3 mais je ne pense pas)

      Je m’excuse si tu prends mal mon quelconque propos, sache que c’est involontaire, l’unique but étant de passez une critique (que l’on la néglige ou pas, de toute façon ça ne coute rien).

      Quand à moi j’ai compris que Spip ne couvrait que partiellement mon projet, c’est pourquoi je vais repartir du début pour faire une applications plus adaptée.

      Bonne journée
      Sacha

    • Je viens d’essayer le scénario que tu indiques (je suis rédacteur, je propose mon article, je le prévisualise et j’active les crayons), et, sur la version de dév, je n’ai pas d’accès interdit.

    • stef d’art-lo

      Un truc qui me gêne un peu : avec crayon et autorité, le webmestre, l’admin, l’auteur et le forumeur enregistré peuvent modifier un message. Mais l’admin restreint lui ne peut pas, et celà même s’il est auteur de l’article qui est dans sa rubrique. Me trompe-je ?

    • Tout le code est sur la zone, tu peux l’améliorer. Personnellement je n’ai jamais senti ce statut d’admin restreint ; ça peut expliquer pourquoi il y a des oublis :)

    • stef d’art-lo

      Ok j’essaierai de ne pas tout péter.

    Répondre à ce message

  • 1
    cedric

    Ha ! Fil !

    Je l’attendais avec impatience ce plugin !

    Je te remerci chaleureusement ;

    Je le teste dès que j’ai du temps !

    MERCI !!!!

    • Juste dommage qu’il ne soit pas (ou tres peu) compatible avec Spip 1.9.2.B.

    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