From e9dfc249613ec21a9514aa3d38dab2e2c78f8304 Mon Sep 17 00:00:00 2001 From: "rastapopoulos@spip.org" <> Date: Tue, 17 Dec 2019 18:49:36 +0000 Subject: [PATCH] =?UTF-8?q?On=20n'affiche=20que=20les=20objets=20l=C3=A9gi?= =?UTF-8?q?times,=20qui=20existent=20vraiment=20pour=20les=20users,=20donc?= =?UTF-8?q?=20activ=C3=A9s.=20De=20m=C3=AAme=20pour=20l'autorisation,=20si?= =?UTF-8?q?non=20erreurs=20SQL.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gis_autoriser.php | 11 ++++++++++- paquet.xml | 2 +- prive/objets/liste/objets_gis.html | 19 ++++++++++++------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/gis_autoriser.php b/gis_autoriser.php index ba6d41a..aadadaf 100644 --- a/gis_autoriser.php +++ b/gis_autoriser.php @@ -121,11 +121,20 @@ function autoriser_gis_delier_dist($faire, $quoi, $id, $qui, $opts) { * @return boolean true/false */ function autoriser_gis_supprimer_dist($faire, $quoi, $id, $qui, $opts) { - $liaisons = sql_select('*', 'spip_gis_liens', 'id_gis=' . intval($id)); + include_spip('base/objets'); + + $objets_legitimes = array_map('objet_type', array_keys(lister_tables_objets_sql())); + $liaisons = sql_select( + '*', + 'spip_gis_liens', + array('id_gis=' . intval($id), sql_in('objet', $objets_legitimes)) + ); + while ($liaison = sql_fetch($liaisons)) { if (!autoriser('delier', 'gis', $liaison['id_gis'], $qui, $liaison)) { return false; } } + return autoriser('modifier', 'gis', $id, $qui, $opts); } diff --git a/paquet.xml b/paquet.xml index e450797..9a0c06c 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ +}})] + +#SET{objets_legitimes, #VAL{objet_type}|array_map{#VAL|lister_tables_objets_sql|array_keys}} + + #ANCRE_PAGINATION
@@ -17,7 +20,7 @@ - + @@ -25,10 +28,12 @@
[(#OBJET|objet_icone{16})] [(#OBJET|objet_info{texte_objet}|_T)]#INFO_TITRE{#OBJET,#ID_OBJET} - [(#BOUTON_ACTION{ - <:gis:info_supprimer_lien:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})], - #URL_ACTION_AUTEUR{editer_lien_gis,delier/#ID_GIS/#OBJET/#ID_OBJET,#SELF}, - ajax})] + [(#AUTORISER{delier, gis, #ID_GIS, '', #ARRAY{objet,#OBJET,id_objet,#ID_OBJET}}|oui) + [(#BOUTON_ACTION{ + <:gis:info_supprimer_lien:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})], + #URL_ACTION_AUTEUR{editer_lien_gis,delier/#ID_GIS/#OBJET/#ID_OBJET,#SELF}, + ajax})] + ]