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

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.

Dernière modification de cette page le 14 février 2019

Discussion

126 discussions

  • 2

    Bonjour, je ne sais pas si il y a un truc que j’ai pas du tout compris ou si j’ai un bug, mais à la page « ecrire/ ?exec=cfg&cfg=autorite » je n’ai accès à aucun réglage.

    On me dit que je suis le webmestre et que seul moi peut y accéder à moins de changer dans mes options et en dessous il y a la mention « Aucun champ trouvé dans autorite » et c’est tout, rien dans la colonne centrale de l’admin.

    Je suis sous SPIP 1.9.2f

    Quelqu’un pourrait m’éclairer ?

    Merci d’avance.

    • Bonjour

      j’essaie désespérément de faire les réglages via cfg, version supérieure à celle indiquée, et sur tous les SPIP en 2.1.10 ce plugin ne fonctionne pas pour moi. Impossible de valider quoi que ce soit, ça me renvoie en haut de page à chaque fois que je clique sur valider. Je suis bien l’auteur 1, j’ai essayé d’ajouter le DEFINE avec mon id dans config, ça n’a rien changé à par que sur Chrome toutes mes pages renvoyaient sur la page d’accueil, ce qui m’a fait halluciner...

      Je précise que j’ai essayé sur chrome, FF, IE... même histoire...

      enfin bref, comment faire fonctionner ce plugin car là j’ai vraiment un soucis, tous les webmasters peuvent avoir accès à la config du site... et si je ne les mets pas en statut webmaster, ils ne peuvent pas publier directement, ce qui est obligatoire pour mes sites...

      Quelqu’un aurait-il un début de solution ou même LA solution ?

      Je vous remercie

    • PS : comment on fait pour pouvoir être avertie des réponses ici ?

    Répondre à ce message

  • 1

    Bonjour,
    sous spip 2.1.9, je rencontre un souci avec le plugin.
    J’ai deux rubriques principales qui comportent des sous-rubriques. En voici la structure :

    Particuliers
    Entreprises
    >Entreprise 1
    >Entreprise 2

    La case « Rédacteur modifie proposés » est décochée au niveau de la configuration et « Administrateurs restreints ? » est mis sur « droits limités à ces rubriques ». J’ai créé deux rédacteurs : entreprise1 et entreprise2. J’ai restreint l’utilisateur « entreprise1 » à la rubrique « Entreprise 1 ». Lorsqu’il tente de créer un article dans « Particuliers », il ne peut pas le publier (jusqu’ici tout fonctionne même si j’aurais préféré qu’il ne puisse pas y créer d’articles du tout). Par contre le souci est que dans la sous-rubrique « Entreprise 2 » (et dans « Entreprises ») il peut créer un article et le publier, alors qu’il ne devrait pas.

    Qu’ai je pu commettre comme faute ?
    Merci d’avance

    • Oubliez, j’avais coché par mégarde une case dans « espace de publication ouverte ». j’ai eu beau vérifier une dizaine de fois, je ne la voyais pas. Désolé du dérangement.

    Répondre à ce message

  • 1

    Bonjour
    Est-ce que ce plugin peut s’utiliser sur la partie publique
    J’ai actuellement plusieurs sites mutualisés dont un que je voudrais filter sur la partie publique et je me demandais si ce plugin pourrai marcher

    Répondre à ce message

  • 4

    Salut,

    Sur Autorité, j’ai un souci : Sous SPIP 2.1, si je force l’inscription des internautes comme rédacteurs, cela ne fonctionne pas chez moi. Quand ils s’inscrivent ils sont toujours inscrit comme visiteurs.

    • Jean-Noël

      Regarde si tu as configuré pour accepter les rédacteurs, dans la partie privée Configuration -> interactivité

      Sinon, les inscriptions devraient être par défaut « rédacteur », mais tu peux peut-être « forcer » en ajoutant un argument à la balise formulaire

      #FORMULAIRE_INSCRIPTION{1comite}

      Pour info.... en passant...

      Sur un site en développement, je veux que ceux qui s’inscrivent soient administrateurs restreints d’une nouvelle rubrique. Je donne donc le statut administrateur avec

      #FORMULAIRE_INSCRIPTION{0minirezo}

      Que je transforme simultanément en admin restreint d’une rubrique créée lors de l’instription en rajoutant le code suivant dans le fichier inscription.php (après la ligne 110 - bidouille avec l’aide de Maïeul en attendant de faire plus propre sous forme de plugin)

              $id_rubrique = sql_insertq("spip_rubriques", array( 'titre'=> _T('titre_par_defaut'), 'id_secteur'=> 0));
              sql_update("spip_rubriques",array("id_secteur"=>$id_rubrique), "id_rubrique=".$id_rubrique);
      
      //rubriques à la racine où id_rubrique = id_secteur
      
              sql_insertq('spip_auteurs_rubriques', array(
                      'id_auteur' => $desc['id_auteur'],
                      'id_rubrique' => $id_rubrique));

      *** ’titre’=> _T(’titre_par_defaut’), dans ce cas, je donne un titre par défaut autre que « nouvelle rubrique » aux rubriques ainsi créées, modifiable par le titulaire de la rubrique

      Ceci crée la nouvelle rubrique et renseigne la table spip_auteurs_rubriques, avec cette nouvelle rubrique et le nouvel auteur

    • J’ai bien configuré le tout pour accepter les rédacteurs dans la partie privée sous configuration et interactivité. C’est la première chose que j’ai regardé.

    • As-tu essayé de forcer les choses en ajoutant un argument à la balise formulaire_inscription
      #FORMULAIRE_INSCRIPTION{1comite}

    • Plutôt que de jouer sur formulaire inscription, dont le mode peut être autre chose, ( http://trac.spip.org/browser/ecrire/balise/formulaire_forum.php?rev=410ba15a571d4eaa434dd6a46793ae70ca62b5ec ) j’ai réparé http://zone.spip.org/trac/spip-zone/changeset/46863 la liste déroulante qui permet le forçage de l’inscription en rédacteur. La validation est maintenant mémorisée. A noter que ça ne fonctionne pas avec une inscription au travers un formulaire d’inscription aux forums.

    Répondre à ce message

  • 3

    Bonjour

    Je gère un site inter-associatif (réseau social) , j’ai installé le plugin autorité.
    Mais je rencontre les problèmes suivants :

    Le site est semi-public, à savoir
    -  les professionnels peuvent tout lire
    -  certains professionnels sont rédacteurs ou administrateurs
    -  les bénéficiaires peuvent lire seulement la partie qui les concerne

    1) je voudrais que seuls les professionnels puissent lire le contenu du site.
    J’ai créé login+mos-de-passe pour les professionnels
    mais rien n’oblige les professionnels à donner leurs identifiants ? Comment faire ?
    J’ai essayé de protéger le répertoire par login+mot de passe, mais cela crée d’énormes complications, ensuite, pour que les rédacteurs-ou-administrateurs puissent, eux, modifier le site.

    et je ne suis pas capable d’écrire le code nécessaire pour ce que je veux.

    2) je voudrais que les bénéficiaires puissent lire le contenu, mais seulement de la partie qui les concerne donc avec login et mot-de-passe simplifiés.

    En résumé :

    -  les professionnels peuvent lire tout le site
    -  les bénéficiaires peuvent lire la rubrique XX
    -  les rédacteurs peuvent écrire des articles et modifier les articles qu’ils ont écrits mais pas les mettre en ligne -
    ils peuvent aussi compléter l’agenda et le glossaire et mettre en ligne
    -  les administrateurs (complets ou restreints) peuvent écrire des articles et modifier, et mettre en ligne -
    ils peuvent aussi compléter l’agenda et le glossaire et mettre en ligne

    Est-ce que le plugin autorité permet cela ? Si oui, c’est que j’ai mal lu .... Quelqu’un peut-il m’expliquer.

    et si le plugin ne le permet pas encore, comment puis-je modifier ?

    Un grand merci d’avance car ... ça me paraît complexe !

    • Ce que tu décris correspond plus, à priori, au cahier des charges d’un plugin comme « accès restreint ». Tu définis des niveaux d’accès et des zones documentaires dédiées à chaque niveau. Autorité permet surtout de modifier les accès en écriture dans l’espace privé, selon divers profils de rédacteurs.

    • b.poiraud

      Merci de cet avis . Je vais essayer
      Une question cependant : puis-je mettre à la fois le plugin « autorité » et le plugin accès restreint ?
      ou bien y a-t-il incompatibilité ?

    • Ils sont parfaitement compatibles

    Répondre à ce message

  • 9

    Bonjour,

    Je constate qu’avec le plugin autorité installé, les admins du site n’ont pas accés au forum admin (il semblerait que seul les webmestre le puisse).

    Comment corriger cela : rendre le forum admin accessible aux admins et conserver le plugin autorité en fonctionnement.

    Merci, d’avance de vos suggestions.

    • ordilibre

      Oui en effet je confirme.
      Pour rétablir la fonctionalité, il est nécessaire d’accorder le droit administrateur dans :

      Configuration du site
      Qui peut modifier la configuration du site ?

      C’est un peut génant si on ne souhaite pas accorder aux administrateurs l’accès au bouton ’Configuration’ et leur laisser tout de même l’accès au Forum administrateur.

    • J’ai appliqué les changement que tu indiques. Cela marche très bien et effectivement les administrateurs ont maintenant accès à ce forum.

      Par contre, contrairement à ce que les commentaires du code laissent penser, ce n’est pas le cas des administrateurs restreints.
      Cela est-il conforme à ce que tu souhaitais mettre en place ?

      Quel test ajouter dans autoriser.php pour que les admins restreint puissent également aussi accéder à ce forum.

      Cordialement.

    • Il me semble pourtant que le code est bon http://trac.rezo.net/trac/spip/brow... ; l’as-tu bien reporté ?

    • J’ai pris le temps de revérifier : le code est bien reporté.

      Ce forum des admins est bien accessible à un admin restreint en tapant l’URL d’accès direct à la page.

      mais c’est le bouton secondaire "Forum des admin’ qui n’apparait pas au survol du bouton principal « Forum ».
      C’est donc probablement moins méchant, mais je reste perplexe.

      Un avis ?

    • AH oui je viens de vérifier, et la « logique » du truc est que les admins restreints n’ont aucun bouton secondaire. J’ai commencé à patcher pour résoudre ce problème, mais ça implique trop de modifs. Et comme ce sera refondu en SPIP 2.3, je préfère arrêter les frais.

      Ce que je te suggère, c’est, dans la page « forum », d’ajouter un lien vers le forum admin quand il est actif (et autorisé) : http://trac.rezo.net/trac/spip/changeset/16212

    • Merci Fil pour cette ébauche de patch ; je la garde précieusement.
      Je comprends aussi que ce n’est pas « la logique » et je vais réflechir au public visé par ce forum.

    • Le problème se pose aussi avec le Couteau Suisse. A savoir, si Autorité est activé et que seul le webmesttre peut modifier la configuration du site alors en voulant aller sur le Couteau Suisse j’obtiens le message suivant : « admin_couteau_suisse : Accès interdit »

      Merci

    • Pour autoriser l’accès au réglage du plugin couteau suisse, il faut le signaler dans conf/mes_options.php avec :

      // Définir les Webmestres supplémentaire par rapport au plugin autorité
      define ('_ID_WEBMESTRES', '2:4:11');

      2, 4 et 11 sont les id des auteurs à passer en tant que webmestre...
      On peut en mettre qu’un...

      C’est signaler au début de la page.

    Répondre à ce message

  • Bonjour
    Au risque d’être lourd ou de devoir retourner chez l’opticien je n’ai pas compris comment faire pour que les rédacteurs puissent intervenir sur tous les articles y compris ceux dont ils ne sont pas les auteurs.
    Pouvez-vous m’aider de façon très élémentaire SVP.
    Merci

    Répondre à ce message

  • Acces interdit (dater)
    En décommentant les lignes ad-hoc dans inc/autoriser, j’ai pu activer la publication des articles par les rédacteurs. Ça fonctionne très bien. Sauf pour la gestion des dates où,lorsque je fais une modification, j’ai un méchant « accès interdit » après avoir cliqué sur « changer »
    En rafraichissant la page, je peux constater que les modifications demandées sont bien effectives, mais ce message est désagréable.
    Une autorisation à rajouter quelque part ? Ajax qui joue les trouble-fêtes ?
    Une piste à proposer ?

    Merci d’avance !

    Répondre à ce message

  • 10

    J’aimerai avoir la possibilité de permettre à certains rédacteurs de confiance de publier directement (sans les nommer admins, pour que leur interface reste simple)

    Je n’ai pas vu cette fonctionnalité dans ce plugin. Comment faire ?

    • Non ce n’est pas prévu ; mais c’est assez facile à faire : il faudrait ajouter une configuration et une fonction d’autorisation.

    • Je suis vraiment intéressé, car c’est un impératif pour le projet en question.
      Peux-tu me décrire un peu plus précisément ce que tu considères qu’il faudrait effectuer car ta phrase est un vrai mystère pour moi.
      Je suis bien prêt à aider, même si je doute de pouvoir être très utile, vu ma méconnaissance de PHP.
      Au pire, je peux tester. :o/

      Cordialement.

    • Hé bien, dans le CFG tu ajoutes un élément qui permet de définir les auteurs que tu autorises à publier (il faut définir sur quel critère on se base : tous, ou par id_auteur, ou bien dès lors qu’ils ont déjà un article publié ?)...

      Et dans inc/autoriser.php tu ajoutes la fonction d’autorisation qui contrôles le rédacteur par rapport à cette configuration.

    • Génial !
      Je vais me pencher sur la piste que tu lances et jeter un oeil à « programmer avec SPIP » .
      J’espère pouvoir m’en sortir ainsi, sinon je reviendrai te tirer les vers du nez (pas sans avoir essayé, juré !).

      Cordialement.

    • Bonjour,

      Je suis à la recherche d’une fonctionnalité similaire et votre échange m’a donc interpellé.

      dut : aurais-tu réussi à construire une telle fonctionnalité ?
      fil : merci pour ces informations

    • Bonjour Romain,

      Je n’ai pas encore eu le temps d’attaquer cela, car j’ai beaucoup d’autres petits points à régler avant.
      Je te propose qu’on se recontacte directement en début de semaine prochaine pour en discuter (dut.ifrance[arobase]gmail[point]com)

      Cordialement

    • Aucun problème :-)

      J’ai commencé un peu de mon côté mais je galère ....

      J’arrive bien à faire afficher ma boîte à cocher « donner les droits de publication aux rédacteur » ... mais alors je n’arrive pas à faire « conserver la valeur ». En gros, je la coche, je soumets le formulaire mais ensuite la boîte n’est pas cocher...

      J’ai un truc de ce genre

      <input type="checkbox" name="redacteur_pub_article" [checked="(#ENV{redacteur_pub_article}|?{checked})"] />
      <:autorite:redacteur_publie_article:>

      Si Fil a une idée ;-)

      Merci de ta réponse

    • Bonjour,
      Avez-vous pu progresser sur cette fonctionnalité ?
      Merci

    • J’ai une bidouille qui marche a peu près, mais se base sur l’ajout d’un champ extra #PUBLICATION dans les auteurs.
      Quand pour un auteur ce champ est à oui et qu’une ou plusieurs rubriques lui sont attribuées, la publication directe devient possible sans passer par la validation d’un admin restreint.

      Mais cela reste amplement perfectible car nécessite des surcharges dans inc pour pouvoir permettre de spécifier les rubriques où ce droit s’applique.
      Il n’y a pas non plus de contrôle de cohérence pour vérifier que l’activation de la publication s’accompagne d’une définition des rubriques concernées. Cela reste un brouillon.

      Je n’ai absolument pas avancé sur l’interfaçage dans autorité, mais peut-être justement Romain a-t’il encore quelque chose sous le coude de ce côté.

    • Bonsoir,
      J’aimerais moi aussi pouvoir donner l’autorisation à des rédacteurs de publier leurs articles. Avez-vous pu mettre en place cette fonctionnalité ?

    Répondre à ce message

  • Bonjour,

    Je souhaite permettre aux rédacteurs (voire aux visiteurs enregistrés) d’affecter des mots-clés aux objets (via le plugin Etiquettes, par exemple), c’est à dire sur la partie publique

    J’ai sélectionné Tous les rédacteurs sur l’option ’Mots-clés : qui peut créer et éditer les mots-clés"

    J’ai sélectionner toutes les rubriques en saisie publique et en wiki

    Mais mon formulaire Étiquettes n’apparait pas sur la page publique si on est connecté en tant que rédacteur. En revanche, il est actif en tant qu’administrateur.

    J’ai certainement raté un épisode, mais pouvez-vous m’éclairer sur cette possibilité ?

    Merci d’avance

    Répondre à ce message

Ajouter un commentaire

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

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