/** * filtre de test pour savoir si l'acces a une rubrique est restreinte * * @param int $id_rubrique * @return bool */ function accesrestreint_rubrique_restreinte($id_rubrique, $id_auteur=null){ include_spip('inc/acces_restreint'); return @in_array($id_rubrique, accesrestreint_liste_rubriques_exclues(!test_espace_prive(), $id_auteur) ); }
function autoriser_rubrique_voir($faire, $type, $id, $qui, $opt) { include_spip('inc/acces_restreint'); static $rub_exclues; $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive(); $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur']; if (!isset($rub_exclues[$id_auteur][$publique]) || !is_array($rub_exclues[$id_auteur][$publique])) { $rub_exclues[$id_auteur][$publique] = accesrestreint_liste_rubriques_exclues($publique,$id_auteur); $rub_exclues[$id_auteur][$publique] = array_flip($rub_exclues[$id_auteur][$publique]); } return !isset($rub_exclues[$id_auteur][$publique][$id]); }
/** * Un auteur donné fait il partie d'une zone permettant de voir telle rubrique. * Renvoie true, si l'auteur peut voir la rubrique, * quelquesoit la visibilité des rubriques de la zone * * @param int $id_auteur Identifiant de l'auteur * @param int $id_rubrique Identifiant de la rubrique * @return bool L'auteur fait partie de la rubrique. */ function accesrestreint_auteur_lie_a_rubrique($id_auteur, $id_rubrique) { if (!$id_auteur) { return false; } if (!$id_rubrique) { return false; } // $auteur[3][8] : l'auteur 3 ne peut pas voir la rubrique 8 static $auteurs = array(); if (!isset($auteurs[$id_auteur])) { $auteurs[$id_auteur] = array(); include_spip('inc/accesrestreint'); $auteurs[$id_auteur] = array_flip(accesrestreint_liste_rubriques_exclues(true, $id_auteur, true)); } // si la rubrique est presente, c'est qu'on ne peut pas la voir ! if (isset($auteurs[$id_auteur][$id_rubrique])) { return false; } return true; }