AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.143.203.36
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/modules/bitrixcloud/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/modules/bitrixcloud/admin/bitrixcloud_backup_job.php
<?
define("ADMIN_MODULE_NAME", "bitrixcloud");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
IncludeModuleLangFile(__FILE__);
/* @global CMain $APPLICATION */
/* @global CUser $USER */
if (!$USER->CanDoOperation("bitrixcloud_backup") || !CModule::IncludeModule("bitrixcloud"))
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$strError = "";
$APPLICATION->SetTitle(GetMessage("BCL_BACKUP_JOB_TITLE"));

try
{
	$sTableID = "t_bitrixcloud_backup_job";
	$lAdmin = new CAdminList($sTableID);

	if ($arID = $lAdmin->GroupAction())
	{
		foreach ($arID as $ID)
		{
			if ($ID == '')
				continue;
			$ID = intval($ID);
			switch ($_REQUEST['action'])
			{
			case "delete":
				$strError = CBitrixCloudBackup::getInstance()->deleteBackupJob();
				break;
			}
		}
	}

	if (
		$_SERVER["REQUEST_METHOD"] === "POST"
		&& check_bitrix_sessid()
	)
	{
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/backup.php");
		$backup_secret_key = CPasswordStorage::Get('backup_secret_key');
		if ($backup_secret_key == '')
		{
			$backup_secret_key = randString(10);
			CPasswordStorage::Set('backup_secret_key', $backup_secret_key);
		}
		$time = 0;
		if (preg_match("/^(\\d{1,2}):(\\d{1,2})\$/", $_POST["TIME"], $match))
			$time = $match[1]*3600 + $match[2]*60;
		$strError = CBitrixCloudBackup::getInstance()->addBackupJob($backup_secret_key, $_POST["URL"], $time, $_POST["WEEK_DAYS"]);
		if ($strError == "")
			LocalRedirect("/bitrix/admin/bitrixcloud_backup_job.php?lang=".LANGUAGE_ID);
	}

	$arHeaders = array(
		array(
			"id" => "URL",
			"content" => GetMessage("BCL_BACKUP_JOB_URL"),
			"default" => true,
		),
		array(
			"id" => "TIME",
			"content" => GetMessage("BCL_BACKUP_JOB_TIME"),
			"align" => "right",
			"default" => true,
		),
		array(
			"id" => "WEEK_DAYS",
			"content" => GetMessage("BCL_BACKUP_JOB_WEEK_DAYS"),
			"default" => true,
		),
		array(
			"id" => "STATUS",
			"content" => GetMessage("BCL_BACKUP_JOB_STATUS"),
			"default" => true,
		),
		array(
			"id" => "FINISH_TIME",
			"content" => GetMessage("BCL_BACKUP_JOB_FINISH_TIME"),
			"align" => "right",
			"default" => true,
		),
	);

	$arJobs = CBitrixCloudBackup::getInstance()->getBackupJob();
	if (is_string($arJobs))
		throw new CBitrixCloudException($arJobs);

	$lAdmin->AddHeaders($arHeaders);
	$rsData = new CDBResult;
	$rsData->InitFromArray($arJobs);
	$rsData = new CAdminResult($rsData, $sTableID);

	while($arRes = $rsData->GetNext())
	{
		$row = $lAdmin->AddRow($arRes["URL"], $arRes);
		if ($arRes["STATUS"] == "")
			$status = GetMessage("BCL_BACKUP_JOB_NEVER");
		else
			$status = $arRes["STATUS"];
		$row->AddViewField("STATUS", $status);

		$week_days = array();
		foreach($arRes["WEEK_DAYS"] as $dow)
		{
			if (HasMessage("DOW_".$dow))
				$week_days[] = GetMessage("DOW_".$dow);
		}
		$row->AddViewField("WEEK_DAYS", implode(", ", $week_days));

		if($_GET["allow_manage"]==="y")
		{
			$arActions = array(
				array(
					"ICON" => "delete",
					"TEXT" => GetMessage("BCL_BACKUP_JOB_DELETE"),
					"ACTION" => "if(confirm('".GetMessage("BCL_BACKUP_JOB_DELETE_CONF")."')) ".$lAdmin->ActionDoGroup($arRes["URL"], "delete"),
				),
			);
			$row->AddActions($arActions);
		}
	}

	if(empty($arJobs) && $_GET["allow_manage"]==="y")
	{
		$aContext = array(
			array(
				"TEXT" => GetMessage("BCL_BACKUP_JOB_ADD"),
				"LINK" => "javascript:show_upload_form()",
				"TITLE" => "",
				"ICON" => "btn_new",
			),
		);
		$lAdmin->AddAdminContextMenu($aContext, /*$bShowExcel=*/false);

		$lAdmin->BeginPrologContent();

		if ($strError)
			CAdminMessage::ShowMessage($strError);

		$aTabs = array(
			array(
				"DIV" => "edit1",
				"TAB" => GetMessage("BCL_BACKUP_JOB_ADD_TAB"),
				"ICON"=>"main_user_edit",
				"TITLE"=>GetMessage("BCL_BACKUP_JOB_ADD_TAB_TITLE"),
			),
		);
		$tabControl = new CAdminTabControl("tabControl", $aTabs, true, true);
		?>
		<script>

			function show_upload_form()
			{
				(new BX.fx({
					start: 0,
					finish: 200,
					time: 0.5,
					type: 'accelerated',
					callback: function(res){
						BX('upload_form', true).style.height = res+'px';
					},
					callback_start: function(){
						BX('upload_form', true).style.height = '0px';
						BX('upload_form', true).style.overflow = 'hidden';
						BX('upload_form', true).style.display = 'block';
					},
					callback_complete: function(){
						BX('upload_form', true).style.height = 'auto';
						BX('upload_form', true).style.overflow = 'auto';
					}
				})).start();
			}
			function hide_upload_form()
			{
				BX('upload_form').style.display='none';
				return;
			}
		</script>
		<div id="upload_form" <?if ($strError=="") echo 'style="display:none;height:200px;"'?>>
			<form method="POST" action="<?echo htmlspecialcharsbx($APPLICATION->GetCurPageParam())?>"  enctype="multipart/form-data" name="editform" id="editform">
				<?
				$tabControl->Begin();
				$tabControl->BeginNextTab();
				?>
				<tr>
					<td width="40%"><?echo GetMessage("BCL_BACKUP_JOB_URL")?>:</td>
					<?
					if ($strError)
					{
						$URL = $_POST["URL"];
					}
					else
					{
						$URL = CMain::IsHTTPS()? "https://": "http://";
						$URL .= COption::GetOptionString("main", "server_name");
					}
					?>
					<td width="60%"><input type="text" name="URL" size="45" value="<?echo htmlspecialcharsbx($URL)?>"></td>
				</tr>
				<tr>
					<td><?echo GetMessage("BCL_BACKUP_JOB_TIME")?>:</td>
					<?
					if ($strError)
					{
						$TIME = $_POST["TIME"];
					}
					else
					{
						$TIME = sprintf("%02d:%d0", mt_rand(1,5), mt_rand(0, 5));
					}
					?>
					<td><input type="text" name="TIME" size="6" value="<?echo htmlspecialcharsbx($TIME)?>"></td>
				</tr>
				<tr>
					<td class="adm-detail-valign-top"><?echo GetMessage("BCL_BACKUP_JOB_WEEK_DAYS")?>:</td>
					<td>
						<?
						$rand = mt_rand(0, 7);
						for($i = 0; $i < 7; $i++):
						?>
							<input type="checkbox" name="WEEK_DAYS[]" value="<?echo $i?>" id="dow_<?echo $i?>" <?
							if (
								(
									$strError == ""
									&& $i == $rand
								) || (
									$strError != ""
									&& is_array($_POST["WEEK_DAYS"])
									&& in_array($i, $_POST["WEEK_DAYS"])
								)
							)
							{
								echo 'checked="checked"';
							}
							?>>
							<label for="dow_<?echo $i?>"><?echo GetMessage("DOW_".$i)?></label>
							<br>
						<?endfor;?>
					</td>
				</tr>
				<?$tabControl->Buttons();?>
				<input type="hidden" name="action" value="add_new">
				<?echo bitrix_sessid_post();?>
				<input type="hidden" name="lang" value="<?echo LANGUAGE_ID?>">
				<input type="submit" value="<?echo GetMessage("BCL_BACKUP_JOB_SAVE_BTN")?>" class="adm-btn-save">
				<input type="button" value="<?echo GetMessage("BCL_BACKUP_JOB_CANCEL_BTN")?>" onclick="hide_upload_form()">
				<?
				$tabControl->End();
				?>
			</form>
		</div>
	<?
		$lAdmin->EndPrologContent();
	}

	CUtil::InitJSCore(array('fx'));
	$lAdmin->CheckListMode();

	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

	$lAdmin->DisplayList();
}
catch (Exception $e)
{
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
	CAdminMessage::ShowMessage($e->getMessage());
	$arFiles = false;
}

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>

Anon7 - 2022
AnonSec Team