ldapsaisie/doc/dist/4.2.0-1-17-g5e9773a/api/index.html

4080 lines
101 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="fr" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Documentation">
<meta name="author" content="Benjamin Renard <brenard@easter-eggs.com / brenard@zionetrix.net>">
<link rel="canonical" href="https://ldapsaisie.org/doc/dev/api/">
<link rel="prev" href="../conf/LSauthMethod/LSauthMethod_HTTP/">
<link rel="next" href="../contrib/">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.10">
<title>API - LdapSaisie</title>
<link rel="stylesheet" href="../assets/stylesheets/main.7e359304.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../css/print-site.css">
<link rel="stylesheet" href="../css/print-site-material.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="light-blue" data-md-color-accent="blue">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#api" class="md-skip">
Aller au contenu
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="En-tête">
<a href="https://ldapsaisie.org" title="LdapSaisie" class="md-header__button md-logo" aria-label="LdapSaisie" data-md-component="logo">
<img src="../assets/images/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
LdapSaisie
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
API
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Rechercher" placeholder="Rechercher" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Recherche">
<button type="reset" class="md-search__icon md-icon" title="Effacer" aria-label="Effacer" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initialisation de la recherche
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://gitlab.easter-eggs.com/ee/ldapsaisie" title="Aller au dépôt" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
ee/ldapsaisie
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="https://ldapsaisie.org" title="LdapSaisie" class="md-nav__button md-logo" aria-label="LdapSaisie" data-md-component="logo">
<img src="../assets/images/logo.png" alt="logo">
</a>
LdapSaisie
</label>
<div class="md-nav__source">
<a href="https://gitlab.easter-eggs.com/ee/ldapsaisie" title="Aller au dépôt" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
ee/ldapsaisie
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Installation
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Installation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../install/requirements/" class="md-nav__link">
<span class="md-ellipsis">
Pré-requis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../install/download/" class="md-nav__link">
<span class="md-ellipsis">
Téléchargement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../install/arbo/" class="md-nav__link">
<span class="md-ellipsis">
Arborescence du projet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../install/howto/" class="md-nav__link">
<span class="md-ellipsis">
Tutoriel d'installation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Mise à jour
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Mise à jour
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../upgrade/" class="md-nav__link">
<span class="md-ellipsis">
Instroduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../upgrade/method/" class="md-nav__link">
<span class="md-ellipsis">
Procédure de mise à jour
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../upgrade/2_4_1-to-3_0_0/" class="md-nav__link">
<span class="md-ellipsis">
2.4.1 -> 3.0.0
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Configuration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Configuration globale
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Configuration globale
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/global/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Connexion LDAP
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Connexion LDAP
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/global/ldap/" class="md-nav__link">
<span class="md-ellipsis">
Configuration des serveurs LDAP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/global/ldap/LSprofile/" class="md-nav__link">
<span class="md-ellipsis">
Profils d'utilisateurs (LSprofile)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/global/ldap/subDn/" class="md-nav__link">
<span class="md-ellipsis">
Sous-niveaux de connexion (subDn)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/global/ldap/recoverPassword/" class="md-nav__link">
<span class="md-ellipsis">
Récupération de mot de passe
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../conf/global/LSlog/" class="md-nav__link">
<span class="md-ellipsis">
Configuration de la journalisation (LSlog)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/global/LSformat/" class="md-nav__link">
<span class="md-ellipsis">
Format paramétrable (LSformat)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/global/LDAP_search_params/" class="md-nav__link">
<span class="md-ellipsis">
Paramètres étendus des recherches dans l'annuaire
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
<label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
<span class="md-ellipsis">
Objets de l'annuaire
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3">
<span class="md-nav__icon md-icon"></span>
Objets de l'annuaire
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSobject/" class="md-nav__link">
<span class="md-ellipsis">
Configuration LSobject
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_2" >
<label class="md-nav__link" for="__nav_4_3_2" id="__nav_4_3_2_label" tabindex="0">
<span class="md-ellipsis">
Attributs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3_2">
<span class="md-nav__icon md-icon"></span>
Attributs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/" class="md-nav__link">
<span class="md-ellipsis">
Configuration des attributs
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_2_2" >
<label class="md-nav__link" for="__nav_4_3_2_2" id="__nav_4_3_2_2_label" tabindex="0">
<span class="md-ellipsis">
Types d'attribut LDAP (LSattr_ldap)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_4_3_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3_2_2">
<span class="md-nav__icon md-icon"></span>
Types d'attribut LDAP (LSattr_ldap)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_ascii/" class="md-nav__link">
<span class="md-ellipsis">
ascii
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_boolean/" class="md-nav__link">
<span class="md-ellipsis">
boolean
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_compositeValueToJSON/" class="md-nav__link">
<span class="md-ellipsis">
compositeValueToJson
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_date/" class="md-nav__link">
<span class="md-ellipsis">
date
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_image/" class="md-nav__link">
<span class="md-ellipsis">
image
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_naiveDate/" class="md-nav__link">
<span class="md-ellipsis">
naiveDate
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_numeric/" class="md-nav__link">
<span class="md-ellipsis">
numeric
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_password/" class="md-nav__link">
<span class="md-ellipsis">
password
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_postaladdress/" class="md-nav__link">
<span class="md-ellipsis">
postaladdress
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_pwdHistory/" class="md-nav__link">
<span class="md-ellipsis">
pwdHistory
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_sambaAcctFlags/" class="md-nav__link">
<span class="md-ellipsis">
sambaAcctFlags
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_ldap/LSattr_ldap_shadowExpire/" class="md-nav__link">
<span class="md-ellipsis">
shadowExpire
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_2_3" >
<label class="md-nav__link" for="__nav_4_3_2_3" id="__nav_4_3_2_3_label" tabindex="0">
<span class="md-ellipsis">
Types d'attribut HTML (LSattr_html)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_4_3_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3_2_3">
<span class="md-nav__icon md-icon"></span>
Types d'attribut HTML (LSattr_html)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_boolean/" class="md-nav__link">
<span class="md-ellipsis">
boolean
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_date/" class="md-nav__link">
<span class="md-ellipsis">
date
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_image/" class="md-nav__link">
<span class="md-ellipsis">
image
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_jsonCompositeAttribute/" class="md-nav__link">
<span class="md-ellipsis">
jsonCompositeAttribute
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_labeledValue/" class="md-nav__link">
<span class="md-ellipsis">
labeledValue
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_mail/" class="md-nav__link">
<span class="md-ellipsis">
mail
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_maildir/" class="md-nav__link">
<span class="md-ellipsis">
maildir
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_mailQuota/" class="md-nav__link">
<span class="md-ellipsis">
mailQuota
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_password/" class="md-nav__link">
<span class="md-ellipsis">
password
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_postaladdress/" class="md-nav__link">
<span class="md-ellipsis">
postaladdress
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_pre/" class="md-nav__link">
<span class="md-ellipsis">
pre
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_rss/" class="md-nav__link">
<span class="md-ellipsis">
rss
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_sambaAcctFlags/" class="md-nav__link">
<span class="md-ellipsis">
sambaAcctFlags
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_select_box/" class="md-nav__link">
<span class="md-ellipsis">
select_box
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_select_list/" class="md-nav__link">
<span class="md-ellipsis">
select_list
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_select_object/" class="md-nav__link">
<span class="md-ellipsis">
select_object
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_ssh_key/" class="md-nav__link">
<span class="md-ellipsis">
ssh_key
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_tel/" class="md-nav__link">
<span class="md-ellipsis">
tel
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_text/" class="md-nav__link">
<span class="md-ellipsis">
text
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_textarea/" class="md-nav__link">
<span class="md-ellipsis">
textarea
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_url/" class="md-nav__link">
<span class="md-ellipsis">
url
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_valueWithUnit/" class="md-nav__link">
<span class="md-ellipsis">
valueWithUnit
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_wysiwyg/" class="md-nav__link">
<span class="md-ellipsis">
wysiwyg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/LSattr_html/LSattr_html_xmpp/" class="md-nav__link">
<span class="md-ellipsis">
xmpp
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_2_4" >
<label class="md-nav__link" for="__nav_4_3_2_4" id="__nav_4_3_2_4_label" tabindex="0">
<span class="md-ellipsis">
Règles de vérification syntaxique (LSformRule)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_4_3_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3_2_4">
<span class="md-nav__icon md-icon"></span>
Règles de vérification syntaxique (LSformRule)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/alphanumeric/" class="md-nav__link">
<span class="md-ellipsis">
alphanumeric
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/callable/" class="md-nav__link">
<span class="md-ellipsis">
callable
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/date/" class="md-nav__link">
<span class="md-ellipsis">
date
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/differentPassword/" class="md-nav__link">
<span class="md-ellipsis">
differentPassword
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/email/" class="md-nav__link">
<span class="md-ellipsis">
email
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/filesize/" class="md-nav__link">
<span class="md-ellipsis">
filesize
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/imagefile/" class="md-nav__link">
<span class="md-ellipsis">
imagefile
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/imagesize/" class="md-nav__link">
<span class="md-ellipsis">
imagesize
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/inarray/" class="md-nav__link">
<span class="md-ellipsis">
inarray
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/integer/" class="md-nav__link">
<span class="md-ellipsis">
integer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/ldapSearchURI/" class="md-nav__link">
<span class="md-ellipsis">
ldapSearchURI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/lettersonly/" class="md-nav__link">
<span class="md-ellipsis">
lettersonly
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/maxlength/" class="md-nav__link">
<span class="md-ellipsis">
maxlength
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/mimetype/" class="md-nav__link">
<span class="md-ellipsis">
mimetype
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/minlength/" class="md-nav__link">
<span class="md-ellipsis">
minlength
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/nonzero/" class="md-nav__link">
<span class="md-ellipsis">
nonzero
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/nopunctuation/" class="md-nav__link">
<span class="md-ellipsis">
nopunctuation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/numberOfValues/" class="md-nav__link">
<span class="md-ellipsis">
numberOfValues
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/numeric/" class="md-nav__link">
<span class="md-ellipsis">
numeric
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/password/" class="md-nav__link">
<span class="md-ellipsis">
password
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/rangelength/" class="md-nav__link">
<span class="md-ellipsis">
rangelength
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/regex/" class="md-nav__link">
<span class="md-ellipsis">
regex
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/required/" class="md-nav__link">
<span class="md-ellipsis">
required
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/ssh_pub_key/" class="md-nav__link">
<span class="md-ellipsis">
ssh_pub_key
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/telephonenumber/" class="md-nav__link">
<span class="md-ellipsis">
telephonenumber
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/check_data/zxcvbn/" class="md-nav__link">
<span class="md-ellipsis">
zxcvbn
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/validation/" class="md-nav__link">
<span class="md-ellipsis">
Règles de vérification d'intégrité
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSattribute/triggers/" class="md-nav__link">
<span class="md-ellipsis">
Déclencheurs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/container_auto_create/" class="md-nav__link">
<span class="md-ellipsis">
Création automatique du conteneur des LSobjets dans un subDn
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/triggers/" class="md-nav__link">
<span class="md-ellipsis">
Déclencheurs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/customActions/" class="md-nav__link">
<span class="md-ellipsis">
Actions personnalisées (customActions)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSrelation/" class="md-nav__link">
<span class="md-ellipsis">
Les relations entre les objets de l'annuire (LSrelation)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSform/" class="md-nav__link">
<span class="md-ellipsis">
Les formulaires (LSform)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/LSsearch/" class="md-nav__link">
<span class="md-ellipsis">
Recherche des objets dans l'annuaire (LSsearch)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSobject/ioFormat/" class="md-nav__link">
<span class="md-ellipsis">
Les formats d'import/export (ioFormat)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
<label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
<span class="md-ellipsis">
Configuration des addons (LSaddons)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_4">
<span class="md-nav__icon md-icon"></span>
Configuration des addons (LSaddons)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSaddon/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_accesslog/" class="md-nav__link">
<span class="md-ellipsis">
accesslog
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_asterisk/" class="md-nav__link">
<span class="md-ellipsis">
asterisk
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_exportSearchResultAsCSV/" class="md-nav__link">
<span class="md-ellipsis">
exportSearchResultAsCSV
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_impersonate/" class="md-nav__link">
<span class="md-ellipsis">
impersonate
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_LSaccessRightsMatrixView/" class="md-nav__link">
<span class="md-ellipsis">
LSaccessRightsMatrixView
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_mail/" class="md-nav__link">
<span class="md-ellipsis">
mail
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_maildir/" class="md-nav__link">
<span class="md-ellipsis">
maildir
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_mailquota/" class="md-nav__link">
<span class="md-ellipsis">
mailquota
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_phpldapadmin/" class="md-nav__link">
<span class="md-ellipsis">
phpldapadmin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_ppolicy/" class="md-nav__link">
<span class="md-ellipsis">
ppolicy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_showSupportInfo/" class="md-nav__link">
<span class="md-ellipsis">
showSupportInfo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSaddon/LSaddon_showTechInfo/" class="md-nav__link">
<span class="md-ellipsis">
showTechInfo
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" >
<label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0">
<span class="md-ellipsis">
Configuration des méthodes d'authentification (LSauthMethod)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_5">
<span class="md-nav__icon md-icon"></span>
Configuration des méthodes d'authentification (LSauthMethod)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../conf/LSauthMethod/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSauthMethod/LSauthMethod_anonymous/" class="md-nav__link">
<span class="md-ellipsis">
anonymous
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSauthMethod/LSauthMethod_CAS/" class="md-nav__link">
<span class="md-ellipsis">
CAS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../conf/LSauthMethod/LSauthMethod_HTTP/" class="md-nav__link">
<span class="md-ellipsis">
HTTP
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
API
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table des matières">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table des matières
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#authentification" class="md-nav__link">
<span class="md-ellipsis">
Authentification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#methodes-exposees" class="md-nav__link">
<span class="md-ellipsis">
Méthodes exposées
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Contribution
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Contribution
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../contrib/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
<span class="md-ellipsis">
Les addons (LSaddon)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_2">
<span class="md-nav__icon md-icon"></span>
Les addons (LSaddon)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../contrib/addons/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../contrib/addons/custom-views/" class="md-nav__link">
<span class="md-ellipsis">
Les vues personnalisées
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../contrib/addons/cli-commands/" class="md-nav__link">
<span class="md-ellipsis">
Les commandes CLI personnalisées
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../contrib/form-elements/" class="md-nav__link">
<span class="md-ellipsis">
Les éléments des formulaires (LSformElement)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../contrib/form-rules/" class="md-nav__link">
<span class="md-ellipsis">
Les règles de validation syntaxiques (LSformRule)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../print_page/" class="md-nav__link">
<span class="md-ellipsis">
Documentation
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table des matières">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table des matières
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#authentification" class="md-nav__link">
<span class="md-ellipsis">
Authentification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#methodes-exposees" class="md-nav__link">
<span class="md-ellipsis">
Méthodes exposées
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="../print_page/" title="Print Site" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 3H6v4h12m1 5a1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1 1 1 0 0 1-1 1m-3 7H8v-5h8m3-6H5a3 3 0 0 0-3 3v6h4v4h12v-4h4v-6a3 3 0 0 0-3-3Z"/></svg>
</a>
<h1 id="api">API</h1>
<p>Depuis la version 4.0, LdapSaisie offre une API visant à permettre de faire les mêmes choses que ce
qu'il est possible d'accomplir via l'interface web. L'idée n'est bien entendue pas de se substituer
systématiquement à la possibilité de se connecter directement à l'annuaire, mais plutôt d'offrir une
API web pour l'intégration d'outil préférant ce mode d'interaction, ou encore, pour exposer des
méthodes accès aux données de l'annuaire tout en profitant des logiques métiers
implémentées/configurées dans LdapSaisie : validation syntaxique et d'unicité, règle de génération
et d'interdépendances des attributs, déclencheurs, ...</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Cette API est actuellement dans une phase de test et n'offre pas encore toutes les
fonctionnalités proposées dans l'interface web. Elle est vouée à évoluer pour intégrer petit à
petit un maximum de fonctionnalités. Des contributions à ce sujet seront plus qu'appréciée !</p>
</div>
<h2 id="authentification">Authentification</h2>
<p>L'authentification à l'API utilise le même composant <code>LSauth</code> que lors d'une authentification à
l'interface web, cependant, ce composant s'adapte pour prendre en compte de mode de connexion. Par
défaut, la méthode d'authentification utilisée sera
<a href="../conf/LSauthMethod/LSauthMethod_HTTP/#LSauthMethod_HTTP">LSauthMethod_HTTP</a> et permettra de se
connecter en spécifiant le nom d'utilisateur et le mot de l'utilisateur cherchant à se connecter via
une authentification basique HTTP.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Il est à noter que tous les types d'utilisateur ne peuvent pas forcément utiliser l'API : le
paramètre <code>api_access</code> doit être explicitement positionné à <code>True</code> dans
<a href="../conf/global/ldap/#configuration-des-serveurs-ldap">la configuration du serveur LDAP</a>.</p>
</div>
<p>Une fois connecté, l'utilisateur endossera les droits associés à ses
<a href="../conf/global/ldap/LSprofile/#profils-dutilisateurs">LSprofiles</a>, tout comme un utilisateur
connecté à l'interface web.</p>
<h2 id="methodes-exposees">Méthodes exposées</h2>
<p>Les URLs des méthodes de l'API ont été construites par mimétisme sur celle de l'interface web et
sous la racine web <code>api/</code>. Par ailleurs, un numéro de version d'API a été insérée dans chacune
d'elles afin d'anticiper toutes évolutions futures majeures nécéssitants de conserver une
rétrocompatibilité avec les anciennes versions de l'API.</p>
<p>Toutes les méthodes retournent des informations au format JSON et accepte le paramètre <code>pretty</code>
permettant d'obtenir un retour plus facilement lisible. Les chaines de caractères échangées doivent
par ailleurs être encodées en UTF-8. On trouvera par ailleurs dans le retour JSON :</p>
<ul>
<li>
<p><code>success</code></p>
<p>Booléen précisant si l'action demandée a correctement été exécutée.</p>
</li>
</ul>
<ul>
<li>
<p><code>messages</code></p>
<p>Ce tableau pourra être présent et lister les messages d'informations générées par l'action
demandée. Il s'agira des mêmes messages que ceux affichés dans l'interface web lorsque les
actions équivalentes y sont faites.</p>
</li>
</ul>
<ul>
<li><code>errors</code>
Ce tableau pourra être présent et lister les messages d'erreurs générées par l'action demandée.</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Les messages d'informations et d'erreurs générées par l'application sont traduites dans la
langue courante qui peut être spécifiée via le paramètre <code>lang</code> accepté par toutes les méthodes
(exemple : <code>fr_FR</code> ou <code>en_US</code>).</p>
</div>
<p>Lorsqu'une méthode cible un type d'objets, voir un objet en particulier, ces informations seront
transmises dans l'URL appelée. Si le type d'objet ou l'objet demandé est introuvable, une erreur
HTTP 404 sera générée.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Sauf précision contraire, toutes les méthodes exposées sont accessibles uniquement via les
méthodes HTTP <code>GET</code> ou <code>POST</code>. L'accès via une autre méthode retournera une erreur 404.</p>
</div>
<ul>
<li>
<p><code>/api/1.0/object/[object type]</code></p>
<p>Cette méthode permet de rechercher/lister les informations d'un type d'objets de l'annuaire en
particulier. Le type de l'objet est précisé dans l'URL et doit être encodé en conséquence. Par
mimétisme du comportement de l'interface web, la recherche est paginée et accepte des paramètres
similaires en plus de paramètre plus appropriés à un fonctionnement programmatique :</p>
<ul>
<li>
<p><code>filter</code></p>
<p>Permet de spécifier un filtre de recherche LDAP personnalisé. Celui-ci sera combiné avec les
paramètres propres au type d'objets recherchés et aux autres paramètres spécifiés (<code>pattern</code>
par exemple).</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Du fait d'une limitation de la classe <code>Net_LDAP2_Filter</code> utilisée pour analyser le
filtre passé en paramètre, seuls les filtres simples du type <code>(attribut=valeur)</code> sont
acceptés ici. Pour les mêmes raisons, il est important que le filtre spécifié soit
toujours entourné de paranthèses.</p>
</div>
</li>
</ul>
<ul>
<li>
<p><code>predefinedFilter</code></p>
<p>Permet de spécifier un des filtres de recherche LDAP prédéfinis dans la configuration du
type d'objet.</p>
</li>
</ul>
<ul>
<li>
<p><code>pattern</code></p>
<p>Permet de spécifier un mot clé de recherche, comme proposé dans l'interface web.</p>
</li>
</ul>
<ul>
<li>
<p><code>approx</code></p>
<p>Booléen permettant d'activer/désactiver la recherche approximative sur le mot clé. Les
valeurs acceptées sont <code>1</code> ou <code>0</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>basedn</code></p>
<p>Permet de spécifier une base de recherche personnalisé pour la recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>subDn</code></p>
<p>Dans le cas d'un serveur LDAP configuré avec des
<a href="../conf/global/ldap/subDn/#sous-niveaux-de-connexion">sous-niveaux de connexion</a>, permet de
spécifier le sous-niveau pour la recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>scope</code></p>
<p>Permet de spécifier l'étendue de la recherche dans l'annuaire. Valeurs acceptées: <code>sub</code>,
<code>one</code> et <code>base</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>recursive</code></p>
<p>Booléen permettant d'activer/désactiver la recherche recursive, c'est à dire une recherche à
la racine de l'annuaire (ou du
<a href="../conf/global/ldap/subDn/#sous-niveaux-de-connexion">sous-niveau de connexion</a>) avec une
étendue de recherche maximale. Les valeurs acceptées sont <code>1</code> ou <code>0</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>displayFormat</code></p>
<p>Permet de spécifier un <a href="../conf/global/LSformat/#format-parametrable">LSformat</a> personnalisé
pour le nom des objets dans le résultat de recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>extraDisplayedColumns</code></p>
<p>Booléen permettant d'activer le retour des colonnes personnalisées dans le résultat de
recherche. Les valeurs acceptées sont <code>1</code> ou <code>0</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>attributes</code></p>
<p>Liste des attributs supplémentaires que devra retourner la recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>attributesDetails</code></p>
<p>Permet d'obtenir les détails sur les valeurs des attributs (au lieu des valeurs au format
attendu en cas de création/modification de l'objet). Seul la présence de ce paramètre suffit
à activer ce comportement, sa valeur n'a pas d'importance.</p>
</li>
</ul>
<ul>
<li>
<p><code>sortBy</code></p>
<p>Permet de préciser sur quelle information le résultat de recherche doit être trié. Valeurs
acceptées : <code>displayName</code>, <code>subDn</code> ou un des noms des colonnes personnalisées.</p>
</li>
</ul>
<ul>
<li>
<p><code>sortDirection</code></p>
<p>Permet de préciser l'ordre de tri du résultat de recherche. Valeurs acceptées : <code>ASC</code> (A-Z)
ou <code>DESC</code> (Z-A).</p>
</li>
</ul>
<ul>
<li>
<p><code>page</code></p>
<p>Permet de préciser la page du résultat de recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>nbObjectsByPage</code></p>
<p>Permet de préciser le nombre maximum d'objets retournés par page du résultat de recherche.</p>
</li>
</ul>
<ul>
<li>
<p><code>all</code></p>
<p>Permet de réclamer le résultat complet de la recherche (désactivation de la pagination).
Seul la présence de ce paramètre suffit à activer ce comportement, sa valeur n'a pas
d'importance.</p>
</li>
</ul>
<ul>
<li>
<p><code>as_list</code></p>
<p>Permet de réclamer un résultat de recherche dans lequel, la clé <code>objects</code> sera une liste et
non un dictionnaire. Dans ce cas, le DN de l'objet est fourni dans la clé <code>dn</code> des détails
des objets.</p>
</li>
</ul>
<ul>
<li>
<p><code>withoutCache</code></p>
<p>Booléen permettant de désactiver l'utilisation du cache. Les valeurs acceptées sont <code>1</code> ou
<code>0</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>keepParamsBetweenSearches</code></p>
<p>Booléen permettant d'activer/désactiver le stockage en session des paramètres de recherche
(optionnel, par défaut : <code>False</code>). Les valeurs acceptées sont <code>1</code> ou <code>0</code>.</p>
</li>
</ul>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople?extraDisplayedColumns=1&amp;pretty&#39;
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>{
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> &quot;success&quot;: true,
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> &quot;objects&quot;: {
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> &quot;uid=hmartin,ou=people,o=ls&quot;: {
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> &quot;name&quot;: &quot;Henri MARTIN&quot;,
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> &quot;Mail&quot;: &quot;henri.martin@ls.com&quot;
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> },
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> &quot;uid=s.ldapsaisie,ou=people,o=ls&quot;: {
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> &quot;name&quot;: &quot;Secretariat LdapSaisie&quot;,
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a> &quot;Mail&quot;: &quot;secretariat@ldapsaisie.biz&quot;
<a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> },
<a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a> &quot;uid=ls,ou=people,o=ls&quot;: {
<a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> &quot;name&quot;: &quot;LdapSaisie&quot;,
<a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a> &quot;Mail&quot;: &quot;ldap.saisie@ls.com&quot;
<a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a> },
<a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a> &quot;uid=erwpa,ou=people,o=ls&quot;: {
<a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a> &quot;name&quot;: &quot;Erwan PAGE&quot;,
<a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a> &quot;Mail&quot;: &quot;erwan.page@ldapsaisie.biz&quot;
<a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a> },
<a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a> &quot;uid=user2,ou=people,ou=company1,ou=companies,o=ls&quot;: {
<a id="__codelineno-0-22" name="__codelineno-0-22" href="#__codelineno-0-22"></a> &quot;name&quot;: &quot;prenom2 nom2&quot;,
<a id="__codelineno-0-23" name="__codelineno-0-23" href="#__codelineno-0-23"></a> &quot;Mail&quot;: &quot;user2@ls.com&quot;
<a id="__codelineno-0-24" name="__codelineno-0-24" href="#__codelineno-0-24"></a> }
<a id="__codelineno-0-25" name="__codelineno-0-25" href="#__codelineno-0-25"></a> },
<a id="__codelineno-0-26" name="__codelineno-0-26" href="#__codelineno-0-26"></a> &quot;total&quot;: 14,
<a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a> &quot;params&quot;: {
<a id="__codelineno-0-28" name="__codelineno-0-28" href="#__codelineno-0-28"></a> &quot;keepParamsBetweenSearches&quot;: false,
<a id="__codelineno-0-29" name="__codelineno-0-29" href="#__codelineno-0-29"></a> &quot;filter&quot;: null,
<a id="__codelineno-0-30" name="__codelineno-0-30" href="#__codelineno-0-30"></a> &quot;pattern&quot;: null,
<a id="__codelineno-0-31" name="__codelineno-0-31" href="#__codelineno-0-31"></a> &quot;predefinedFilter&quot;: false,
<a id="__codelineno-0-32" name="__codelineno-0-32" href="#__codelineno-0-32"></a> &quot;basedn&quot;: null,
<a id="__codelineno-0-33" name="__codelineno-0-33" href="#__codelineno-0-33"></a> &quot;scope&quot;: null,
<a id="__codelineno-0-34" name="__codelineno-0-34" href="#__codelineno-0-34"></a> &quot;sizelimit&quot;: 0,
<a id="__codelineno-0-35" name="__codelineno-0-35" href="#__codelineno-0-35"></a> &quot;attronly&quot;: false,
<a id="__codelineno-0-36" name="__codelineno-0-36" href="#__codelineno-0-36"></a> &quot;approx&quot;: false,
<a id="__codelineno-0-37" name="__codelineno-0-37" href="#__codelineno-0-37"></a> &quot;recursive&quot;: true,
<a id="__codelineno-0-38" name="__codelineno-0-38" href="#__codelineno-0-38"></a> &quot;attributes&quot;: [],
<a id="__codelineno-0-39" name="__codelineno-0-39" href="#__codelineno-0-39"></a> &quot;onlyAccessible&quot;: true,
<a id="__codelineno-0-40" name="__codelineno-0-40" href="#__codelineno-0-40"></a> &quot;sortDirection&quot;: null,
<a id="__codelineno-0-41" name="__codelineno-0-41" href="#__codelineno-0-41"></a> &quot;sortBy&quot;: null,
<a id="__codelineno-0-42" name="__codelineno-0-42" href="#__codelineno-0-42"></a> &quot;sortlimit&quot;: 0,
<a id="__codelineno-0-43" name="__codelineno-0-43" href="#__codelineno-0-43"></a> &quot;displayFormat&quot;: &quot;%{cn}&quot;,
<a id="__codelineno-0-44" name="__codelineno-0-44" href="#__codelineno-0-44"></a> &quot;nbObjectsByPage&quot;: 25,
<a id="__codelineno-0-45" name="__codelineno-0-45" href="#__codelineno-0-45"></a> &quot;withoutCache&quot;: false,
<a id="__codelineno-0-46" name="__codelineno-0-46" href="#__codelineno-0-46"></a> &quot;extraDisplayedColumns&quot;: true
<a id="__codelineno-0-47" name="__codelineno-0-47" href="#__codelineno-0-47"></a> },
<a id="__codelineno-0-48" name="__codelineno-0-48" href="#__codelineno-0-48"></a> &quot;page&quot;: 1,
<a id="__codelineno-0-49" name="__codelineno-0-49" href="#__codelineno-0-49"></a> &quot;nbPages&quot;: 3
<a id="__codelineno-0-50" name="__codelineno-0-50" href="#__codelineno-0-50"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/[dn]</code></p>
<p>Cette méthode permet de récupérer les informations d'un objet de l'annuaire au format JSON. Le
type de l'objet et son DN sont précisés dans l'URL et doivent être encodés en conséquence. Par
défaut, les valeurs des attributs retournées sont au format tel qu'attendu en cas de
création/modification de l'objet. Il est cependant possible d'ajouter le paramètre <code>details</code>
afin d'obtenir des informations complémentaires sur les valeurs des attributs.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople/uid=hmartin,ou=people,o=ls?pretty&#39;
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>{
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a> &quot;success&quot;: true,
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> &quot;dn&quot;: &quot;uid=hmartin,ou=people,o=ls&quot;,
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> &quot;type&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> &quot;name&quot;: &quot;Henri MARTIN&quot;,
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a> &quot;details&quot;: false,
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a> &quot;attributes&quot;: {
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a> &quot;uid&quot;: &quot;hmartin&quot;,
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a> &quot;givenName&quot;: &quot;Henri&quot;,
<a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a> &quot;sn&quot;: &quot;MARTIN&quot;,
<a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a> &quot;cn&quot;: &quot;Henri MARTIN&quot;,
<a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a> &quot;mail&quot;: &quot;henri.martin@ls.com&quot;,
<a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a> &quot;personalTitle&quot;: &quot;M.&quot;,
<a id="__codelineno-1-15" name="__codelineno-1-15" href="#__codelineno-1-15"></a> &quot;description&quot;: [],
<a id="__codelineno-1-16" name="__codelineno-1-16" href="#__codelineno-1-16"></a> &quot;jpegPhoto&quot;: null,
<a id="__codelineno-1-17" name="__codelineno-1-17" href="#__codelineno-1-17"></a> &quot;lsGodfatherDn&quot;: [
<a id="__codelineno-1-18" name="__codelineno-1-18" href="#__codelineno-1-18"></a> &quot;uid=eeggs,ou=people,o=ls&quot;
<a id="__codelineno-1-19" name="__codelineno-1-19" href="#__codelineno-1-19"></a> ],
<a id="__codelineno-1-20" name="__codelineno-1-20" href="#__codelineno-1-20"></a> &quot;uidNumber&quot;: &quot;101022&quot;,
<a id="__codelineno-1-21" name="__codelineno-1-21" href="#__codelineno-1-21"></a> &quot;gidNumber&quot;: &quot;102001&quot;,
<a id="__codelineno-1-22" name="__codelineno-1-22" href="#__codelineno-1-22"></a> &quot;loginShell&quot;: &quot;no&quot;,
<a id="__codelineno-1-23" name="__codelineno-1-23" href="#__codelineno-1-23"></a> &quot;homeDirectory&quot;: &quot;\/home\/com&quot;,
<a id="__codelineno-1-24" name="__codelineno-1-24" href="#__codelineno-1-24"></a> &quot;gecos&quot;: null,
<a id="__codelineno-1-25" name="__codelineno-1-25" href="#__codelineno-1-25"></a> &quot;shadowExpire&quot;: null,
<a id="__codelineno-1-26" name="__codelineno-1-26" href="#__codelineno-1-26"></a> &quot;shadowMax&quot;: null,
<a id="__codelineno-1-27" name="__codelineno-1-27" href="#__codelineno-1-27"></a> &quot;shadowInactive&quot;: null,
<a id="__codelineno-1-28" name="__codelineno-1-28" href="#__codelineno-1-28"></a> &quot;shadowLastChange&quot;: null,
<a id="__codelineno-1-29" name="__codelineno-1-29" href="#__codelineno-1-29"></a> &quot;sambaSID&quot;: &quot;S-1-5-21-2421470416-3566881284-3047381809-203044&quot;,
<a id="__codelineno-1-30" name="__codelineno-1-30" href="#__codelineno-1-30"></a> &quot;sambaPrimaryGroupSID&quot;: &quot;S-1-5-21-2421470416-3566881284-3047381809-205003&quot;,
<a id="__codelineno-1-31" name="__codelineno-1-31" href="#__codelineno-1-31"></a> &quot;sambaAcctFlags&quot;: [
<a id="__codelineno-1-32" name="__codelineno-1-32" href="#__codelineno-1-32"></a> &quot;U&quot;
<a id="__codelineno-1-33" name="__codelineno-1-33" href="#__codelineno-1-33"></a> ],
<a id="__codelineno-1-34" name="__codelineno-1-34" href="#__codelineno-1-34"></a> &quot;sambaHomeDrive&quot;: null,
<a id="__codelineno-1-35" name="__codelineno-1-35" href="#__codelineno-1-35"></a> &quot;sambaHomePath&quot;: null,
<a id="__codelineno-1-36" name="__codelineno-1-36" href="#__codelineno-1-36"></a> &quot;sambaProfilePath&quot;: null,
<a id="__codelineno-1-37" name="__codelineno-1-37" href="#__codelineno-1-37"></a> &quot;sambaLogonScript&quot;: null,
<a id="__codelineno-1-38" name="__codelineno-1-38" href="#__codelineno-1-38"></a> &quot;sambaLogonTime&quot;: null,
<a id="__codelineno-1-39" name="__codelineno-1-39" href="#__codelineno-1-39"></a> &quot;sambaLogoffTime&quot;: null,
<a id="__codelineno-1-40" name="__codelineno-1-40" href="#__codelineno-1-40"></a> &quot;sambaKickoffTime&quot;: null,
<a id="__codelineno-1-41" name="__codelineno-1-41" href="#__codelineno-1-41"></a> &quot;sambaPwdLastSet&quot;: null,
<a id="__codelineno-1-42" name="__codelineno-1-42" href="#__codelineno-1-42"></a> &quot;sambaPwdMustChange&quot;: null,
<a id="__codelineno-1-43" name="__codelineno-1-43" href="#__codelineno-1-43"></a> &quot;sambaPwdCanChange&quot;: null
<a id="__codelineno-1-44" name="__codelineno-1-44" href="#__codelineno-1-44"></a> },
<a id="__codelineno-1-45" name="__codelineno-1-45" href="#__codelineno-1-45"></a> &quot;relations&quot;: {
<a id="__codelineno-1-46" name="__codelineno-1-46" href="#__codelineno-1-46"></a> &quot;groups&quot;: {
<a id="__codelineno-1-47" name="__codelineno-1-47" href="#__codelineno-1-47"></a> &quot;cn=direction,ou=groups,o=ls&quot;: &quot;direction&quot;,
<a id="__codelineno-1-48" name="__codelineno-1-48" href="#__codelineno-1-48"></a> &quot;cn=secretariat,ou=groups,o=ls&quot;: &quot;secretariat&quot;
<a id="__codelineno-1-49" name="__codelineno-1-49" href="#__codelineno-1-49"></a> },
<a id="__codelineno-1-50" name="__codelineno-1-50" href="#__codelineno-1-50"></a> &quot;godfather&quot;: []
<a id="__codelineno-1-51" name="__codelineno-1-51" href="#__codelineno-1-51"></a> }
<a id="__codelineno-1-52" name="__codelineno-1-52" href="#__codelineno-1-52"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/create</code></p>
<p>Cette méthode permet de créer un objet dans l'annuaire. Le type de l'objet qui sera créé est
précisé dans l'URL et doit être encodé en conséquence. Les informations de l'objet doivent est
transmises au format <code>x-www-form-urlencoded</code>. Elles peuvent également être au format
<code>multipart/form-data</code>, en particulier si votre requête contient une image. Par mimétisme avec
l'interface web, seuls les attributs prévus dans le formulaire de création du type d'objet
peuvent être passées ici. De la même manière, les attributs non-spécifiés ici, pouront être
auto-générés en accord avec leur configuration et la requête sera acceptée uniquement si tous
les attributs obligatoires y sont spécifiés ou s'ils peuvent être auto-générés.</p>
<p>Le format et la syntaxe des valeurs des attributs dépends de leur type HTML. Ainsi, par exemple,
un attribut de type HTML <code>boolean</code> acceptera comme valeurs possibles <code>yes</code> ou <code>no</code>. Pour plus
de détails sur le type de valeur acceptée par un type d'attribut HTML en particulier, consultez
sa documentation. Vous pouvez également analyser le code de la méthode <code>getPostData()</code> de la
classe <a href="http://www.php.net/">PHP</a> correspondante.</p>
<p>Si l'application détecte un souci avec les informations transmises pour les attributs, un
tableau <code>fields_errors</code> sera présent dans la réponse JSON et contiendra pour chacun des
attributs problématique, un tableau des messages d'erreurs générées par l'application.</p>
<p>Si le type d'objet en prévoit, vous pouvez également utiliser un
<a href="../conf/LSobject/LSform/#configuration-des-masques-de-saisie">masque de saisie</a> via le
paramètre <code>dataEntryForm</code>.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople/create?pretty&#39; -d &quot;uid=foo.bar&amp;personalTitle=M.&amp;givenName=foo&amp;sn=bar&amp;cn=Foo Bar&amp;mail=foo.bar@example.com&amp;userPassword=Y0urS3cr3t&amp;lsGodfatherDn[]=uid=admin,ou=people,o=ls&amp;gidNumber=70000&quot;
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>{
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a> &quot;success&quot;: true,
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a> &quot;type&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a> &quot;dn&quot;: &quot;uid=foo.bar,ou=people,o=ls&quot;,
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a> &quot;name&quot;: &quot;Foo Bar&quot;,
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a> &quot;messages&quot;: [
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a> &quot;Le mail de notification a \u00e9t\u00e9 envoy\u00e9.&quot;,
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a> &quot;L&#39;objet a \u00e9t\u00e9 ajout\u00e9.&quot;
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a> ]
<a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/[dn]/modify</code></p>
<p>Cette méthode permet de modifier un objet dans l'annuaire. Le type de l'objet et son DN sont
précisés dans l'URL et doivent être encodés en conséquence. Les informations de l'objet à
modifier doivent être transmises au même format que pour la méthode <code>create</code> (voir ci-dessus).
Comme pour cette dernière, seuls les attributs prévus dans le formulaire de modification du type
d'objet peuvent être passées ici et la réponse JSON pourra contenir un tableau <code>fields_errors</code>
contenant les erreurs générées par l'application au sujet des valeurs transmises pour les
attributs.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople/uid=foo.bar,ou=people,o=ls/modify?pretty&#39; -d &quot;givenName=foo&amp;sn=bar&amp;cn=Foo Bar&quot;
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>{
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a> &quot;dn&quot;: &quot;uid=foo.bar,ou=people,o=ls&quot;,
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> &quot;type&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> &quot;name&quot;: &quot;Foo Bar&quot;,
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> &quot;success&quot;: true,
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> &quot;messages&quot;: [
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a> &quot;L&#39;objet a bien \u00e9t\u00e9 modifi\u00e9.&quot;
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a> ]
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/[dn]/remove</code></p>
<p>Cette méthode permet de supprimer un objet dans l'annuaire. Le type de l'objet et son DN sont
précisés dans l'URL et doivent être encodés en conséquence.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople/uid=foo.bar,ou=people,o=ls/remove?pretty&#39;
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>{
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> &quot;dn&quot;: &quot;uid=foo.bar,ou=people,o=ls&quot;,
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> &quot;type&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> &quot;name&quot;: &quot;Foo Bar&quot;,
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> &quot;success&quot;: true,
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> &quot;messages&quot;: [
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> &quot;Foo Bar a bien \u00e9t\u00e9 supprim\u00e9.&quot;
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> ]
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/import</code></p>
<p>Cette méthode permet d'importer des objets d'un type en particulier à partir de données d'import
formatées selon un <a href="../conf/LSobject/ioFormat/#ioformat">ioFormat</a> configuré pour ce type
d'objets. Le type de l'objet est précisé dans l'URL et doit être encodé en conséquence. Par
mimétisme du comportement de l'interface web, cette méthode accepte des paramètres similaires et
s'attend à récupérer les données d'import dans le corps de la requête.</p>
<ul>
<li>
<p><code>ioFormat</code></p>
<p>Le nom de l'<a href="../conf/LSobject/ioFormat/#ioformat">ioFormat</a>des données d'import.</p>
</li>
</ul>
<ul>
<li>
<p><code>updateIfExists</code></p>
<p>Booléen permettant d'activer/désactiver la mise à jour des données des objets s'ils existent
déjà. Si ce mode est inactif et qu'un objet des données d'import existe déjà, une erreur
sera remontée. Les valeurs acceptées sont <code>1</code> ou <code>0</code>.</p>
</li>
</ul>
<ul>
<li>
<p><code>justTry</code></p>
<p>Booléen permettant d'activer/désactiver le mode de vérification des données d'import
uniquement. Si ce mode est actif, les données d'import seront analysées pour vérifier
qu'elles sont correctes, mais l'import en lui-même ne sera pas effectué. Les valeurs
acceptées sont <code>1</code> ou <code>0</code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Le retour de cette méthode en mode <code>justTry</code> est identique à une exécution en mode
normal. Ce mode permet donc d'anticiper le résultat d'un import à partir d'un jeu de
données sources.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>En mode <code>justTry</code>, seul la vérification syntaxique des données est fiable, car les
informations doublonnées au sein des données d'import ne pourront être détectées.</p>
</div>
</li>
</ul>
<p>En cas d'erreurs détectées dans les informations des objets des données d'import, le tableau
<code>errors</code> du retour de la méthode contiendra une entrée pour chaque objet en erreur sous le
format d'un dictionnaire dont la clé <code>data</code> reprendra les informations de l'objet telle que
chargé (ou générée) depuis les données sources, ainsi qu'un dictionnaire sous la clé <code>errors</code>
qui contiendra les erreurs globales concernant l'objet sous la clé <code>globals</code> et les erreurs
propres à ses attributs dans un dictionnaire sous la clé <code>attrs</code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Les erreurs d'importation sur un objet sont non-bloquantes : l'importation des autres objets
ne sera pas interrompue.</p>
</div>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a># curl -u username:secret --data-binary @/path/to/input.file &#39;https://ldapsaisie/api/1.0/object/LSpeople/import?ioFormat=mycsv&amp;pretty&#39;
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>{
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> &quot;success&quot;: false,
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> &quot;LSobject&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> &quot;ioFormat&quot;: &quot;mycsv&quot;,
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> &quot;updateIfExists&quot;: false,
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> &quot;justTry&quot;: false,
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> &quot;imported&quot;: {
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> &quot;uid=rturin,ou=people,o=ls&quot;: &quot;M. Roger TURIN&quot;
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a> },
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a> &quot;updated&quot;: [],
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a> &quot;errors&quot;: [
<a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a> {
<a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a> &quot;data&quot;: {
<a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a> &quot;uid&quot;: [
<a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a> &quot;lmartin&quot;
<a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a> ],
<a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a> &quot;personalTitle&quot;: [
<a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a> &quot;Mme&quot;
<a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a> ],
<a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a> &quot;givenName&quot;: [
<a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a> &quot;Ludivine&quot;
<a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a> ],
<a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a> &quot;sn&quot;: [
<a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a> &quot;MARTIN&quot;
<a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a> ],
<a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a> &quot;mail&quot;: [
<a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a> &quot;lmartin@gmail.com&quot;
<a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a> ],
<a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a> &quot;userPassword&quot;: [
<a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a> &quot;123Yh%uT&quot;
<a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a> ],
<a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a> &quot;gidNumber&quot;: [
<a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a> &quot;102009&quot;
<a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a> ],
<a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a> &quot;loginShell&quot;: [
<a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a> &quot;no&quot;
<a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a> ],
<a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a> &quot;cn&quot;: [
<a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a> &quot;Mme Ludivine MARTIN&quot;
<a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a> ]
<a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a> },
<a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a> &quot;errors&quot;: {
<a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a> &quot;globals&quot;: [
<a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a> &quot;Un objet existe d\u00e9j\u00e0 dans l&#39;annuaire LDAP avec le DN uid=lmartin,ou=people,o=ls.&quot;
<a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a> ],
<a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a> &quot;attrs&quot;: []
<a id="__codelineno-5-48" name="__codelineno-5-48" href="#__codelineno-5-48"></a> }
<a id="__codelineno-5-49" name="__codelineno-5-49" href="#__codelineno-5-49"></a> }
<a id="__codelineno-5-50" name="__codelineno-5-50" href="#__codelineno-5-50"></a> ],
<a id="__codelineno-5-51" name="__codelineno-5-51" href="#__codelineno-5-51"></a> &quot;messages&quot;: [
<a id="__codelineno-5-52" name="__codelineno-5-52" href="#__codelineno-5-52"></a> &quot;Le mail de notification a \u00e9t\u00e9 envoy\u00e9.&quot;
<a id="__codelineno-5-53" name="__codelineno-5-53" href="#__codelineno-5-53"></a> ]
<a id="__codelineno-5-54" name="__codelineno-5-54" href="#__codelineno-5-54"></a>}
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/export</code></p>
<p>Cette méthode permet d'exporter les objets d'un type en particulier dans un
<a href="../conf/LSobject/ioFormat/#ioformat">ioFormat</a> configuré pour ce type d'objets. Le type de
l'objet est précisé dans l'URL et doit être encodé en conséquence.</p>
<ul>
<li>
<p><code>ioFormat</code></p>
<p>Le nom de l'<a href="../conf/LSobject/ioFormat/#ioformat">ioFormat</a> .</p>
</li>
</ul>
<p>En tant normal, le retour de cette méthode sera directement le fichier d'export demandé.
Cependant, si une erreur survient, les paramètres d'export seront repris dans le retour <code>JSON</code>
de la méthode qui contiendra également les erreurs survenues.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a># curl -u username:secret --data-binary @/path/to/input.file &#39;https://ldapsaisie/api/1.0/object/LSpeople/export?ioFormat=mycsv&amp;pretty&#39;
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>login;civility;firstname;name;mail;password;gid;shell
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>hmartin;M.;Henri;MARTIN;henri.martin@ls.com;********;102001;no
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a>s.ldapsaisie;M.;Secretariat;LdapSaisie;secretariat@ldapsaisie.biz;********;70000;no
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>ls;M.;Ldap;Saisie;ldap.saisie@ls.com;********;102001;no
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a>erwpa;M.;Erwan;PAGEARD;erwan.page@ldapsaisie.biz;********;102009;no
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a>[...]
</code></pre></div>
</li>
</ul>
<ul>
<li>
<p><code>/api/1.0/object/[object type]/[dn]/relation/[relation]</code></p>
<p>Cette méthode permet de gérer les objets en relation avec un objet en particulier de l'annuaire.
Le type de l'objet, son DN et le nom de la relation sont précisés dans l'URL et doivent être
encodés en conséquence. Cette méthode accepte les paramètres <code>add</code> et <code>remove</code> permettant de
lister le ou les DN d'objet(s) à respectivement ajouter ou supprimer parmis les objets
actuellement en relation avec l'objet spécifié. Si aucun DN n'est spécifié comme devant être
ajouté ou supprimé, la méthode retournera simplement les DN des objets en relation. En cas de
modification demandée, la méthode retournera la nouvelle liste des DNs des objets en relation,
quel que soit le résultat de l'opération de mise à jour.</p>
<p><strong>Exemple :</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a># curl -u username:secret &#39;https://ldapsaisie/api/1.0/object/LSpeople/uid=foo.bar,ou=people,o=ls/relation/groups?pretty&amp;add[]=cn=ls,ou=groups,o=ls&amp;add[]=cn=invite,ou=groups,o=ls&#39;
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>{
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a> &quot;dn&quot;: &quot;uid=foo.bar,ou=people,o=ls&quot;,
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> &quot;type&quot;: &quot;LSpeople&quot;,
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> &quot;name&quot;: &quot;Foo Bar&quot;,
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> &quot;relation&quot;: &quot;groups&quot;,
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> &quot;success&quot;: true,
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> &quot;relatedObjects&quot;: [
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a> &quot;cn=ls,ou=groups,o=ls&quot;,
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a> &quot;cn=invite,ou=groups,o=ls&quot;
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a> ],
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a> &quot;messages&quot;: [
<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a> &quot;Objects in relation updated.&quot;
<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a> ]
<a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a>}
</code></pre></div>
</li>
</ul>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Easter-eggs
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copi\u00e9 dans le presse-papier", "clipboard.copy": "Copier dans le presse-papier", "search.result.more.one": "1 de plus sur cette page", "search.result.more.other": "# de plus sur cette page", "search.result.none": "Aucun document trouv\u00e9", "search.result.one": "1 document trouv\u00e9", "search.result.other": "# documents trouv\u00e9s", "search.result.placeholder": "Taper pour d\u00e9marrer la recherche", "search.result.term.missing": "Non trouv\u00e9", "select.version": "S\u00e9lectionner la version"}, "version": {"provider": "mike"}}</script>
<script src="../assets/javascripts/bundle.8fd75fb4.min.js"></script>
<script src="../js/print-site.js"></script>
</body>
</html>