From fedf815518135033fab431cde0b46a25c78ca00e Mon Sep 17 00:00:00 2001
From: "cedric@yterium.com" <>
Date: Fri, 28 Jan 2011 17:54:41 +0000
Subject: [PATCH] log en cas d'echec de la suppression, et suppression des
 liens par precaution lorsqu'on supprime un document

---
 action/supprimer_document.php | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/action/supprimer_document.php b/action/supprimer_document.php
index 95d30ba4..eb98e459 100644
--- a/action/supprimer_document.php
+++ b/action/supprimer_document.php
@@ -19,8 +19,10 @@ function action_supprimer_document_dist($id_document=0) {
 		$id_document = $securiser_action();
 	}
 	include_spip('inc/autoriser');
-	if (!autoriser('supprimer','document',$id_document))
+	if (!autoriser('supprimer','document',$id_document)){
+		spip_log("Echec : Suppression document $id_document interdite",_LOG_ERREUR);
 		return false;
+	}
 
 	// si c'etait une vignette, modifier le document source !
 	if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette='.intval($id_document))){
@@ -29,8 +31,10 @@ function action_supprimer_document_dist($id_document=0) {
 	}
 
 	include_spip('inc/documents');
-	if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.intval($id_document)))
+	if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.intval($id_document))){
+		spip_log("Echec : Suppression document $id_document : le document n'existe pas en base",_LOG_ERREUR);
 		return false;
+	}
 
 	spip_log("Suppression du document $id_document (".$doc['fichier'].")");
 
@@ -42,6 +46,8 @@ function action_supprimer_document_dist($id_document=0) {
 
 	// dereferencer dans la base
 	sql_delete('spip_documents', 'id_document='.intval($id_document));
+	// securite
+	sql_delete('spip_documents_liens', 'id_document='.intval($id_document));
 
 
 	// Supprimer le fichier si le doc est local,
@@ -64,6 +70,7 @@ function action_supprimer_document_dist($id_document=0) {
 			'data' => null
 		)
 	);
+  return true;
 }
 
 ?>
-- 
GitLab