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

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

    Répondre à ce 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

    Répondre à ce 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...

    Répondre à ce message

  • 1

    D’abord, merci pour ce plugin. Dans certains types d’utilisation les droits par défaut de SPIP ne sont pas psychorigides, ils sont invivables !

    Config : SPIP 2.1.8 ; Autorité 0.9.8 (j’ai essayé aussi Autorité 0.1.0 avec les mêmes résultats).

    J’arrive sans problème à modifier certains droits (par exemple autoriser l’auteur d’un forum à le modifier, autoriser l’auteur d’un article à le modifier), mais ce qui m’intéresse c’est autoriser les rédacteurs à publier leur article au au moins élargir le droit de publication des admins restreints à l’ensemble du site. Ces réglages semblent bien s’enregistrer sur la page de configuration du plugin, mais sont sans effet sur la page article.

    En bidouillant directement le code de ecrire/inc/autoriser.php j’arrive à mes fins, mais je dois désactiver le plugin vu qu’il surcharge cette fonction. Ais-je loupé quelque chose ?

    • Je me réponds ; -)

      Pour la fonction : « autoriser_rubrique_publierdans » du plugin (surcharge)
      Même en décommentant :

      /*	 
      	if (($GLOBALS['autorite']['publierdans'] & 8)
      		&& ($qui['statut'] == '1comite'))
      			return true;
      	*/

      Cela n’autorise toujours pas les rédacteurs à publier !

      Quand à :

      if (($GLOBALS['autorite']['publierdans'] & 4)	
      		&& ($qui['statut'] == '0minirezo')
      		&& ($qui['restreint'] AND $id AND in_array($id, $qui['restreint'])))
      			return true;

      Je n’arrive pas à voir où l’autorisation de publier dans TOUTES les rubriques est prise en compte...

    Répondre à ce message

  • 16

    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

    • Est-ce que tu ne confonds pas les statuts « webmestre » (équivalent d’accès FTP) et « admin » (droit de tout publier) ? Par ailleurs avec Autorité les simples « rédacteurs » peuvent modifier leurs articles en ligne (mais à priori pas publier).

      Pour ce qui est du CFG qui ne marche pas je ne sais pas ce qui peut se passer. As-tu vidé le cache ?

    • bonjour et merci pour ta réponse,

      non je ne confonds surtout pas puisque le soucis justement, c’est que par défaut, le plugin m’a mis tous les administrateurs qui peuvent modifier le site, impossible de changer sur « webmaster » seulement. De plus, je dois mettre certains rédacteurs en administrateur car j’ai besoin qu’il valident eux-même les articles, ce sont eux qui font tourner le site.

      Ce que je te propose, c’est de te donner un accès administrateur pour que tu puisses voir directement dans mon admin si tu veux.

      Car le problème reste toujours, je ne peux rien changer dans la config de ce plugin, et ce sur tous les sites en version 2.1.10.

    • et oui j’ai vidé le cache plusieurs fois après avoir lu quelques soucis similaires sur le problème, ça n’a rien changé.

    • ah ok… essaie déjà de vider le répertoire tmp/ par ftp; ensuite si rien ne va envoie-moi les codes par email à fil@rezo.net, je regarderai dans la journée

    • je suis en train de vider, j’espère que ça ne va pas plomber le site, car ça va faire beaucoup de cache à refaire, à chaque fois ça fait ramer voire exploser le site... mais bon, il faut bien que ça marche, donc je vide... je reviens vers toi ensuite, merci beaucoup pour ton aide, car là je craque, ça fait plusieurs jours que je suis dessus sans pouvoir avancer et avec donc de gros soucis de sécurité en admin...

    • C’est super long... je vide depuis tout à l’heure, mais j’en suis qu’au cache 7...

    • pfff... j’aurais du passer par ssh car j’en suis qu’à f...

    • Bon ça y’est, c’est vidé, mais le problème est toujours là... Je t’écris donc pour te donner des accès webmestre...

    • Vérifications faites c’est la version 0.9.9 qui se révèle incompatible avec SPIP 2.1 ; il faut revenir en 0.9.8 le temps qu’on répare le bug. Merci de ta patience

    • Bonjour

      merci mille fois, car je tournais bien en rond..

      Je vais donc installer l’ancienne version en attendant.

      Excellente journée

    • Nickel ça fonctionne ! cool :-) merci merci !

    • La version 0.9.10 du plugin rétablit le fonctionnement du plugin avec CFG+SPIP 2.1

    • ah ok super, j’essaierai donc la nouvelle version. Merci pour l’info

    • Bonjour,

      j’ai l’impression que le bug que vous évoquez ici est également présent dans la configurations suivante :
      SPIP Version : 2.0.11 [15690]
      CFG Version : 1.16.0 [49254]
      Autorité Version : 0.9.10 [49959]

      Lors de la sauvegarde de mes paramètres on revient en haut de l’écran avec un message vert indiquant que tout est pris en compte mais toutes les cases que j’ai coché se sont décochées.
      En switchant sur un compte rédacteur je me rend compte que contrairement à ce que j’ai paramétré, il n’a pas accès aux stats ni à la création de mots clés.

      Je vais tenter de basculer sur une 0.9.8 d’Autorité du coup.

    • Sauf que les anciennes versions d’Autorité ne semblent pas disponibles... :-/
      http://files.spip.org/spip-zone/

    • Bon après installation de TortoiseSVN j’ai récupéré la 0.9.8.
      Et tout fonctionne normalement.

      La 0.9.10 semble donc présenter un bug avec les versions de SPIP et CFG ci-dessus.

    Répondre à ce message

  • 2
    Christian Julia

    Bonjour,
    Question naïve sûrement : comment récupère-t-on la version précédente 0.9.8 du plugin Autorité ? Merci.

    • La version 0.9.10 du plugin (disponible au prochain passage de l’empaqueteur) rétablit le fonctionnement du plugin avec CFG+SPIP 2.1

    • Christian Julia

      Merci de m’avoir répondu mais je ne suis pas sûr d’avoir compris la réponse. Désolé.

    Répondre à ce message

  • 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

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