diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php index 15a66b33b3..d8a1911dbb 100644 --- a/ecrire/inc/autoriser.php +++ b/ecrire/inc/autoriser.php @@ -281,7 +281,12 @@ function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) { $champ = $c['champ']; if (!isset($opt[$champ])) return false; // pas de champ passe a la demande => NIET $previsu = explode(',',$c['previsu']); - if (!in_array($opt[$champ],$previsu)) // le statut n'est pas dans ceux definis par la previsu => NIET + // regarder si ce statut est autoriser pour l'auteur + if (in_array($opt[$champ]."/auteur",$previsu)){ + if (!sql_countsel("spip_auteurs_liens","id_auteur=".intval($qui['id_auteur'])." AND objet=".sql_quote($type)." AND id_objet=".intval($id))) + return false; // pas auteur de cet objet => NIET + } + elseif (!in_array($opt[$champ],$previsu)) // le statut n'est pas dans ceux definis par la previsu => NIET return false; } }