Допустим нам надо не просто изменить пароль, а с подтверждением старого. Предлагаю свое решение.
Прежде всего позаботимся о форме. Нам нужен вот такой вид примерно:

Просто берем и кидаем на страницу обычное изменения профиля:

А дальше хитрый финт — убираем все поля, оставляя только пароль и подтверждение пароля, плюс добавляем поле «старый пароль». А чтобы система не ругалась на отсутствие важных полей (мыло/логин), делаем их скрытыми:

Визуал готов, осталось проверять старый пароль при сохранении. Как это делать? Поможет нам OnBeforeUserUpdate:
(код с красочным форматированием )
Прежде всего позаботимся о форме. Нам нужен вот такой вид примерно:

Просто берем и кидаем на страницу обычное изменения профиля:

А дальше хитрый финт — убираем все поля, оставляя только пароль и подтверждение пароля, плюс добавляем поле «старый пароль». А чтобы система не ругалась на отсутствие важных полей (мыло/логин), делаем их скрытыми:

Визуал готов, осталось проверять старый пароль при сохранении. Как это делать? Поможет нам OnBeforeUserUpdate:
(код с красочным форматированием )
надо проверять какой длины старый еще, чтобы знать по какому алгоритму проверять.