*/ use SP\SessionUtil; use SP\UserPass; use SP\UserPassRecover; use SP\UserUtil; define('APP_ROOT', '..'); require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php'; SP\Request::checkReferer('POST'); $sk = SP\Request::analyze('sk', false); if (!$sk || !SessionUtil::checkSessionKey($sk)) { SP\Response::printJSON(_('CONSULTA INVÁLIDA')); } $userLogin = SP\Request::analyze('login'); $userEmail = SP\Request::analyze('email'); $userPass = SP\Request::analyzeEncrypted('pass'); $userPassR = SP\Request::analyzeEncrypted('passR'); $hash = SP\Request::analyze('hash'); $time = SP\Request::analyze('time'); $message['action'] = _('Recuperación de Clave'); if ($userLogin && $userEmail) { $log = new \SP\Log(_('Recuperación de Clave')); if (SP\Auth::mailPassRecover($userLogin, $userEmail)) { $log->addDescription(SP\Html::strongText(_('Solicitado para') . ': ') . ' ' . $userLogin . ' (' . $userEmail . ')'); SP\Response::printJSON(_('Solicitud enviada') . ';;' . _('En breve recibirá un correo para completar la solicitud.'), 0, 'goLogin();'); } else { $log->addDescription('ERROR'); $log->addDescription(SP\Html::strongText(_('Solicitado para') . ': ') . ' ' . $userLogin . ' (' . $userEmail . ')'); SP\Response::printJSON(_('No se ha podido realizar la solicitud. Consulte con el administrador.')); } $log->writeLog(); SP\Email::sendEmail($log);
use SP\SessionUtil; define('APP_ROOT', '..'); require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php'; SP\Request::checkReferer('POST'); if (!SP\Init::isLoggedIn()) { SP\Response::printJSON(_('La sesión no se ha iniciado o ha caducado'), 10); } $sk = SP\Request::analyze('sk', false); if (!$sk || !SessionUtil::checkSessionKey($sk)) { SP\Response::printJSON(_('CONSULTA INVÁLIDA')); } $actionId = SP\Request::analyze('actionId', 0); $onCloseAction = SP\Request::analyze('onCloseAction'); $activeTab = SP\Request::analyze('activeTab', 0); $exportPassword = SP\Request::analyzeEncrypted('exportPwd'); $exportPasswordR = SP\Request::analyzeEncrypted('exportPwdR'); $doActionOnClose = "sysPassUtil.Common.doAction({$actionId},'',{$activeTab});"; if ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_BACKUP) { if (SP\Util::demoIsEnabled()) { SP\Response::printJSON(_('Ey, esto es una DEMO!!')); } if (!SP\Backup::doBackup()) { SP\Log::writeNewLogAndEmail(_('Realizar Backup'), _('Error al realizar el backup')); SP\Response::printJSON(_('Error al realizar el backup') . ';;' . _('Revise el registro de eventos para más detalles')); } SP\Log::writeNewLogAndEmail(_('Realizar Backup'), _('Copia de la aplicación y base de datos realizada correctamente')); SP\Response::printJSON(_('Proceso de backup finalizado'), 0, $doActionOnClose); } elseif ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_EXPORT) { if (!empty($exportPassword) && $exportPassword !== $exportPasswordR) { SP\Response::printJSON(_('Las claves no coinciden')); }
$Log->addDescription($e->getMessage()); $Log->addDescription($e->getHint()); $Log->writeLog(); SP\Response::printJSON($e->getMessage()); } $Log->writeLog(); SP\Email::sendEmail($Log); if ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_GENERAL) { // Recargar la aplicación completa para establecer nuevos valores SP\Util::reload(); } SP\Response::printJSON(_('Configuración actualizada'), 0, $doActionOnClose); } elseif ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_ENCRYPTION) { $currentMasterPass = SP\Request::analyzeEncrypted('curMasterPwd'); $newMasterPass = SP\Request::analyzeEncrypted('newMasterPwd'); $newMasterPassR = SP\Request::analyzeEncrypted('newMasterPwdR'); $confirmPassChange = SP\Request::analyze('confirmPassChange', 0, false, 1); $noAccountPassChange = SP\Request::analyze('chkNoAccountChange', 0, false, 1); if (!UserPass::checkUserUpdateMPass()) { SP\Response::printJSON(_('Clave maestra actualizada') . ';;' . _('Reinicie la sesión para cambiarla')); } elseif ($newMasterPass == '' && $currentMasterPass == '') { SP\Response::printJSON(_('Clave maestra no indicada')); } elseif ($confirmPassChange == 0) { SP\Response::printJSON(_('Se ha de confirmar el cambio de clave')); } if ($newMasterPass == $currentMasterPass) { SP\Response::printJSON(_('Las claves son idénticas')); } elseif ($newMasterPass != $newMasterPassR) { SP\Response::printJSON(_('Las claves maestras no coinciden')); } elseif (!SP\Crypt::checkHashPass($currentMasterPass, ConfigDB::getValue('masterPwd'), true)) { SP\Response::printJSON(_('La clave maestra actual no coincide'));