Skip to content
Extraits de code Groupes Projets
Valider b3d910c5 rédigé par Glop's avatar Glop Validation de cerdic
Parcourir les fichiers

Autorisation pour l'affichage des objets affichés dans une recherche

Vérifie que l'on est bien autorisé·e à voir des objets lorsque l'on fait
une recherche dans l'interface privée.

L'idée ici est de se reposer sur les autorisations `autoriser_*_voir`
pour s'assurer que l'on peut effectuer des recherches (et afficher les
résultats) sur les objets concernés. Sans cela, il est possible de faire
afficher à SPIP des objets (leur titre, en tout cas) que l'on n'aurait
pas l'autorisation de voir.

L'autorisation est globale, au sens où il n'y a pas de vérification de
l'autorisation pour chaque résultat de la recherche. Il y a peut-être
un moyen de faire plus finement en établissant une liste des
identifiants des objets que l'on peut afficher dans les résultats (un
peu à la manière de `statuts_articles_visibles`, qui indique quels
statuts d'articles on a le droit d'afficher), mais je ne vois pas
comment faire cela sans appeler l'autorisation pour tous les objets,
ce qui alourdirait considérablement la recherche.

Néanmoins, l'autorisation n'est pas appliquée dans le cas des articles,
car elle est déjà prise en compte lors de l'établissement de la variable
`statut`.
parent c6fedc5a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
{si #ENV{recherche}}>[ {si #ENV{recherche}}>[
(#SET{table,#CLE|table_objet})][ (#SET{table,#CLE|table_objet})][
(#SET{statut,[(#CLE|=={article}|?{[(#SESSION{statut}|statuts_articles_visibles)],''})]}) (#SET{statut,[(#CLE|=={article}|?{[(#SESSION{statut}|statuts_articles_visibles)],''})]})
][(#GET{table}|trouver_fond{prive/objets/liste/} ][(#GET{table}|trouver_fond{prive/objets/liste/}|et{[(#AUTORISER{voir,[_(#CLE|objet_info{table_objet})]}|ou{#CLE|=={article}})]}
|?{#GET{table}|inclure_liste_recherche_par_id{#ENV*{recherche},#GET{statut},#ENV**}}) |?{#GET{table}|inclure_liste_recherche_par_id{#ENV*{recherche},#GET{statut},#ENV**}})
]</BOUCLE_tablesid> ]</BOUCLE_tablesid>
[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}}|wrap{'<h3>'})] [(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}}|wrap{'<h3>'})]
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
{si #ENV{recherche}}>[ {si #ENV{recherche}}>[
(#SET{table,#CLE|table_objet})][ (#SET{table,#CLE|table_objet})][
(#SET{statut,[(#CLE|=={article}|?{[(#SESSION{statut}|statuts_articles_visibles)],''})]}) (#SET{statut,[(#CLE|=={article}|?{[(#SESSION{statut}|statuts_articles_visibles)],''})]})
][(#GET{table}|trouver_fond{prive/objets/liste/} ][(#GET{table}|trouver_fond{prive/objets/liste/}|et{[(#AUTORISER{voir,[_(#CLE|objet_info{table_objet})]}|ou{#CLE|=={article}})]}
|?{#INCLURE{fond=prive/objets/liste/#GET{table},env,recherche=#ENV*{recherche},statut=#GET{statut},par=points}}) |?{#INCLURE{fond=prive/objets/liste/#GET{table},env,recherche=#ENV*{recherche},statut=#GET{statut},par=points}})
]</BOUCLE_tables> ]</BOUCLE_tables>
[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}}|wrap{'<h3>'})] [(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}}|wrap{'<h3>'})]
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter