diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php index fecd9036881016a9a1050a857c39eddcb0278d9d..640928e7f7b00e04ed5664a6c2bf90ee5e97b70c 100644 --- a/ecrire/action/editer_article.php +++ b/ecrire/action/editer_article.php @@ -133,17 +133,20 @@ function revisions_articles ($id_article, $c=false) { // Changer le statut de l'article ? include_spip('inc/auth'); + auth_rubrique($GLOBALS['auteur_session']['id_auteur'], $GLOBALS['auteur_session']['statut']); $s = spip_query("SELECT statut, id_rubrique FROM spip_articles WHERE id_article=$id_article"); $row = spip_fetch_array($s); $id_rubrique = $row['id_rubrique']; $statut = $row['statut']; - if (_request('statut', $c) - AND _request('statut', $c) != $statut) { + $s = _request('statut', $c); + if ($s AND _request('statut', $c) != $statut) { if (acces_rubrique($id_rubrique)) - $statut = $champs['statut'] = _request('statut', $c); - // else erreur ? + $statut = $champs['statut'] = $s; + elseif (acces_article($id_article) AND $s != 'publie') + $statut = $champs['statut'] = $s; + else spip_log("editer_article $id_article refus " . join(' ', $c)); } // Verifier que la rubrique demandee existe et est differente diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php index d4b10e4046a334bbecd4695f59661d7517caf4a0..464a6cb68e59ddcd15f626b57f3c3c2ca2d60d2c 100644 --- a/ecrire/inc/auth.php +++ b/ecrire/inc/auth.php @@ -42,7 +42,7 @@ function acces_mots() { // http://doc.spip.org/@acces_article function acces_article($id_article) { - global $connect_id_auteur, $connect_toutes_rubriques; + global $auteur_session, $connect_toutes_rubriques; if ($connect_toutes_rubriques) return true; @@ -51,7 +51,7 @@ function acces_article($id_article) if (acces_rubrique($row['id_rubrique'])) return true; - $s = auteurs_article($id_article, " id_auteur=$connect_id_auteur"); + $s = auteurs_article($id_article, " id_auteur=" . $auteur_session['id_auteur']); if (!spip_num_rows($s)) return false; $s = $row['statut'];