SPIP - Contrib

SPIP - Contrib

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

213 visiteurs en ce moment

fontsizeup fontsizedown
[99 commentaires]

Le plugin « Autorité »

dimanche 20 mai 2007, par Fil

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
1 vote

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 :

  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 :

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.

Retour en haut de la page

99 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

  • Répondre à ce message

    12 novembre 12:15 , par François Daniel Giezendanner

    Bonjour Fil,

    Merci pour cette belle contribution.

    La demande devient forte chez nous à Genève concernant la possibilité

    Priorité 1 :

    • de création de rédacteurs et de visiteurs identifiés par des administrateurs restreints.

    Priorité 2 :

    • de création de mots-clés par des administrateurs restreints.

    Peux-tu envisager de compléter le plugin en ce sens ?

    Cordialement

    FDG

    PS, J’ai relevé que ce type de demande a déjà été formulée :

    Création de rédacteurs et de visiteurs identifiés :

    • 2 avril 18:20 , par J Christophe
    • 10 février 19:17 , par Jean Luc Girard

    Création de mots-clés : 2 mai 2007 10:56

  • Répondre à ce message

    8 octobre 18:49 , par Fil

    Merci pour le correctif Vivien, intégré en http://zone.spip.org/trac/spip-zone...

  • Répondre à ce message

    8 octobre 18:19 , par Vivien

    Bonjour,

    Il me semble qu’il y a une petite coquille dans la configuration de ce plugin via CFG, pour permettre aux rédacteurs de consulter les stats.

    Dans Configuration >> CFG >> Autorité >> Réglage des autorisations >> Droits des auteurs >> Rédacteur voit stats. Soit le fichier plugins/autorite/fonds/cfg_autorite.html ; ligne 158 :

    <label><input type="checkbox" name="redacteurs_voirstats" [checked="(#ENV{redacteurs_lire_stats}?{checked})"] />

    Cela ne correspond pas au fichier plugins/autorite/inc/autoriser.php (à partir de la ligne 349).

    Cela fonctionne en remplaçant par :

    <label><input type="checkbox" name="redacteurs_lire_stats" [checked="(#ENV{redacteurs_lire_stats}?{checked})"] />
  • Répondre à ce message

    23 septembre 11:42 , par pgiron

    J’ai réussi à faire fonctionner le plugin en modifiant le fichier /inc/autoriser.php ce qui n’est pas très pérenne. Peut-être un problème de droits ? Pourtant config/mes_options.php est en lecture... Mystère !

  • Répondre à ce message

    23 septembre 00:17

    Il n’est pas nécessaire d’utiliser Autorité pour ce que tu veux faire. Il suffit d’utiliser la fonction "administrateur restreint" de SPIP. Lorsque tu crée un auteur depuis le compte super-administrateur tu le nome administrateur puis tu restreint sa capacité d’administration à une rubrique en particulier.

    Bonne config et à bientôt.

  • Répondre à ce message

    22 septembre 19:06 , par pgiron

    J’ai même vidé /tmp, mais ça ne fait rien de plus... :-(

  • Répondre à ce message

    22 septembre 18:50 , par pgiron

    Bonjour, Je suis en SPIP 192d, plugins CFG 1.10.3 et autorité 0.9.2. Je suis administrateur "total" du site avec l’ID 59, j’ai mis dans config/mes_options.php les lignes suivantes

    <?php
    define ('_ID_WEBMESTRES', '22:59');
    ?>

    j’ai vidé le cache, supprimé le cookie de connexion et rien ne se passe, j’ai toujours

    Accès refusé
    Seuls les webmestres du site sont autorisés à modifier ces paramètres.
    Pour en savoir plus, voir la documentation.

    Que se passe-t-il docteur ?

  • Répondre à ce message

    7 août 14:18 , par Matthieu Marcillaud

    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

    7 août 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

    4 juillet 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

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0