<sect2 id="config-LSaddon_ppolicy">
  <title>LSaddon_ppolicy</title>
  <para>Cet &LSaddon; fourni :

<itemizedlist>

<listitem><para>une fonction <literal>ppolicy_extraDisplayColumn_password_expiration</literal>
pouvant être utilisée pour la génération d'une <emphasis>extraDisplayedColumn</emphasis>
affichant l'état d'expiration du mot de passe des objets d'une recherche.

<programlisting linenumbering="unnumbered">
  <citetitle>Exemple d'utilisation</citetitle>
  <![CDATA[$GLOBALS['LSobjects']['LSpeople']['LSsearch'] = array (
    [...]
    'extraDisplayedColumns' => array (
      [...]
      'password_expiration' => array (
        'label' => 'Password expiration',
        'generateFunction' => 'ppolicy_extraDisplayColumn_password_expiration',
        'additionalAttrs' => array('pwdChangedTime', 'pwdPolicySubentry'),
        'escape' => false,
        'cssStyle' => 'width: 14em; text-align: center;'
      ),
      [...]
    ),
    [...]
  );]]>
</programlisting>
</para></listitem>


<listitem><para>une fonction <literal>ppolicy_export_search_info</literal>
pouvant être utilisée comme <link linkend="config-LSobject-customSearchActions">actions
personnalisées sur les recherches d'&LSobjects;</link> pour exporter au format CSV les
informations des politiques de mots de passe des objets retournés par la recherche.

<programlisting linenumbering="unnumbered">
<citetitle>Exemple d'utilisation</citetitle>
<![CDATA[$GLOBALS['LSobjects']['LSpeople']['LSsearch'] = array (
  [...]
  'customActions' => array (
    'exportPpolicyInfo' => array (
      'label' => 'Export password policy info',
      'icon' => 'export_csv',
      'function' => 'ppolicy_export_search_info',
      'noConfirmation' => true,
      'disableOnSuccessMsg' => true,
      'rights' => array (
        'admin',
      ),
    ),
  ),
  [...]
);]]>
</programlisting>
</para></listitem>


<listitem><para>la méthode d'API <literal>exportPpolicyInfo</literal> permettant d'exporter
les informations des politiques de mots de passe de tous les objets d'un type donné. Cette méthode
est accessible via l'URL au format suivant :
<literal>/api/1.0/exportPpolicyInfo/[object type]</literal></para></listitem>


<listitem><para>la commande CLI <literal>export_ppolicy_info</literal> permettant d'exporter
les informations des politiques de mots de passe de tous les objets d'un type donné.
<programlisting linenumbering="unnumbered">
<citetitle>Utilisation</citetitle>
ldapsaisie export_ppolicy_info [object type] [-o|--output filepath] [-j|--json [-p|--pretty]]
</programlisting>
</para></listitem>

</itemizedlist>

</para>

  <para>Des paramètres de configuration sont disponibles dans le fichier de
  configuration <literal>config.LSaddons.ppolicy.php</literal>.</para>

  <programlisting linenumbering="unnumbered">
<citetitle>Structure du fichier</citetitle>
<![CDATA[// Default password policy object DN (set to null if no default policy is configured)
define('LS_PPOLICY_DEFAULT_DN', null);

// Ppolicy password warning expiration threshold (in seconds)
define('LS_PPOLICY_WARNING_EXPIRATION_THRESHOLD', 7 * 86400);

// Ppolicy password critical expiration threshold (in seconds)
define('LS_PPOLICY_CRITICAL_EXPIRATION_THRESHOLD', 2 * 86400);

// CSV file delimiter
define('LS_PPOLICY_CSV_DELIMITER',';');

// CSV file enclosure
define('LS_PPOLICY_CSV_ENCLOSURE','"');

// CSV file escape character (available since PHP 5.5.4)
define('LS_PPOLICY_CSV_ESCAPE_CHAR','\\');

// List of LSprofiles who are granted to use the exportPpolicyInfo API method
$GLOBALS['LS_PPOLICY_API_GRANTED_PROFILES'] = array('admin');

// List of extra attributes to include in Ppolicy info export
$GLOBALS['LS_PPOLICY_INFO_EXPORT_EXTRA_ATTRS'] = array();]]>
</programlisting>

<variablelist>
<title>Paramètres de configuration</title>

<varlistentry>
  <term>LS_PPOLICY_DEFAULT_DN</term>
  <listitem>
    <simpara>Constante définissant le DN de la politique par défaut. Si aucune politique par défaut
    n'est définie, ce paramètre doit valoir <literal>null</literal>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LS_PPOLICY_WARNING_EXPIRATION_THRESHOLD</term>
  <listitem>
    <simpara>Constante définissant le seuil d'alerte pour l'expiration des mots de passe (en
    seconde). Par défaut : 7 jours.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LS_PPOLICY_CRITICAL_EXPIRATION_THRESHOLD</term>
  <listitem>
    <simpara>Constante définissant le seuil critique pour l'expiration des mots de passe (en
    seconde). Par défaut : 2 jours.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LS_PPOLICY_CSV_DELIMITER</term>
  <listitem>
    <simpara>Constante définissant le caractère utilisé lors de la génération de l'export CSV
    comme séparateur de champ. Par défaut : un point-virgule.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LS_PPOLICY_CSV_ENCLOSURE</term>
  <listitem>
    <simpara>Constante définissant le caractère utilisé lors de la génération de l'export CSV
    pour l'encadrement des champs. Par défaut : un guillemet double.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LS_PPOLICY_CSV_ESCAPE_CHAR</term>
  <listitem>
    <simpara>Constante définissant le caractère utilisé lors de la génération de l'export CSV
    pour l'échappement des champs. Par défaut : une barre oblique inverse.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>$GLOBALS['LS_PPOLICY_API_GRANTED_PROFILES']</term>
  <listitem>
    <simpara>Tableau global listant les &LSprofiles; autorisés à utiliser la méthode d'API
    <literal>exportPpolicyInfo</literal>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>$GLOBALS['LS_PPOLICY_INFO_EXPORT_EXTRA_ATTRS']</term>
  <listitem>
    <simpara>Tableau global listant les attributs supplémentaires à inclure lors de l'export des
    informations de politique de mots de passe.</simpara>
  </listitem>
</varlistentry>

</variablelist>

</sect2>
