var Phenix = function () {
Troll du Web depuis 1996

Des rédacteurs restreints dans #SPIP

Chacun sa rubrique !

Il est possible d’améliorer un peu la gestion des utilisateurs de SPIP. Dans cet exemple, on va :

- Pouvoir restreindre un rédacteur à une ou plusieurs rubriques. C’est similaire au administrateur restreint.
- Limiter la création d’article par les administrateurs/rédacteurs restreints à leur rubrique uniquement.
C’est assez pratique si vous n’avez pas envie que des articles soit poster n’importe ou sur le site.

On commence par permettre de lier aussi les rédacteurs à une rubrique, il faut placer ce code dans le fichier config/mes_options.php :

  1. <?php
  2. define('_STATUT_AUTEUR_RUBRIQUE', '0minirezo,1comite');

Ensuite on ajoute la vérification des accès restreints dans l’autorisation a créé des articles dans une rubrique.
Attention, c’est une surcharge de fonction, cela veut dire qu’elle va remplacer celle du core de SPIP.

Il faut mettre ce code dans un fichier de fonction (mes_fonctions.php par exemple).

  1. <?php
  2. /**
  3.  * Autorisation de créer un article dans une rubrique $id
  4.  *
  5.  * Il faut pouvoir voir la rubrique et pouvoir créer un article…
  6.  *
  7.  * @param string $faire Action demandée
  8.  * @param string $type Type d'objet sur lequel appliquer l'action
  9.  * @param int $id Identifiant de l'objet
  10.  * @param array $qui Description de l'auteur demandant l'autorisation
  11.  * @param array $opt Options de cette autorisation
  12.  * @return bool true s'il a le droit, false sinon
  13.  **/
  14. function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
  15. return
  16. $id
  17. and autoriser('voir', 'rubrique', $id)
  18. and autoriser('creer', 'article')
  19.  
  20. // Vérifier l'accès restreint avant d'autoriser la publication
  21. and (
  22. !$qui['restreint'] or !$id
  23. or in_array($id, $qui['restreint'])
  24. );
  25. }

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message
  • Pour créer des paragraphes, laissez simplement des lignes vides.