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 et merci pour ce plugin.
    Notre site est en cours de construction et les articles sont donc presque tous dans une zone « Accès restreint ».
    Petit souci avec le plugin « Autorité » : les articles sont remplacés par une page entièrement blanche avec les comptes ayant des droits « rédacteur »..
    Si je désactive le plugin « Autorité », les articles s’affichent normalement avec un compte rédacteur.

    Merci de votre aide.

    Virginie

    Répondre à ce message

  • 1

    Bonjour et merci pour ce plugin.

    Je l’utilise pour restreindre l’accès à l’espace privé à liste des auteurs.
    Cela fonctionne sur la page « auteurs » mais la liste des auteurs avec leurs mails apparait soit lors de la lecture d’un article dans l’espace privé soit lors de la rédaction d’article avec l’ajout d’auteurs, du coup la restriction ne va plus.

    Merci

    Répondre à ce message

  • 1
    Caroline

    Bonjour, est-ce qu’une mise à jour pour Spip 4.0 est prévue ? J’ai du mal à gérer mon site sans cet excellent plugin :)

    Répondre à ce message

  • 4

    Bonjour,

    Suite au passage de mon site en https, le plugin autorité ne fonctionne plus correctement. Je trouve ça étrange et je pense que cela doit être un conflit avec autre chose car sur au autre site passé également en https, le plugin ne pose pas de problème.

    Le symptôme ?....

    L’affichage dans l’espace privé. Directement sous la balise body, il est affiché ’val=on !’
    Quelques soient les pages de l’espace privé affichées, c’est toujours le même texte qui apparaît et ça dérange l’affichage de la colonne gauche qui superpose les blocs.

    J’ai désinstallé le plugin et je l’ai réinstallé mais le problème continue.

    J’ai donc dû le désactiver pour le moment.

    SPIP 3.2.5 [24404] + écran de sécurité 1.3.12

    • Bonjour,

      Tu as le problème quand tu actives uniquement ce plugins ?

    • Bonjour,

      Oui, uniquement à l’activitation du plugin autorité :-(

    • Bonsoir,
      Je viens d’avoir ce problème et il disparaît si je décoche « Rédacteur voit auteurs : les rédacteurs peuvent voir la liste des auteurs avec leurs mails et la page des autres auteurs dans l’espace privé ? »
      code source avec l’erreur à la fois dans le privé et sur les pages publiques :

      <body class="accueil statut_0minirezo webmestre_oui auteur_1 etroit navigation_sans_icone navigation_avec_outils icones_texte">
      val=on!<br><div id="bando_haut" role="navigation">
    • Bonjour,
      j’ai le même problème. Merci pour l’astuce.
      Rien de nouveau sous le soleil ?

    Répondre à ce message

  • 8

    Bonjour, avez-vous des retour de plantage suite à une maj récente ? C’est mon cas, après MAJ ce soir sur la dernière version du plugin, page blanche (vérification faite, c’est bien Autorité qui pose problème pour mon cas). J’avais la version du Commit de mars (revision 114309) qui marchait parfaitement, en ayant personnalisé par ailleurs les squelettes où apparaissent les emails d’auteurs de façon à gérer « à la mano » l’affichage ou non des emails en fonction du statut. Après qqs recherches, il semble que le dernier commit sur ce plugin il y a 3 mois portait sur l’affichage des emails d’auteurs. Ca m’embête de retravailler (et retrouver c’est surtout ça, après 5 mois de mise de côté) les squelettes personnalisés alors que par ailleurs Autorité me sert pour différentes choses. Bref si vous avez des infos ou si vous avez diffusé qqch sur la démarche à faire après mise jour du plugin Autorité, je suis à l’affût. Merci.

    • Bonjour,

      Avez vous activé le mode de débug pour voir les erreurs s’afficher déjà ?

    • Merci de votre suivi. Oui, dans le debug j’ai apparemment une unique erreur dans le squelette modeles « lesauteurs.html » que j’avais personnalisé, cette erreur ne s’affiche que depuis que j’ai mis à jour le plugin Autorité, puis desinstallé (dû à la page blanche consécutive) puis réinstallé dans la version que j’avais précédemment. Mais c’est pénible car tout fonctionnait parfaitement auparavant. J’aurais aimé une conduite à tenir pour les utilisateurs qui avaient déjà mis en place les correctifs adéquats en termes de confidentialité pour les emails, et qui se retrouvent un peu dans les choux avec cette maj du plugin. Avez-vous publié quelque chose à cette fin ? un article quelque part ?

    • Pour compléter : SPIP 3.2.4 écran de sécurité 1.3.11, et je constate avec surprise sur spip-blog qu’une nouvelle version stable est disponible, alors qu’aucune information ne le mentionne en bas des pages privées (c’est habituellement le cas). Je cherchais une info sur spip-blog pour auto-réponse à ma question posée, et constate que rien ne figure à ce sujet. Aucune volonté critique de ma part, c’est juste qu’on est un peu démuni.

    • Il serait bien pour aider de remettre à jour SPIP + tout les plugins
      Activé les erreurs php
      Les communiquer ici afin que l’on l’aide à corrigé.

    • Apparemment mon msg précédent (bien que posté deux fois) n’est pas passé. Je vais remettre à jour, seulement c’est par hasard en consultant Spip blog à la recherche d’info relative au problème, que je constate qu’une nouvelle version est disponible, alors que rien ne s’affiche comme notification de mise à jour en bas de mes pages privées. (spip 3.2.4)

    • ton message était en status « proposé » car considéré, à cause du nombre de lien, comme un potentiel spam.

      Pour répondre à ta question : SPIp vérifie toutes les x heures en se connectant à spip.net si des mises à jours sont dispos. Il est normal lorsqu’une mise à jour vient tout juste de sortir qu’elle ne soit pas forcément reférencé immédiatement en pied de page de spip. Tout dépend combien de temps le robot met à venir.

    • Je m’aperçois honteusement que le problème semblait résolu, simplement parce que j’avais réinstallé Autorité, dans sa dernière version mise à jour, sans pour autant l’avoir activé. À l’activation du plugin, après mise à jour de SPIP, c’est à nouveau la page blanche... Mes excuses pour le temps perdu aux intervenants. J’utilise du coup dans l’intervalle l’ancienne version de Autorité qui fonctionne sans problème pour moi.

    • Oui moi aussi, j’ai le même souci...

    Répondre à ce message

  • 7
    Jmtconseils

    Bonjour,
    J’ai un nouvel état d’auteur : 8aconfirmer.
    Que faut-il ajouter à mes_options.php, pour lui donner également les mêmes droits que procure ce plugin aux visiteurs ?

    • Bonjour,

      Si aconfirmer c’est que l’email n’est pas confirmé ?
      Dans ce cas, je vois pas pourquoi il pourrait avoir des droits de visiteurs ...

    • Jmtconseils

      Ce statut aurait pu être nommé autrement, le problème est indépendant d’un email vérifié ou non.
      Dans le process d’inscription de membres, qui sont à postériori vérifié (c’est un annuaire de professionnel) j’ai besoin de 3 statuts, donc rédacteur, visiteur et àconfirmer.
      Pour l’instant comme les aconfirmer ne peuvent pas accéder aux mêmes autorisations que auteur et visiteur, je les passe en visiteur avec un suivi manuel (plus d’autres bidouillages que je ne détaille pas ici) .
      Mon besoin est donc de leur donner les mêmes droits que procure ce plugin aux visiteurs.
      Merci pour l’aide

    • Jmtconseils

      C’est une des choses que j’avais testé mais ça ne change rien au problème : donner accès à l’espace privée, ce que confère le plugin Autorité.
      Je veux juste rajouter les mêmes droits que donne Autorités à un visiteur, à un nouveau statut d’auteur.

    • Euh non il faut les même droit que le rédacteur et non le visiteur.

    • Jmtconseils

      Oui en effet c’est les mêmes droits que le rédacteur que je veux attribuer à un nouveau statut d’auteur . Tu as parfaitement raison.
      Comment faire pour attribuer via Autorité des droits à un nouveau statut d’auteur ?

    • J’ai jamais fais :( Je joue avec un champ extra en général pour ça

    Répondre à ce message

  • 2
    Julien

    Bonjour,
    j’ai voulu activer l’espace wiki « à tout les visiteurs du site » avec le plugin « crayons » mais cela ne fonctionne dans l’espace publique avec #EDIT{...}. Cela fonctionne uniquement pour les utilisateurs loggé.

    Quelqu’un pourrait-il me renseigner ?

    • Salut,

      il faut mettre le code adapté dans le fichier config/mes_options.php, que l’on crée dans les fichiers de son spip. Le code donné dans le message du dessous est un exemple.

      Je suis en train de faire exactement la même chose que toi (une rubrique wiki publique), je reviens donc dès que j’ai trouvé le code adapté à cette situation.

    • Bon, beh ceci fonctionne très bien finalement
      A mettre dans le fichier config/mes_options.php

      <?php
      function autoriser_configurer($faire, $type, $id, $qui, $opt) {
      	//echo 'faire: ' .$faire . ' - type: ' .$type;
      	if (isset($type)) {
      		if ($type == 'adminvider') {
      			return $qui['statut'] == '0minirezo';
      		}
      	}
       
      	return $qui['statut'] == '0minirezo' AND !$qui['restreint'];
       
      }

    Répondre à ce message

  • 3

    Bonjour,
    Sur un spip 3.1, j’aurai besoin d’autoriser les admins restreints à pouvoir accéder et utiliser les formulaires de vidage de cache.
    Je ne vois pas comment procéder, car je ne trouve pas de fonction autoriser_vider_cache ou similaire à surcharger.. Quelqu’un aurait-il une piste à proposer SVP ?
    Merci.

    • Je me réponds à moi-même et partage la solution que je viens enfin de trouver :

      function autoriser_configurer($faire, $type, $id, $qui, $opt) {
      	//echo 'faire: ' .$faire . ' - type: ' .$type;
      	if (isset($type)) {
      		if ($type == 'adminvider') {
      			return $qui['statut'] == '0minirezo';
      		}
      	}
      
      	return $qui['statut'] == '0minirezo' AND !$qui['restreint'];
      
      }
    • Bonjour, je cherche à faire la même chose que ce que vous citez ici : autoriser les admins restreints à pouvoir accéder au vidage de cache sur l’espace privé.
      Ma question porte sur ce bout de code... Où faut-il l’insérer ? Sur config/mes_options.php ?
      Merci d’avance pour votre réponse. Lucie.

    • Bonjour,
      oui dans config/mes_options.php

      function autoriser_configurer($faire, $type, $id, $qui, $opt) {
          if (isset($type)) {
              if ($type == 'adminvider') {
                  return $qui['statut'] == '0minirezo';
              }
          }
          return $qui['webmestre'] == 'oui';
      }

    Répondre à ce message

  • 1
    Spidermian

    Bonsoir,

    J’ai collé

     $GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|autre_contact_infos_supplementaires';
    	
    function autre_contact_infos_supplementaires($champs){
            $champs['sujet_alternatif'] = 'Sujet alternatif';
            return $champs;
        }

    dans mes_options.php et je ne vois nulle part apparaître le champ supplémentaire.
    J’ai merdé quelquepart ? Y a-t-il un soucis avec la dernière version de spip que j’utilise ?

    • Spidermian

      Ah ben non me suis planté de plugin...
      Voila ce que c’est de bosser avec quarante douze onglets !
      Si un moderateur veut supprimer ce message...

    Répondre à ce message

  • Spidermian

    Bonjour,
    je voudrais lors de la modification du statut par défaut lors de la création d’un auteur
    ajouter un nouveau statut (7expire) comme je l’ai fait dans la page de création d’un nouvel auteur à la’ide du code suivant :

    -  dans mesfonctions.php

    // Rajouter un nouveau statut pour les auteurs 7expire
    
    $GLOBALS['liste_des_statuts'] = array(
                     'info_administrateurs' => '0minirezo',
                     'info_redacteurs' => '1comite',
                     'info_visiteurs' => '6forum',
                     'info_abonnements_expires' => '7expire',
                     'texte_statut_poubelle' => '5poubelle'
                     );
    
    // Surcharger autoriser_inscrireauteur pour autoriser l'inscription avec ce nouveau statut
    
    function autoriser_inscrireauteur($faire, $quoi, $id, $qui, $opt){
    
            $s = array_search($quoi, $GLOBALS['liste_des_statuts']);
            switch ($s) {
    
                    case 'info_redacteurs' :
                      return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
                   
                    case 'info_abonnements_expires' :
                      return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo');
                   
                    case 'info_visiteurs' :
                      return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo');
    
            }
    
            return false;
    }

    -  dans mesoptions.php

    // Et dans un fichier de pipeline
    function mon_plugin_abonnement_declarer_tables_objets_sql($tables){
           
            $tables['spip_auteurs']['statut_titres']['7expire'] = 'info_abonnements_expires';
            $tables['spip_auteurs']['statut_images']['7expire'] = 'auteur-7expire-16.png';
           
            return $tables;
    }

    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