From 13f97f41bd0763a90f9a705f79ef275c20614371 Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Thu, 26 Jun 2008 17:31:19 +0000 Subject: [PATCH] - demander une autorisation de voir chaque document du portfolio/porte-document dans le prive (par ailleurs on passe en option le type d'objet (objet) et l'identifiant (id_objet) par lequel on arrive, qui peuvent servir dans les surcharges de cette autorisation)) --- ecrire/inc/documenter.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/ecrire/inc/documenter.php b/ecrire/inc/documenter.php index 4195fc0431..882978c137 100644 --- a/ecrire/inc/documenter.php +++ b/ecrire/inc/documenter.php @@ -39,12 +39,16 @@ function inc_documenter_dist( $where = "L.$prim=$doc AND D.mode='document' AND D.extension $img IN ('gif', 'jpg', 'png')"; $order = "0+D.titre, D.date"; $docs = rows_as_array($select, $from, $where, '', $order); - } else $docs = $doc; + $opt = array('objet'=>$type, 'id_objet' => $doc); + } else { + $docs = $doc; + $opt = array(); + } if (!$docs) return ''; $tous = (count($docs) > 3); - $res = documenter_boucle($docs, $type, $ancre, $tous, $appelant); + $res = documenter_boucle($docs, $type, $ancre, $tous, $appelant, $opt); $s = ($ancre =='documents' ? '': '-'); if (is_int($doc)) @@ -64,6 +68,9 @@ function rows_as_array($select, $from, $where='', $groupby='', $orderby='') // http://doc.spip.org/@documenter_bloc function documenter_bloc($id, $res, $s, $script, $ancre, $tous, $type) { + // seulement s'il y a au moins un document dedans + if (!$res) return ""; + if ($tous) { $tous = "<div class='lien_tout_supprimer'>" . ajax_action_auteur('documenter', "$s$id/$type", $script, "id_$type=$id&s=$s&type=$type",array(_T('lien_tout_supprimer'))) @@ -81,7 +88,7 @@ function documenter_bloc($id, $res, $s, $script, $ancre, $tous, $type) } // http://doc.spip.org/@documenter_boucle -function documenter_boucle($documents, $type, $ancre, &$tous_autorises, $appelant) +function documenter_boucle($documents, $type, $ancre, &$tous_autorises, $appelant, $opt=array()) { charger_generer_url(); // la derniere case d'une rangee @@ -105,6 +112,10 @@ function documenter_boucle($documents, $type, $ancre, &$tous_autorises, $appelan foreach ($documents as $document) { $id_document = $document['id_document']; + // $opt : options pour l'autorisation (type d'objet parent, et id de l'objet parent) + if (!autoriser('voir', 'document', $id_document, null, $opt)) + continue; + if (isset($document['script'])) $script = $document['script']; # pour plugin Cedric else @@ -139,6 +150,9 @@ function documenter_boucle($documents, $type, $ancre, &$tous_autorises, $appelan $res .= "</tr>"; } + // pas de contenu, pas de tableau + if (!$res) return ""; + return "\n<table width='100%' cellspacing='0' cellpadding='4'>" . $res . "</table>"; -- GitLab