diff --git a/ecrire/inc_session.php3 b/ecrire/inc_session.php3 index 6be5c8e72c59f2bee5f567c243407d294e3620b2..820e627b4287a5aa72693d350032a0213a06595a 100644 --- a/ecrire/inc_session.php3 +++ b/ecrire/inc_session.php3 @@ -251,7 +251,7 @@ function renouvelle_alea() function _action_auteur($action, $id_auteur, $nom_alea) { - if (!$id_auteur) { + if (!($id_auteur = intval($id_auteur))) { global $connect_id_auteur, $connect_pass; $id_auteur = $connect_id_auteur; $pass = $connect_pass; diff --git a/ecrire/inc_spip_action_autoriser.php b/ecrire/inc_spip_action_autoriser.php index cdc1e2986a99ae123d805a34359bce6919fea3ea..7e71a0953c2a1b898961ebe285279abe64a2aaef 100644 --- a/ecrire/inc_spip_action_autoriser.php +++ b/ecrire/inc_spip_action_autoriser.php @@ -14,7 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_charsets"); # pour le nom de fichier -include_ecrire("inc_session"); # verifier_action_auteur include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch... // acces aux documents joints securise diff --git a/ecrire/inc_spip_action_iconifier.php b/ecrire/inc_spip_action_iconifier.php index 1630e2e9f430272aed2e598ea4421eead3036d04..bc576ab0b64341ccf2fa698e389556efb1f325da 100644 --- a/ecrire/inc_spip_action_iconifier.php +++ b/ecrire/inc_spip_action_iconifier.php @@ -12,15 +12,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return; -include_ecrire("inc_session"); # verifier_action_auteur - function spip_action_iconifier_dist() { - global $action, $hash, $id_auteur, $arg, $image; - - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) - die ($action . '!!!'); - if ($_SERVER['REQUEST_METHOD'] == 'POST') spip_image_ajouter_dist(); else spip_image_effacer_dist(); diff --git a/ecrire/inc_spip_action_instituer.php b/ecrire/inc_spip_action_instituer.php index 60afeddcc26a08f4572d7ba6d3ffe2642f495f0b..323a4ce90c11e94c76361c7f815ce27c83d58f60 100644 --- a/ecrire/inc_spip_action_instituer.php +++ b/ecrire/inc_spip_action_instituer.php @@ -12,31 +12,24 @@ if (!defined("_ECRIRE_INC_VERSION")) return; -include_ecrire("inc_session"); - function spip_action_instituer_dist() { - global $arg, $action, $hash, $id_auteur; - - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) - spip_log("spip_action: $action $arg interdit a $id_auteur"); - else { - ereg("^([^ ]*) (.*)$", $arg, $r); - $var_nom = 'instituer_' . $r[1]; - if (function_exists($var_nom)) - $var_nom($r[2]); - else spip_log("spip_action_$action: $arg incompris"); - } + global $arg, $action ; + + ereg("^([^ ]*) (.*)$", $arg, $r); + $var_nom = 'instituer_' . $r[1]; + if (function_exists($var_nom)) + $var_nom($r[2]); + else spip_log("spip_action_$action: $arg incompris"); } function instituer_collaboration($debloquer_article) { global $id_auteur; - if ($debloquer_article) { + if ($debloquer_article AND ($id_auteur = intval($id_auteur))) { if ($debloquer_article <> 'tous') $where_id = "AND id_article=".intval($debloquer_article); - $query = "UPDATE spip_articles SET auteur_modif='0' WHERE auteur_modif=$id_auteur $where_id"; - spip_query ($query); + spip_query ("UPDATE spip_articles SET auteur_modif='0' WHERE auteur_modif=$id_auteur $where_id"); } } diff --git a/ecrire/inc_spip_action_joindre.php b/ecrire/inc_spip_action_joindre.php index 2022ef8a5d3826f36c08401c513e53ebda8ee027..f79ea257a8b887b66a65ec2cb30a1e00915a6bb3 100644 --- a/ecrire/inc_spip_action_joindre.php +++ b/ecrire/inc_spip_action_joindre.php @@ -13,29 +13,23 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_charsets"); # pour le nom de fichier -include_ecrire("inc_session"); # verifier_action_auteur include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch... include_ecrire('inc_getdocument'); function spip_action_joindre_dist() { - global - $arg, + global $hash, $id_auteur, $arg, $redirect, $sousaction1, $sousaction2, $sousaction3, $sousaction4, $sousaction5, - $action, $hash, $id_auteur, - $url, $chemin, $ancre, $type, $id, $id_document, $redirect, + $url, $chemin, $ancre, $type, $id, $id_document, $_FILES, $HTTP_POST_FILES; - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) - die ($action . '!!!'); - // pas terrible, mais c'est le pb du bouton Submit qui retourne son texte, // et son transcodage est couteux et perilleux - $action = 'spip_action_joindre' . + $sousaction = 'spip_action_joindre' . ($sousaction1 ? 1 : ($sousaction2 ? 2 : ($sousaction3 ? 3 : @@ -47,11 +41,11 @@ function spip_action_joindre_dist() $documents_actifs = array(); - if (function_exists($action)) - $action($path, $arg, $type, intval($id), $id_document, + if (function_exists($sousaction)) + $sousaction($path, $arg, $type, intval($id), $id_document, $hash, $id_auteur, $redirect, $documents_actifs); - else spip_log("spip_action: sousaction inconnue $action"); + else spip_log("spip_action: sousaction inconnue $sousaction"); if ($documents_actifs) { $redirect .= '&show_docs=' . join('-',$documents_actifs); @@ -61,7 +55,6 @@ function spip_action_joindre_dist() $redirect .= '#' . $ancre; } - $redirect = _DIR_RESTREINT . $redirect; # spip_action fera la redirection. ## redirection a supprimer si on veut poster dans l'espace prive directement (UPLOAD_DIRECT) } diff --git a/ecrire/inc_spip_action_purger.php b/ecrire/inc_spip_action_purger.php index 51bcf5728cfa7d1586ed5e1c828a05c268786723..d6c59477cc76d2400edbb51cb1ce2bef60e8e558 100644 --- a/ecrire/inc_spip_action_purger.php +++ b/ecrire/inc_spip_action_purger.php @@ -12,13 +12,9 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // securiser -include_ecrire("inc_session"); - function spip_action_purger_dist() { - global $arg, $hash, $id_auteur, $action; - - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) exit; + global $arg; include_ecrire("inc_invalideur"); diff --git a/ecrire/inc_spip_action_supprimer.php b/ecrire/inc_spip_action_supprimer.php index c2c3d842118e3679570250bdfd3b803467dee51a..cb9471f3329fcb521648e8cb862e47e91935f6bb 100644 --- a/ecrire/inc_spip_action_supprimer.php +++ b/ecrire/inc_spip_action_supprimer.php @@ -13,20 +13,15 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_charsets"); # pour le nom de fichier -include_ecrire("inc_session"); # verifier_action_auteur include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch... - // Effacer un doc (et sa vignette) function spip_action_supprimer_dist() { - global $action, $hash, $id_auteur, $arg; - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) - die ($action . '!!!'); + global $arg; - $result = spip_query("SELECT id_vignette, fichier - FROM spip_documents - WHERE id_document=$arg"); + $arg = intval($arg); + $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg"); if ($row = spip_fetch_array($result)) { $fichier = $row['fichier']; $id_vignette = $row['id_vignette']; diff --git a/ecrire/inc_spip_action_tourner.php b/ecrire/inc_spip_action_tourner.php index 3e78d6f26dec64e130074b74f5ee4f3c0235ac62..606747000843c68070b4bfcd50001fd6e54d69a0 100644 --- a/ecrire/inc_spip_action_tourner.php +++ b/ecrire/inc_spip_action_tourner.php @@ -13,17 +13,13 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_charsets"); # pour le nom de fichier -include_ecrire("inc_session"); # verifier_action_auteur include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch... function spip_action_tourner_dist() { - global $action, $hash, $id_auteur, $arg; - if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) - die ($action . '!!!'); - - global $var_rot, $convert_command; + global $arg, $var_rot, $convert_command; $var_rot = intval($var_rot); + $arg = intval($arg); $query = "SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg"; $result = spip_query($query); diff --git a/spip_action.php b/spip_action.php index 00670f1f6f50d4035ee1c43ef8d40d3ba799c101..623da2889a957e2a445af08db831e86a136890b0 100644 --- a/spip_action.php +++ b/spip_action.php @@ -11,6 +11,14 @@ \***************************************************************************/ include ("ecrire/inc_version.php3"); + +if (isset($hash)) { + include_ecrire("inc_session"); + if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) { + die ($action . '!!!'); + } + } + $var_f = include_fonction('spip_action_' . $action); $var_f(); if ($redirect) redirige_par_entete($redirect);