<sect4 id="config-LSattr_ldap_pwdHistory">
  <title>LSattr_ldap_pwdHistory</title>
  <para>Ce type est utilisé pour la gestion de l'attribut standard <emphasis>pwdHistory</emphasis>.
  Cet attribut, accessible en lecture uniquement, stocke dans un format prédéfini l'historique des
  mots de passe d'une utilisateur avec pour chaque entrée :
  <itemizedlist>
    <listitem><simpara>la date et heure de l'ajout du mot de passe dans l'historique</simpara></listitem>
    <listitem><simpara>l'OID de la syntaxe du mot de passe</simpara></listitem>
    <listitem><simpara>la longueur du mot de passe</simpara></listitem>
    <listitem><simpara>le mot de passe (hâché)</simpara></listitem>
  </itemizedlist>
  </para>
  <para>Ce type d'attribut LDAP permettra de convertir la valeur en son équivalent <literal>JSON</literal>
  pour pouvoir être traité à l'aide du type d'attribut HTML &LSattr_html_jsonCompositeAttribute;.</para>
  <programlisting linenumbering="unnumbered">
<citetitle>Exemple de valeur de l'attribut pwdHistory</citetitle>
<![CDATA[20201202144718Z#1.3.6.1.4.1.1466.115.121.1.40#105#{SSHA512}XDSiR6Sh6W7gyVIk6Rr2OUv8rNPr+0rHF99d9lcirE/TnnEdkjkncIi5iPubErL5lpfgh8gXLgSfmqvmFcMqXLToC25xIqyk]]>
</programlisting>
<programlisting linenumbering="unnumbered">
<citetitle>Exemple de valeur tranformée</citetitle>
<![CDATA[{"time":1606920438,"syntaxOID":"1.3.6.1.4.1.1466.115.121.1.40","length":105,"hashed_password":"{SSHA512}XDSiR6Sh6W7gyVIk6Rr2OUv8rNPr+0rHF99d9lcirE/TnnEdkjkncIi5iPubErL5lpfgh8gXLgSfmqvmFcMqXLToC25xIqyk"}]]>
</programlisting>
<programlisting linenumbering="unnumbered">
<citetitle>Exemple de configuration complète de l'attribut</citetitle>
<![CDATA['pwdHistory' => array (
    'label' => 'Passwords in history',
    'ldap_type' => 'pwdHistory',
    'html_type' => 'jsonCompositeAttribute',
    'html_options' => array (
      'components' => array (
        'time' => array (
          'label' => 'Date added to history',
          'type' => 'text',
          'required' => true,
          'multiple' => false,
        ),
        'syntaxOID' => array (
          'label' => 'Syntax OID',
          'type' => 'text',
          'required' => true,
          'multiple' => false,
        ),
        'length' => array (
          'label' => 'Length',
          'type' => 'text',
          'required' => true,
          'multiple' => false,
        ),
        'hashed_password' => array (
          'label' => 'Hashed password',
          'type' => 'text',
          'required' => true,
          'multiple' => false,
        ),
      ),
    ),
    'no_value_label' => 'History is empty.',
    'multiple' => 1,
    'rights' => array(
      'admin' => 'r',
    ),
    'view' => 1,
),]]>
</programlisting>
  <para>La date et heure de l'ajout du mot de passe dans l'historique est convertie dans un format lisible.
  Par défaut, ce format est <literal>AAAA/MM/JJ HH:MM:SS</literal>, mais il peut aussi est personnalisé via
  le paramètre <literal>date_format</literal>. Ce format est composé à partir des motifs clés gérés par la
  fonction <function>date()</function> de &php;. Pour plus d'information, consulter
  <ulink url='http://www.php.net/date'>la documentation officielle</ulink>.</para>
  <note><simpara>La valeur par défaut est <emphasis>YmdHisO</emphasis>, correspondant à la syntaxe
  <literal>Generalized Time</literal> telle que définie dans la <ulink url='https://tools.ietf.org/html/rfc4517'>RFC4517
  </ulink> et prévu par le <ulink url='http://tools.ietf.org/id/draft-behera-ldap-password-policy-10.txt'>
  Draft-behera-ldap-password-policy</ulink> spécifiant cet attribut standard.</simpara></note>
</sect4>