Browse Source

On n'affiche que les objets légitimes, qui existent vraiment pour les users, donc activés. De même pour l'autorisation, sinon erreurs SQL.

svn/root/tags/v4.47.18
rastapopoulos@spip.org 3 years ago
parent
commit
e9dfc24961
  1. 11
      gis_autoriser.php
  2. 2
      paquet.xml
  3. 19
      prive/objets/liste/objets_gis.html

11
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);
}

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="gis"
categorie="divers"
version="4.47.15"
version="4.47.16"
schema="2.1.0"
etat="stable"
compatibilite="[3.0.0;3.2.*]"

19
prive/objets/liste/objets_gis.html

@ -1,8 +1,11 @@
[(#SET{defaut_tri,#ARRAY{
objet,#ENV{objet_sens,-1},
id_objet,1
}})
]<B_liste_objets>
}})]
#SET{objets_legitimes, #VAL{objet_type}|array_map{#VAL|lister_tables_objets_sql|array_keys}}
<B_liste_objets>
#ANCRE_PAGINATION
<div class="liste-objets objets_gis">
<table class='spip liste'>
@ -17,7 +20,7 @@
</tr>
</thead>
<tbody>
<BOUCLE_liste_objets(GIS_LIENS){id_gis}{tri #ENV{order,objet},#GET{defaut_tri}}{pagination #ENV{nb,10}}{!lang_select}>
<BOUCLE_liste_objets(GIS_LIENS){id_gis}{objet IN #GET{objets_legitimes}}{tri #ENV{order,objet},#GET{defaut_tri}}{pagination #ENV{nb,10}}{!lang_select}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='picto'>[(#OBJET|objet_icone{16})]</td>
<td class='objet'>[(#OBJET|objet_info{texte_objet}|_T)]</td>
@ -25,10 +28,12 @@
<td class='titre principale'><a href="[(#ID_OBJET|generer_url_entite{#OBJET})]"
title="<:gis:info_voir_fiche_objet:> <:info_numero_abbreviation|attribut_html:> #ID_OBJET">#INFO_TITRE{#OBJET,#ID_OBJET}</a></td>
<td class='action'>
[(#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})]
]
</td>
</tr>
</BOUCLE_liste_objets>

Loading…
Cancel
Save