API objects list method: add as_list parameter

This commit is contained in:
Benjamin Renard 2021-03-17 18:37:19 +01:00
parent 78fedd79b2
commit 96c7e33034
2 changed files with 13 additions and 0 deletions

View file

@ -201,6 +201,13 @@
valeur n'a pas d'importance.</simpara></listitem>
</varlistentry>
<varlistentry>
<term>as_list</term>
<listitem><simpara>Permet de réclamer un résultat de recherche dans lequel, la clé <literal>
objects</literal> sera une liste et non un dictionnaire. Dans ce cas, le DN de l'objet est fourni
dans la clé <literal>dn</literal> des détails des objets.</simpara></listitem>
</varlistentry>
<varlistentry>
<term>withoutCache</term>
<listitem><simpara>Booléen permettant de désactiver l'utilisation du cache. Les valeurs acceptées

View file

@ -1620,6 +1620,9 @@ function handle_api_LSobject_search($request) {
$data['objects'][$obj -> dn] = array(
'name' => $obj -> displayName,
);
// When as_list enabled, put object DN in object details (otherwise, is present as key)
if (isset($_REQUEST['as_list']))
$data['objects'][$obj -> dn]['dn'] = $obj -> dn;
if ($search -> displaySubDn)
$data['objects'][$obj -> dn][$search -> label_level] = $obj -> subDn;
if ($search -> extraDisplayedColumns) {
@ -1632,6 +1635,9 @@ function handle_api_LSobject_search($request) {
$data['objects'][$obj -> dn][$attr] = $obj -> $attr;
}
}
// Handle as_list parameter
if (isset($_REQUEST['as_list']))
$data['objects'] = array_values($data['objects']);
LSsession :: displayAjaxReturn($data);
}
LSurl :: add_handler('#^api/1.0/object/(?P<LSobject>[^/]+)/?$#', 'handle_api_LSobject_search', true, false, true);