From dec661f919c198db2ad460dd0506de497965f752 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Sat, 30 Jan 2010 11:34:19 +0000 Subject: [PATCH] report de [15045] --- ecrire/action/documenter.php | 7 +++---- ecrire/inc/autoriser.php | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ecrire/action/documenter.php b/ecrire/action/documenter.php index 42c2599615..cefea4962c 100644 --- a/ecrire/action/documenter.php +++ b/ecrire/action/documenter.php @@ -39,10 +39,9 @@ function supprimer_lien_document($id_document, $objet, $id_objet) { sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=".$id_document); // On supprime ensuite s'il est orphelin - if (!sql_countsel('spip_documents_liens', 'id_document='.$id_document)){ - $supprimer_document = charger_fonction('supprimer_document','action'); - return $supprimer_document($id_document); - } + // (autorisation verifiee dans l'action) + $supprimer_document = charger_fonction('supprimer_document','action'); + return $supprimer_document($id_document); } // http://doc.spip.org/@action_documenter_post diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php index cdfae968c0..a6177fe010 100644 --- a/ecrire/inc/autoriser.php +++ b/ecrire/inc/autoriser.php @@ -274,6 +274,20 @@ function autoriser_document_modifier_dist($faire, $type, $id, $qui, $opt){ } +// On ne peut supprimer un document que s'il n'est lie a aucun objet +// c'est autorise pour tout auteur ayant acces a ecrire +// http://doc.spip.org/@autoriser_document_modifier_dist +function autoriser_document_supprimer_dist($faire, $type, $id, $qui, $opt){ + if (!intval($id) + OR !$qui['id_auteur'] + OR !autoriser('ecrire','','',$qui)) + return false; + if (sql_countsel('spip_documents_liens', 'id_document='.intval($id))) + return false; + + return true; +} + // Autoriser a modifier la breve $id // = admins & redac si la breve n'est pas publiee // = admins de rubrique parente si publiee -- GitLab