Valider e9dfc249 rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

On n'affiche que les objets légitimes, qui existent vraiment pour les users,...

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.
parent 298d0665
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+10 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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);
}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<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.*]"
+12 −7
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
[(#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'>
				[(#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>