## Восстановление паролей пользователями

Контроллер Reminder позволяет web-пользователям восстанавливать забытые пароли. Расширяет контроллер Form.

Восстановление паролей происходит по следующей схеме:

- пользователь вводит в форме свой идентификатор (им может быть имя пользователя или email);
- пользователь получает письмо, в котором содержится ссылка для восстановления;
- при переходе по ссылке пользователь получает возможность ввести новый пароль либо пароль будет сгенерирован автоматически;
- пользователю отправляется письмо с новым паролем и показыается сообщение (в сообщении можно также вывести новый пароль).

Параметр to перезаписывается значением email пользователя. Обязательно должен быть задан параметр resetTo.

## Параметры
### model
Класс для работы с пользователями.

Возможные значения - имя класса.

Значение по умолчанию - \modUsers

### modelPath
Путь к файлу класса для работы с пользователями.

Возможные значения - относительный путь к файлу.

Значение по умолчанию - assets/lib/MODxAPI/modUsers.php

### hashField
Имя поля для хранения хэша данных пользователя.

Значение по умолчанию - hash.

### userField
Имя поля для хранения уникального идентификатора пользователя (имя пользователя или email).

Значение по умолчанию - email.

### uidField
Имя поля, которое содержит числовой идентификатор пользователя (Primary Key в таблице БД). 

Значение по умолчанию - id.

### uidName
Имя GET-параметра в ссылке для восстановления пароля, который содержит id пользователя.

Значение по умолчанию - значение параметра uidField.

### exitTo
Перенаправляет авторизованного пользователя на указанную страницу.

Возможные значения - id целевой страницы.

Значение по умолчанию - пусто.

### resetTo
Страница, на которую будет указывать ссылка для восстановления паролей.

Возможные значения - id целевой страницы.

Значение по умолчанию - id документа, в котором вызван контроллер.

### redirectTo
Перенаправляет на указанную страницу после успешного восстановления пароля.

Возможные значения - id целевой страницы.

Значение по умолчанию - пусто.

### skipTpl
Шаблон сообщения для авторизованного пользователя.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_skipTpl+].

### formTpl
Шаблон формы для ввода идентификатора пользователя.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

### resetTpl
Шаблон формы для ввода нового пароля. Если параметр не задан, то пароль будет сгенерирован автоматически.

Поля для ввода паролей должны называться password и repeatPassword. В форме должны также присутствовать скрытые поля с именами из параметров uidField и hashField. Значение для поля hashField задается через плейсхолдер [+user.hash+], а для поля uidField - [+user.id+].

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

### successTpl
Шаблон сообщения об успешной отправке письма со ссылкой для восстановления пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.).

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_successTpl+].

### resetSuccessTpl
Шаблон сообщения об успешном восстановлении пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword).

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_resetSuccessTpl+].

### reportTpl
Шаблон письма со ссылкой для восстановления пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword). Ссылка для восстановлени пароля в письме задается через плейсхолдер [+reset.url+]

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_reportTpl+]..

### resetReportTpl
Шаблон письма об успешном восстановлении пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword). Если не задан, то письмо пользователю отправляться не будет.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

### rules
Правила валидации для формы идентификации пользователя.

Возможные значения - см. раздел "Валидация данных".

Значение по умолчанию - пусто.

### resetRules
Правила валидации для формы установки нового пароля. Если заданы правила валидации для полей password и repeatPassword, то при наличии для поля repeatPassword правила equals, оно будет автоматически скорректировано для проверки равенства значений полей password и repeatPassword:
```
"repeatPassword":{
    "required":"Введите пароль еще раз",
    "equals":{
        "params" : "Этот ключ в описании правила можно не задавать, он будет сформирован контроллером автоматически",
        "message":"Пароли не совпадают"
    }
}
```
Возможные значения - см. раздел "Валидация данных".

Значение по умолчанию - пусто.

### passwordLength
Длина пароля (если создается автоматически).

Возможные значения - число символов больше 6.

Значение по умолчанию - 6.
