ElixirVault/www/ajax-c/ajax.php

186 lines
5.8 KiB
PHP

<?php
use BRSystems\Core\App\pubUsers\inc\pubUsersController;
use BRSystems\Core\Cms\cmsMailEngine\inc\cmsMailEngineController;
use BRSystems\Core\Cms\cmsMailEngine\inc\cmsMailEngineModule;
use BRSystems\Core\Cms\cmsSvnProjectManager\cmsSvnProjectManager;
use BRSystems\Core\Library\cJSON\cJSON;
use BRSystems\Core\Library\cMail\cMail;
use BRSystems\Core\Library\cProcess\cProcess;
use BRSystems\Core\Library\cSysConsole\cSysConsole;
use BRSystems\Core\Library\cUrl\cUrl;
use BRSystems\Core\Sys\sysUpdater\sysUpdater;
use BRSystems\Core\Sys\sysUsers\inc\sysUsersController;
startSessionSameSite(60 * 60 * 24);
// Increase time & memory limit
set_time_limit(60 * 5);
ini_set('memory_limit', '1024M');
//------------------------------------------------------------------
// Parse URL for extracting params
//------------------------------------------------------------------
$cms = false;
if (!defined('NO_SSL')) define('NO_SSL', true);
if (!defined('ADMINISTRATION_FOLDER')) define('ADMINISTRATION_FOLDER', '');
$url = new cUrl();
$url->parseUrl($cms, ADMINISTRATION_FOLDER);
$action = getV('ac', 'default');
switch ($action) {
case 'progress':
if ($pID = getP("pid")) {
$oProcess = new cProcess($pID, false);
switch (getP('status')) {
case cProcess::PROCESS_STATUS_ABORTED:
$oProcess->updateProcess(
false,
[cProcess::KEY_PROGRESS_STATUS => cProcess::PROCESS_STATUS_ABORTED]
);
break;
}
$vProcessData = $oProcess->getProcess();
cJSON::sendOk([
'p' => $vProcessData[cProcess::KEY_PROGRESS],
'msg' => $vProcessData[cProcess::KEY_PROGRESS_MSG],
's' => $vProcessData[cProcess::KEY_PROGRESS_STATUS]
]);
}
cJSON::sendError();
break;
case 'tcheck':
// Set & get user object
if (getV('app')) {
$oUser = new pubUsersController(false, false, false, true);
} else {
$oUser = new sysUsersController(false, false, false, true);
}
if ($oUser->isLoggedIn()) {
cJSON::sendOk(array(
't' => $_SESSION['time'] - time() > 0 ? $_SESSION['time'] - time() : 0
));
}
cJSON::sendError();
break;
case 'console':
$action = getV('action');
$oConsole = new cSysConsole();
switch ($action) {
case 'check_command':
$oConsole->handleConsoleCommand(getV('data'));
break;
}
cJSON::sendError();
break;
// ---------------------------------------------------------------------
// UPDATE SERVER FUNCTION CALLS
// ---------------------------------------------------------------------
case stripos($action, 'server-requests') !== false:
$oUpdRequest = new cmsSvnProjectManager();
$oUpdRequest->runUpdateRequestAction();
break;
// ---------------------------------------------------------------------
// PROJECT UPDATE FUNCTION CALLS
// ---------------------------------------------------------------------
case stripos($action, 'update-requests'):
$oUpdRequest = new sysUpdater();
$oUpdRequest->runUpdateRequestAction();
break;
/*case 'secimg':
$img = new cSecureImage();
$colors = array('ffe6e6','fbe6ff','e6e6ff','e6fffb','feffe6','fff5e6','ffdbdb','e6ffeb','dcdbff','ffffdb');
$img->image_bg_color = new Securimage_Color($colors[rand(0, 9)]);
$img->text_color = new Securimage_Color('4d4d4d');
$img->image_height = 40;
$img->num_lines = 2;
$img->image_width = $img->image_height * M_E;
$img->perturbation = .50;
$img->code_length = 4;
$img->show();
break;
*/
//------------------------------------------------------------------
// Email tracking code validation
//------------------------------------------------------------------
case 'track':
// Get last chunk of uri structure - it must be image name
if ($url->_uri_struct['chunks']) {
if ($imageName = end($url->_uri_struct['chunks'])) {
if (
substr($imageName, 0, 1) == 'm'
&& substr($imageName, strlen($imageName) - 4) == '.png'
) {
// Replace unnecessary parts
$id = str_replace(array('m', '.png'), '', $imageName);
// Mark letter ar read & update data
if ($id && is_numeric($id)) {
$mailE = new cmsMailEngineModule();
$mailE->db->_queryUpdate(
cmsMailEngineController::SENT_MAIL_TABLE,
array('mail_read' => 1),
array('mail_oid' => $id),
true
);
}
}
}
}
switch (getV('img')) {
case cMail::MAIL_SERVER_DEFAULT:
header('Content-Type: image/png');
echo file_get_contents(__IMG__ . "pub/mails/sys_logo4.png");
break;
default:
header('Content-Type: image/png');
echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=');
break;
}
break;
default:
if (isset($GLOBALS['coverage_tests_running'])) {
return;
}
redirectToUri('/');
break;
}
if (isset($GLOBALS['coverage_tests_running'])) {
return;
}
die();