if (is_array($_FILES) && $_FILES['inFile']['name']) { // Comprobamos la extensión del archivo $fileData['extension'] = strtoupper(pathinfo($_FILES['inFile']['name'], PATHINFO_EXTENSION)); if (!in_array($fileData['extension'], $extsOk)) { $log->addDescription(_('Tipo de archivo no soportado') . " '" . $fileData['extension'] . "' "); $log->writeLog(); \SP\Response::printJSON($log->getDescription()); } } else { $log->addDescription(_('Archivo inválido') . ":<br>" . $_FILES['inFile']['name']); $log->writeLog(); \SP\Response::printJSON($log->getDescription()); } // Variables con información del archivo $fileData['name'] = SP\Html::sanitize($_FILES['inFile']['name']); $tmpName = SP\Html::sanitize($_FILES['inFile']['tmp_name']); $fileData['size'] = $_FILES['inFile']['size']; $fileData['type'] = $_FILES['inFile']['type']; if (!file_exists($tmpName)) { // Registramos el máximo tamaño permitido por PHP SP\Util::getMaxUpload(); $log->addDescription(_('Error interno al leer el archivo')); $log->writeLog(); \SP\Response::printJSON($log->getDescription()); } if ($fileData['size'] > $allowedSize * 1000) { $log->addDescription(_('El archivo es mayor de ') . " " . round($allowedSize / 1000, 1) . "MB"); $log->writeLog(); \SP\Response::printJSON($log->getDescription()); } // Leemos el archivo a una variable
$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); } elseif ($userPass && $userPassR && $userPass === $userPassR) { $userId = UserPassRecover::checkHashPassRecover($hash); if ($userId) { if (UserPass::updateUserPass($userId, $userPass) && UserPassRecover::updateHashPassRecover($hash)) { \SP\Log::writeNewLogAndEmail(_('Modificar Clave Usuario'), SP\Html::strongText(_('Login') . ': ') . UserUtil::getUserLoginById($userId)); SP\Response::printJSON(_('Clave actualizada'), 0, 'goLogin();'); } } SP\Response::printJSON(_('Error al modificar la clave')); } else { SP\Response::printJSON(_('La clave es incorrecta o no coincide')); }
use SP\UserUtil; 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')); } $frmAccountId = SP\Request::analyze('accountid', 0); $frmDescription = SP\Request::analyze('description'); if (!$frmDescription) { SP\Response::printJSON(_('Es necesaria una descripción')); } $accountRequestData = SP\Account::getAccountRequestData($frmAccountId); $recipients = array(UserUtil::getUserEmail($accountRequestData->account_userId), UserUtil::getUserEmail($accountRequestData->account_userEditId)); $requestUsername = SP\Session::getUserName(); $requestLogin = SP\Session::getUserLogin(); $log = new \SP\Log(_('Solicitud de Modificación de Cuenta')); $log->addDescription(SP\Html::strongText(_('Solicitante') . ': ') . $requestUsername . ' (' . $requestLogin . ')'); $log->addDescription(SP\Html::strongText(_('Cuenta') . ': ') . $accountRequestData->account_name); $log->addDescription(SP\Html::strongText(_('Cliente') . ': ') . $accountRequestData->customer_name); $log->addDescription(SP\Html::strongText(_('Descripción') . ': ') . $frmDescription); $mailto = implode(',', $recipients); if (strlen($mailto) > 1 && SP\Util::mailrequestIsEnabled() && SP\Email::sendEmail($log, $mailto)) { $log->writeLog(); SP\Response::printJSON(_('Solicitud enviada'), 0, "doAction('" . \SP\Controller\ActionsInterface::ACTION_ACC_SEARCH . "');"); } SP\Response::printJSON(_('Error al enviar la solicitud'));
if (!$AccountHistory->updateAccountsMasterPass($currentMasterPass, $newMasterPass, $hashMPass)) { SP\Response::printJSON(_('Errores al actualizar las claves de las cuentas del histórico')); } if (!\SP\CustomFields::updateCustomFieldsCrypt($currentMasterPass, $newMasterPass)) { SP\Response::printJSON(_('Errores al actualizar datos de campos personalizados')); } } if (SP\Util::demoIsEnabled()) { SP\Response::printJSON(_('Ey, esto es una DEMO!!')); } // ConfigDB::readConfig(); ConfigDB::setCacheConfigValue('masterPwd', $hashMPass); ConfigDB::setCacheConfigValue('lastupdatempass', time()); if (ConfigDB::writeConfig()) { SP\Log::writeNewLogAndEmail(_('Actualizar Clave Maestra')); SP\Response::printJSON(_('Clave maestra actualizada'), 0); } else { SP\Response::printJSON(_('Error al guardar el hash de la clave maestra')); } } elseif ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_ENCRYPTION_TEMPPASS) { $tempMasterMaxTime = SP\Request::analyze('tmpass_maxtime', 3600); $tempMasterPass = CryptMasterPass::setTempMasterPass($tempMasterMaxTime); if ($tempMasterPass !== false && !empty($tempMasterPass)) { SP\Email::sendEmail(new \SP\Log(_('Generar Clave Temporal'), SP\Html::strongText(_('Clave') . ': ') . $tempMasterPass)); SP\Response::printJSON(_('Clave Temporal Generada'), 0, $doActionOnClose); } else { SP\Response::printJSON(_('Error al generar clave temporal')); } } else { SP\Response::printJSON(_('Acción Inválida')); }