public function send($email) { //Загружаем код пользователя по e-mail $userId = PsUser::instByMail($email)->getId(); //Генерируем код $CODE = PsUserCode::passRecover()->generateAndSave($userId); //Отправляем письмо try { $content = $this->foldedEntity->fetchTpl(array('code' => $CODE->getCode())); PsMailSender::fastSend('Восстановление пароля на ' . ServerArrayAdapter::HTTP_HOST(), $content, $email); } catch (Exception $ex) { //Коды, высланные пользователю, нужно удалить $CODE->dropUnusedCodes($userId); throw $ex; } }
/** * Метод возвращает причину, по которой код не может быть использован. * Если код может быть использован, вернётся null. */ public static function getCantUseReason($code) { return PsUserCode::passRecoverCode($code)->getCantUseReason(); }