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> valeur n'a pas d'importance.</simpara></listitem>
</varlistentry> </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> <varlistentry>
<term>withoutCache</term> <term>withoutCache</term>
<listitem><simpara>Booléen permettant de désactiver l'utilisation du cache. Les valeurs acceptées <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( $data['objects'][$obj -> dn] = array(
'name' => $obj -> displayName, '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) if ($search -> displaySubDn)
$data['objects'][$obj -> dn][$search -> label_level] = $obj -> subDn; $data['objects'][$obj -> dn][$search -> label_level] = $obj -> subDn;
if ($search -> extraDisplayedColumns) { if ($search -> extraDisplayedColumns) {
@ -1632,6 +1635,9 @@ function handle_api_LSobject_search($request) {
$data['objects'][$obj -> dn][$attr] = $obj -> $attr; $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); LSsession :: displayAjaxReturn($data);
} }
LSurl :: add_handler('#^api/1.0/object/(?P<LSobject>[^/]+)/?$#', 'handle_api_LSobject_search', true, false, true); LSurl :: add_handler('#^api/1.0/object/(?P<LSobject>[^/]+)/?$#', 'handle_api_LSobject_search', true, false, true);