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.
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);
Discussions par date d’activité
132 discussions
Je suppose que ca se passe dans plugins/autorite/inc/autoriser.php ? Et ailleurs d’ailleurs, je vois sur la page du plugin.
Mais OURG... la ca devient trop compliqué pour moi !
Si il y a une bonne âme que ça amuserait....?!
Agnes
Répondre à ce message
Seuls les adminsitrateurs peuvent modifier les brèves validées.... dommage que ce ne soit pas géré par Autorités !
Ce ne serait pas très compliqué à ajouter, le plugin est codé de façon explicite pour permettre ce genre d’extension au fur et à mesure des besoins.
Répondre à ce message
compte-rendu utilisateur
Sous spip version 1.9.2.i, le plugin « Autorité » est compatible avec le plugin « Accès restreints ». Certaines fonctionnalités de « Autorité » ne sont cependant active qu’avec spip 2.0.
Souhaitons que les deux plugins : « Autorité » et « Accès restreints » continuent à être développés en étant compatibles. Ces deux plugins étant très complémentaires quand l’on veut pouvoir affiner les droits d’accès et fonctionnalités attribués aux différents statuts : forumeurs, rédacteurs, administrateurs, webmestres
les questions qui se posent sont bien sûr de savoir :
1/s’il serait pertinent que ces deux plugins soient fusionner en un seul ?
2/si la plupart des fonctionnalités de ces deux plugins ne devraient pas être intégrés dans la version originale de spip ?
La réponse aux deux questions est « non ».
Pour la fusion : ces deux entités n’ont ni le même objectif ni la même approche technique.
Pour l’intégration au core : le plugin Autorité vise à démontrer ce qu’il est possible de faire comme extension aux autorisations standard de SPIP. Quant à l’accès restreint, le core a pour rôle de diffuser des infos sur Internet, et pas de les planquer :-)
Fil a écrit « Pour l’intégration au core : le plugin Autorité vise à démontrer ce qu’il est possible de faire comme extension aux autorisations standard de SPIP »
A en juger par les demandes des utilisateurs depuis plusieurs années et des retours positifs des utilisateurs de ce plugin depuis sa mis en oeuvre, la démonstration est éloquante, le plugin est « bon » pour une intégration au core, à termes. :0 )
Fil a écrit « Pour la fusion : ces deux entités n’ont ni le même objectif ... »
Historiquement c’est vrai, alors disons que « Accès Restreint » + « Autorité » permet de « faire » ce que ne permet pas encore de faire « Autorité » seul.
Toutefois pour des sites comportant de nombreux rédacteurs et administrateurs (plusieurs 100nes ), la combinaison « Accès restreints »et « Autorité » est essentielle. Celà permet de créer des interfaces privées adaptées aux besoins de chaque auteur : quand il y a trop de fonctionnalités/possibilités les auteurs non technophiles sont « perdus », ce qui donne un surcroit de travail aux webmestres, admins, etc ...
Fil a écrit : « Quant à l’accès restreint, le core a pour rôle de diffuser des infos sur Internet, et pas de les planquer :-) »
En utilisant « Accès restreint » notre objectif n’est pas de planquer de l’information. En ce qui nous concerne, nous n’avons rien à planquer en partie privée.
Nous souhaitons simplement permettre à chaque rédacteur d’accéder à une partie privée adaptée à ces objectifs et besoins. En complément de « Accès restreint », nous supprimons des « boutons » : édition, forum, etc ou nous en rajoutons avec le plugin « Autorité ».
C’est la même idée de principe que « interface simplifiée »/« interface complète » qui existait dans des versions précédentes de spip. Comme cette bonne fonctionnalité n’a pas été développée, elle a finit par gêner. C’était bien de la supprimer, sauf que le problème demeure...
Pour ceux qui sont obligés d’utiliser spip 192i, sinon il vaut mieux passer sur les dernières versions de spip 2.0..., le pluggin pour cette version de spip intègre ou permet les modifs qu’il est possible de faire avec le code ci-dessous.
rappel des critères :
statut webmestres : autoriser(’webmestre’)
statut admins complets : ’0minirezo’ et ’connect_toutes_rubriques’
statut admins complets et restreints : ’0minirezo’
dans le fichier spip/ecrire/inc/boutons.php
entre les lignes 46 à 113
$boutons_admin=array(
’accueil’ => new Bouton(’asuivre-48.png’, ’icone_a_suivre’),
/*’naviguer’ => new Bouton(« documents-48$spip_lang_rtl.png »,
’icone_edition_site’),
’forum’ => new Bouton(’messagerie-48.png’, ’titre_forum’),
’auteurs’ => new Bouton(’redacteurs-48.png’, ’icone_auteurs’)*/
) ;
/* Bouton « Editer » que si >= admin complet
Sous-menus editer si >= admin complet */
if ($GLOBALS[’connect_statut’]==’0minirezo’
AND $GLOBALS[’connect_toutes_rubriques’])
$boutons_admin[’naviguer’]=
new Bouton(’documents-48$spip_lang_rtl.png’, ’icone_edition_site’) ;
/* Bouton « Statistiques » que si >= admin restreint */
if ($GLOBALS[’connect_statut’] == « 0minirezo »
AND $GLOBALS[’meta’][« activer_statistiques »] != ’non’)
$boutons_admin[’statistiques_visites’]=
new Bouton(’statistiques-48.png’, ’icone_statistiques_visites’) ;
/* Bouton « Auteurs » que si >= admin restreint */
if ($GLOBALS[’connect_statut’] == ’0minirezo’)
$boutons_admin[’auteurs’]=
new Bouton(’redacteurs-48.png’, ’icone_auteurs’) ;
/* acces a configuration que si on est webmestre */
/*if ($GLOBALS[’connect_statut’]==’0minirezo’*/
if ($flag_autorise = autoriser(’webmestre’))
$boutons_admin[’configuration’]=
new Bouton(’administration-48.png’, ’icone_configuration_site’) ;
/* Bouton « Forum » que si >= admin complet
Sous-menu gestion forums si >= admin complet */
if ($GLOBALS[’connect_statut’] == ’0minirezo’
AND $GLOBALS[’connect_toutes_rubriques’])
$boutons_admin[’forum’]=
new Bouton(’messagerie-48.png’, ’titre_forum’) ;
.......
..................
// les sous-menus des boutons, que si on est >= admin complet
if ($GLOBALS[’connect_statut’] == ’0minirezo’
AND $GLOBALS[’connect_toutes_rubriques’])
contrib de ref : 23 octobre 2008 / 09:49, par Ludo
http://forum.spip.org/fr_196894.html
Attention, vous pouvez aussi avoir besoin de supprimer :
le sous-menu configuration
spip/ecrire/inc/boutons.php
ligne 221
/* code initial $boutons_admin[’configuration’]->sousmenu= $sousmenu ; */
if ($flag_autorise = autoriser(’webmestre’))
$boutons_admin[’configuration’]->sousmenu= $sousmenu ;
// fin si admin
$boutons_admin = pipeline(’ajouter_boutons’, $boutons_admin) ;
et si vous utilisez Accès Restreint 1_9 rendre accessible la configuration de Accès Restreint au(x) seul(s) webmestre(s)
spip/plugins/acces_restreint_1_9/acces_restreint_pipelines
ligne 13
/* public static */
function AccesRestreint_ajouterBoutons($boutons_admin)
// si on est webmestre
/* code initial si on est admin : if (autoriser(’modifier’,’zone’)) */
if ($flag_autorise = autoriser(’webmestre’,’modifier’,’zone’))
// on voit le bouton dans la barre « naviguer »
$boutons_admin[’configuration’]->sousmenu[’acces_restreint’]= new Bouton(
« ../ »._DIR_PLUGIN_ACCESRESTREINT.« /img_pack/zones-acces-24.gif », // icone
_T(’accesrestreint:icone_menu_config’) // titre
) ;
return $boutons_admin ;
sur spip 2.0 et suivantes Autorité permet depuis la Revision 33037
de faire celà sans toucher au code et plus généralement voir aussi
ici http://programmer.spip.org/-Gestion-d-autorisations-
merci aux développeurs de ce plugin.
Répondre à ce message
Bonsoir,
d’abord merci pour ce plugin. Je ren contre cependant un problème : où dois-je trouver -ou créer- le dossier /config pour y mettre le fichier mes_options.php ? En effet, je voudrais donner tous les droits à un second webmestre.
Merci, Giampiero Russo
Normalement sur une version récente de SPIP le répertoire config/ existe déjà ; tu peux y créer le fichier mes_options.php s’il n’est pas présent.
Répondre à ce message
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.
Pour le moment non, mais ça ne devrait pas être très compliqué à ajouter.
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 +
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 ?
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
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
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
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^^
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.
dans la version actuelle au 13/11/2009 « Autorité » permet-il de configurer qu’un rédacteur ne publie/modifie que ses articles et eux seuls ?
Est-il possible de rajouter ce critère dans inc/autoriser par ex , quel en est le code et où le mettre si c’est possible ?
ou en est-on toujours à :
http://www.spip-contrib.net/spip.php
qui donne cette possibilité mais également sur les articles d’autres rédacteurs ?
Répondre à ce message
Bonjour,
Avec spip2, sarka3, Acces restreint et Autorité
J’ai un souci de configuration avec ce plugin.
J’ai le statut de webmestre donc ai acces à tout.
J’ai crée un administrateur qui lui n’a pas acces à la configuration du site,
mais devrait avoir accès pour gérer les acces restreint.
Quand je me logue avec ce statut d’administrateur, j’ai dans la partie admin un
picto symbolisant « acces restreint » à droite. Quand je clique dessus, la page se
bloque et me dit :
configuration : Accès interdit
Comment pourrais-je débloquer cet acces interdit ?
Merci
Répondre à ce message
Bonjour,
J’ai installé spip 2.0.9 et sarka-spip 3.0. Je rencontre un problème avec Autorité (super plug ! merci). J’ai paramétré le plug via la partie privé avec des restrictions. Cependant maintenant que je m’occupe de paramétrer le squelette sarka via son interface dédiée dans la partie privé, je suis considéré comme un admin et plus comme un webmestre. Donc d’après mes paramètre d’Autorité je n’ai plus le droit de modifier les réglages des plug. Ce qui est gênant dans mon cas... J’ai inclue le code dans mes_fonctions.php pour me déclarer webmestre mais cela ne change rien. Que dois-je faire ou qu’ai-je fais qui ne va pas ?
Répondre à ce message
J’ajoutais des nouveaux webmestres dans mon SPIP mutualise, et je me suis rendu compte qu’il falllait ajouter le code ’define (’_ID_WEBMESTRES’, ’1:2:11:4’) ;’ dans le fichier /config/mes_options.php qui est situe a la racine du site et non pas dans le repertoire de configuration de chque sites (sites/domain.com/config/mes_options.php).
C’est ma config qui est tordu ou c’est normal ?
Si c’est normal c’est dommage que ca soit pas definissable dans chaque site mutualise, car le plugin authorite marche plutot bien avec different sites mutualise donc ca c’est le seul truc ’partage’
Enfin je me trompe peu etre
je me reponds a moi meme :)
bon ca vient de ma configuration. Le ’premier’ site web doit etre configurer dans /config/mes_options.php
quand je dis ’premier’ site, c’est l’url qui a servit pour l’installation de SPIP.
autant pour moi :)
super plugin !
Répondre à ce message
Bonjour,
Je souhaite autoriser des visiteurs enregistrés par « Inscription2 » à pouvoir modifier un article qui leur appartiendrai.
Seulement je ne vois pas comment mettre en oeuvre la partie : « 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) ; »
J’ai bien installé « Publication Ouverte » mais je ne peux jamais associer un « visiteur » comme « auteur » d’ un article, donc je ne peux lui permettre de modifier son article (j’ai installé « crayons »).
Merci de vos réponses.
Florent
Répondre à ce message
Bonjour !
Tout d’abord merci pour ce plugin qui est très bien conçu !
J’ai cependant un petit souci. Je souhaiterais autoriser les rédacteurs à publier des articles. Seulement si j’e me sers des lignes prévues à cet effet, qui sont commentées dans le code, les rédacteurs se voient attribuer beaucoup d’autres droits comme la possibilité de modifier tous les articles, ou de modifier les rubriques etc.
En gros je souhaiterais simplement que les rédacteurs aient un seul et unique pouvoir en plus :
avoir le droit de publier eux mêmes les articles qu’ils créent.
Est-ce possible et si oui qq aurait il une piste à me donner ? J’ai bien essayer de modifier les conditions des fonctions mais je pense que c’est la fonction publiersans qui ouvre trop de droits d’un coup !
bref ! à l’aide !
merci d’avance.
c’est vrai qu’il est indiqué dans la doc du plugin
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) ;
alors que sur contrib un auteur peut aussi modifier les articles des autres dans des rubriques où il n’est pas administrateur .
un bug ?.
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 :
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.
Suivre les commentaires : |