public function action_do_reset_password() { $data = \Tbmt\Arr::initMulti($_REQUEST, ['num' => TYPE_STRING, 'exp' => TYPE_STRING, 'hash' => TYPE_STRING]); $newPassword = false; if (!empty($data['num']) || !empty($data['exp']) || !empty($data['hash'])) { $member = \Member::getByNum($data['num']); if ($member && Cryption::validatePasswordResetToken($data['num'], $data['exp'], $member->getEmail(), $data['hash']) && intval($data['exp']) + 3600 * 24 >= time()) { $newPassword = bin2hex(mcrypt_create_iv(8, MCRYPT_DEV_URANDOM)); $member->setPassword($newPassword); $member->save(); } } return ControllerDispatcher::renderModuleView(self::MODULE_NAME, CURRENT_MODULE_ACTION, ['newPassword' => $newPassword]); }