[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]

[% title = "Change Password" %]
[% PROCESS global/header.html.tmpl %]
[% password_complexity = Param('password_complexity') %]
<p>
  To change your password, enter a new password twice:<br>
</p>
<ul>
  <li>Password must be at least [% constants.USER_PASSWORD_MIN_LENGTH FILTER none %] characters long.</li>
  [% IF password_complexity == "mixed_letters" %] 
  <li>Password must contain at least one UPPER and one lowercase letter.</li>
  [% ELSIF password_complexity == "letters_numbers" %] 
  <li>Password must contain at least one UPPER and one lower case letter and a number.</li>
  [% ELSIF password_complexity == "letters_numbers_specialchars" %] 
  <li>Password must contain at least one letter, a number and a special character.</li>
  [% END %]
</ul>

<form method="post" action="token.cgi">
  <input type="hidden" name="t" value="[% token FILTER html %]">
  <input type="hidden" name="a" value="chgpw">
  <table>
    <tr>
      <th>New password:</th>
      <td>
        <input type="password" name="password" required>
      </td>
    </tr>
    
    <tr>
      <th>Confirm new password:</th>
      <td>
        <input type="password" name="matchpassword" required>
      </td>
    </tr>
     
    <tr>
      <th>&nbsp;</th>
      <td>
        <input type="submit" id="update" value="Submit">
      </td>
    </tr>
  </table>
</form>

[% PROCESS global/footer.html.tmpl %]
