SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Auteurs et Authentification > Personnalisation des droits > Autorité

Le plugin « Autorité »

dimanche 20 mai 2007, par Fil. Dernier ajout jeudi 23 août 2007


Ce plugin permet de configurer des « autorisations » différentes des autorisations 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 :

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

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

Compatibilité

La quasi-totalité des réglages nécessitent de travailler avec la branche de développement de SPIP ; 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 :

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 :

Documents joints

Notes

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


Répondre à cet article

  • Le plugin « Autorité »

    4 juillet 2008 22:01, par Jacques

    bonsoir,

    ce plugin m’intéresse au plus au point mais lorsque j’active celui-ci, j’ai ça qui s’affiche à la place de la barre d’icône du haut (partie privée bien sûr) :

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

    comprenez vous ce qui peut se passer ? je suis sous spip 1.9.2 alternatives. merci de votre aide !

    Jacques

    Répondre à ce message

    • Le plugin « Autorité » 7 août 2008 03:57, par Marc de Beaumont

      Bonjour,

      J’ai le même message. J’avais commencé à récupérer le zip de CFG sur la page : http://www.spip-contrib.net/Coder-u... en bas : "cfg en zip" et cela ne marchait pas du tout, avec 6 fois le message : /!\ Fichier absent : ../plugins/cfg/cfg_pipeline.php .

      Comme c’était apparemment une version très récente 4 juillet 08, j’ai pris une version de CFG trouvée à deux endroits différents, qui marche beaucoup mieux (possibilité de renseigner les champs de l’interface des plugins autorité et crayon), mais j’ai ce message d’avertissement (Wrong datatype for second argument in... même ligne 45) de nombreuses fois.

      La partie du code de composer.php concernée est apparemment :

      // si squelette est deja en memoire (INCLURE  a repetition)
              if (function_exists($nom))
                      return $nom;

              $phpfile = sous_repertoire(_DIR_SKELS) . $nom . '.php';

              // si squelette est deja compile et perenne, le charger
              if (!squelette_obsolete($phpfile, $sourcefile)
              AND lire_fichier ($phpfile, $contenu,
              array('critique' => 'oui', 'phpcheck' => 'oui')))
                      eval('?'.'>'.$contenu);

              if (@file_exists($fonc = $squelette . '_fonctions'.'.php')
              OR @file_exists($fonc = $squelette . '_fonctions'.'.php3')) {
                      include_once $fonc;
              }

              // tester si le eval ci-dessus a mis le squelette en memoire

              if (function_exists($nom)) return $nom;

      Mais je ne vois pas très bien où se trouve le pb.

      je suis sous spip 1.9.2d, et je n’ai que ces plugins. Je suis repassé à tout hasard aux urls "spip.php?article3" (j’étais en propres QS, étant chez Free.fr) mais sans succès.

      Help ! merci

      Répondre à ce message

      • Le plugin « Autorité » 7 août 2008 14:18, par marcimat

        Merci d’indiquer systématiquement les versions des plugins.

        Si vous avez mis à jour soit CFG, soit Autorité, il faut mettre les deux à jour. Si l’erreur apparait avec CFG (>=1.9.x) et autorité (0.9.2) à jour, alors c’est qu’il y a un problème.

        Ce problème apparait (de mémoire) avec CFG >= 1.9 et les autres plugins non mis à jour.

        Pour info, j’ai supprimé un petit hack de CFG, qui était utilisé par certains plugins dont autorité, que j’ai alors mis à jour.

        Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    3 juin 2008 16:50, par bouboulou

    Bonjour,

    J’ai pourtant coché la case permettant l’auteur de modifier son adresse mail. Pour une personne de statut rédacteur. Ce n’est pas possible. Pouvez-vous m’aider s’il vous plaît ?

    Merci d’avance

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    11 décembre 2007 12:09, par Domi

    Avec ce plugin serait-il possible de permettre à un rédacteur de valider lui-même la publication de son article sans passer par l’administrateur ? Merci.

    Répondre à ce message

    • Le plugin « Autorité » 11 décembre 2007 15:49

      Pour le moment non, mais ça ne devrait pas être très compliqué à ajouter.

      Répondre à ce message

      • Le plugin « Autorité » 11 décembre 2007 19:37, par Domi

        Personnellement je ne suis pas un développeur de SPIP mais un simple utilisateur débutant...

        Je crois que je vais me contenter pour l’instant de nommer mes participants "administrateurs de rubrique" en leur expliquant bien qu’il ne faut pas qu’ils aillent mettre leur nez partout.

        S’ils sont sages, ça devrait aller !

         ;o))

        A +

        Répondre à ce message

    • Le plugin « Autorité » 4 février 2008 12:02, par FireWolf

      Bonjour,

      Effectivement ça serait top si on pouvait donner au rédacteurs le droit de publier eux même les articles. Très pratique pour les petites site dont le contenu et géré par 1 seul personne.

      Y-a-t-il une wish list quelque part pour ce plugin ?

      Répondre à ce message

      • Le plugin « Autorité » 8 mars 2008 22:41

        Bonsoir, et le top du top ça serait que non seulement, un auteur puisse publier lui même son papier mais qu’en plus un webmestre ou un administrateur complet puisse lui imposer de le faire dans une seule rubrique (ou plusieurs rubriques) mais pas dans toutes et à fortiori pas n’importe où...

        Alors là, on atteindrait le nirvana :o)

        Je teste ce plugin et je le trouve vraiment très prometteur, je salive, je salive :o) Il faut continuer à le développer.

        Merci

        Frédéric

        Répondre à ce message

        • Le plugin « Autorité » 22 mars 2008 15:53, par JamesNicolas

          Et bien il est possible qu’un utilisateur publie les brèves et articles il me smble. Il faut simplement modifier deux lignes de codes du plugins :

          Dans inc/autoriser.php Environ l 200

          ##
          ## autoriser_rubrique_publierdans
          ##
          .
          .
          .

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

          Il faut enlever tout ce qui tourne autour de ça (et qui empêche le code de fonctionner) (on peut aussi mettre "6forum" au lieu de "1comite"

          Et dans fonds/cfg_autorite.html l 470 environ, enlever ce qui entoure

                  <option value="15"[ selected="(#ENV{publierdans}|=={15}|?{selected})"]>Les r&#233;dacteurs</option>

          Ainsi en allant sur CFG > autorité dans la partie privée, vous pourrez dans la partie "Qui peut publier sur le site?" avoir le menu déroulant présentant "Les rédacteurs", ceux-ci pourront alors publier dans le site.

          Cependant, une chose… vous devrez faire cette manip’ à chaque fois que vous mettrez à jour complètement le plugin. Il serait donc bien, si on pouvait enlever cette "sécurité parce que refaire celle-ci à chaque fois est assez long^^

          Répondre à ce message

          • Le plugin « Autorité » 17 avril 2008 13:53, par peetdu

            Merci pour ces infos. Ca marche !

            Un petit bémol toutefois : en laissant la possibilité aux rédacteurs de publier leurs propres articles, ils deviennent également capable de modifier tous les articles, même ceux qui ne sont pas les leurs !!

            Ligne 213 du fichier autoriser.php, le code source précise :

            // cas du redacteur : attention, il faut verifier
            // aussi qu’il est l’auteur de l’objet publie...

            Mais le code PHP qui permettrait de faire ça n’est pas présent. Et là je cale.

            Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    5 avril 2008 16:42, par Rosell

    Bonjour

    Nouveau venu dans le monde merveilleux de SPIP, je cherche une solution pour que chaque rédacteur est accès à une ou plusieurs rubriques que le webmestre aura défini.

    Par exemple, dans le cas d’un site multi associatif, le rédacteur du club de foot peut proposer un article dans la rubrique FOOT mais je ne veux pas qu’il puisse proposer un article dans la rubrique BIBLIOTHEQUE.

    Je pensais que AUTORITE pouvait m’aider mais d’après mes tests, un auteur à qui j’ai restreint l’accès à FOOT peut quand même rédiger un article dans BIBLIOTHEQUE. Est-ce normal ? Suis-je passé à coté de quelque chose.

    PS : Je précise que je n’utilise pas de "crayons". Les modifications se font via l’espace privé (./mon_site/ecrire/).

    Répondre à ce message

    Retour au début des forums

  • Proposition

    2 avril 2008 18:20, par J Christophe

    Puisque tu fais un appel aux propositions dans ton article, il y a une fonctionnalité qui m’intéresserait, c’est qu’un rédacteur puisse remettre "en cours de rédaction" un article qu’il a "proposé à l’évaluation", voire qui a été publié, mais tout en continuant à lui refuser le droit de publication.

    En effet, il n’y a qu’une fois qu’on est sorti du mode "rédaction" que l’on peut visualiser en ligne et c’est parfois là qu’on se rend compte d’une erreur, d’un manque ou d’un souci quelconque. Même en prévisualisant avec la barre typo enrichie, on peut louper des choses.

    Et c’est vrai que, comme on l’a proposé dans un autre message, je trouverais bien également qu’un administrateur restreint puisse créer un nouvel auteur, au moins avec le statut de rédacteur. Si même on pouvait restreindre à ce choix unique, ce serait pour moi l’idéal.

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Après avoir installé le plugin "autorité", les auteurs auxquels j’ai donné les droits de modifier leurs articles ne peuvent plus les modifier avec fckeditor. La fenêtre de fckeditor s’ouvre mais le contenu de l’article n’y apparait pas : la fenêtre de fckeditor contient uniquement le menu des boutons relatifs à la mise en forme et un espace blanc où devrait s’afficher le texte déjà présent dans l’article. Il en est de même pour les administrateurs.

    Les deux plugins sont-ils incompatibles ?

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    10 février 2008 19:17, par JLuc

    Tu demandes des suggestions, en voici une :

    permettre de paramétrer plus finement les droits des administrateurs restreints ;

    par exemple, la création d’auteurs.

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    5 février 2008 14:33, par Charles

    Bonjour merci pour ce plugin essentiel

    Néanmoins j’ai un souci.

    Quand je vais dans la config du plugins dans cfg j’obtiens le message d’erreur "Impossible de lire fonds/cfg_autorite.html". J’ai bien vidé le cache comme demandé mais ça ne marche pas.

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Autorité »

    23 décembre 2007 00:14, par JamesNicolas

    Je souhaiterai juste signaler que la ligne 145 dans autoriser.php semblerait comporter une erreur. En neffet quand je remplace sql_count par spip_num_rows cela fonctionne beaucoup mieux...

    Répondre à ce message

    • Le plugin « Autorité » 23 décembre 2007 18:40, par Fil

      Ta version n’est pas à jour car, sauf erreur de ma part, on a bien sql_count() depuis la révision 17210

      Répondre à ce message

      • Le plugin « Autorité » 24 décembre 2007 08:05, par JamesNicolas

        euh justement là est mon problème en mettant à la ligne 145 sql_count() ça ne fonctionne pas !

        Par contre en mettant spip_num_rows() là ça fonctionne... je ne sais pas pourquoi mais c’est ainsi^^

        Répondre à ce message

        • Le plugin « Autorité » 24 décembre 2007 18:25, par Fil

          Ah !! Alors c’est ta version de SPIP qui n’est pas à jour

          Répondre à ce message

          • Le plugin « Autorité » 24 décembre 2007 19:09, par JamesNicolas

            la version 1.9.2.c [10268] n’est pas suffisante ? (tout en sachant que le plugin marche à merveille juste en modifiant cette ligne^^)

            Bon Noël !

            Répondre à ce message

          • Le plugin « Autorité » 31 décembre 2007 18:47, par Beurt

            Je confirme les propos de jamesNicolas, dans un SPIP 1.9.2c [10268], la fonction sql_count n’est pas définie (pas de trace dans son code), donc Autorité (dans ses dernières version) ne fonctionne plus...

            Sa modif le rend fonctionnel.

            Répondre à ce message

            • Le plugin « Autorité » 26 janvier 2008 12:11, par Fil

              En effet il manquait la clé de compatibilité pour cette fonction, ça devrait être réglé en http://zone.spip.org/trac/spip-zone...

              Répondre à ce message

              • Le plugin « Autorité » 26 janvier 2008 20:07, par JamesNicolas

                Merci beaucoup !

                Il y aurait aussi un autre problème. Un rédacteur en passant par les crayons n’arrive pas à modifier le texte car la page est rechargée en SPIP 1.9.3 dev [11061]. Faut-il une version plus élevée de dev ou est-ce autre chose ?

                Je souhaiterais aussi savoir quelque chose... à côté des brèves il est marqué qu’un rédacteur peut la modifier, or il tombe sur une page interdite en essayant de la modifier. Est-ce normal qu’il voit un bouton lui permettant de modifier la brève ? Serait-il possible de lui donner les autorisations pour qu’il puisse modifier une brève déjà publiée ?

                S’il faut que je m’explique plus clairement, dites le moi ou écrivez moi sur mon mail.

                Répondre à ce message

    Retour au début des forums

  • avec 1.9.2a

    8 janvier 2008 16:28, par Thomas

    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

    Retour au début des forums

0 | 25 | 50 | 75



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net