Valider 6c75da5e rédigé par esj's avatar esj
Parcourir les fichiers

Pb symétrique à [7583] dans le retour d'Ajax de documenter (portfolio et...

Pb symétrique à [7583] dans le retour d'Ajax de documenter (portfolio et fonds): seul les admin complets pouvaient exécuter ce script sans provoquer d'erreur SQL. De plus, la transformation return --> ajax_retour n'avait pas été opérée sur ce script lors de [7572], il n'affichait donc jamais rien.
parent 3909159d
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+16 −13
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -19,31 +19,34 @@ function exec_documenter_dist()
{
	$type = _request("type");
	$script = _request("script"); // generalisation a tester
	$s = _request("s");
	$album = !_request("s") ? 'documents' :  'portfolio'; 
	$id = intval(_request(($type == 'article') ? 'id_article' : 'id_rubrique'));
	$id_auteur = $GLOBALS['auteur_session']['id_auteur'];
	$statut = $GLOBALS['auteur_session']['statut'];

	if (!$s)
	  $album = 'documents';
	else  $album = 'portfolio'; 

	$droits = auth_rubrique($id_auteur, $statut);
	spip_log("documenter($droits, $id, $type, $album, $script $statut");
	if ($type == 'rubrique')
		$flag_editable = acces_rubrique($id);
		$editable = is_array($droits) ? $droits[$id] : is_int($droits);
	elseif (is_int($droits)) // i.e. admin complet
		$editable = true;
	else {

		$row = spip_fetch_array(spip_query("SELECT id_rubrique, statut FROM spip_articles WHERE id_article=$id"));
		if (!$flag_editable = acces_rubrique($row['id_rubrique'])) {
			if ($row['statut'] == 'prepa' OR $row['statut'] == 'prop' OR $row['statut'] == 'poubelle')
			  $flag_editable = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur LIMIT 1"));

		$editable = (is_array($droits) AND $droits[$row['id_rubrique']]);
		if (!$editable) {
			if ($row['statut'] == 'prepa' OR $row['statut'] == 'prop')
				$editable = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id AND id_auteur=$id_auteur"));
		}
	}

	if (!$flag_editable) {
	if (!$editable) {
		spip_log("Tentative d'intrusion de " . $GLOBALS['auteur_session']['nom'] . " dans " . $GLOBALS['exec']);
		include_spip('inc/minipres');
		minipres(_T('info_acces_interdit'));
	}

	$documenter = charger_fonction('documenter', 'inc');
	return $documenter($id, $type, $album, 'ajax', '', $script);

	ajax_retour($documenter($id, $type, $album, 'ajax', '', $script));
}
?>