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

Autoriser un auteur s’il est présent dans la zone d’une rubrique #SPIP (acces restreint)

Une petite fonction d’autorisation sympas : autoriser un auteur (peu importe son statut) à publier dans une rubrique, s’il est dans la zone de cette rubrique. :

  1. <?php
  2. function autoriser_accesrestreint_publiedans($faire, $type, $id, $qui, $opt) {
  3. include_spip('accesrestreint_fonctions');
  4. // On récupère les zones de la rubrique
  5. $zones = accesrestreint_zones_rubrique_et_hierarchie($id);
  6. foreach ($zones as $zone) {
  7. // Est-ce que l'auteur appartient à la zone ?
  8. if (accesrestreint_acces_zone($zone, $qui['id_auteur'])) {
  9. return true;
  10. }
  11. }
  12.  
  13. return false;
  14. }

Ensuite, on peut surcharger les autorisations de SPIP pour qu’elles tiennent compte de cette fonction :

  1. <?php
  2. /**
  3.  * Surcharge de l'autorisation de publication dans les rubriques. On va prendre
  4.  * en compte l'accès restreint. Si un auteur est dans la zone de la rubrique, on
  5.  * l'autorise à publier
  6.  */
  7. function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt) {
  8. if (autoriser('publiedans', 'accesrestreint', $id, $qui, $opt)) {
  9. return true;
  10. }
  11.  
  12. return autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt);
  13. }
  14.  
  15. /**
  16.  * Surcharge de l'autorisation de création d'article pour prendre en compte
  17.  * l'autorisation d'accesrestreint
  18.  */
  19. function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
  20.  
  21. if (autoriser('publiedans', 'accesrestreint', $id, $qui, $opt)) {
  22. return true;
  23. }
  24.  
  25. return autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt);
  26. }

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.