Перейти к содержимому
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<mainmenu level="admin+">
<modernmenu>
<node name="Резервное копирование" type="noname" icon="m-help">
<node name="backup.plan" action="backup.plan" type="list" favorite="yes" icon="m-backup" />
<node name="backup.storages" action="backup.storages" favorite="yes" type="list" icon="m-backup" />
<node name="backups" action="backups" type="list" favorite="yes" icon="m-backup" />
</node>
</modernmenu>
</mainmenu>
<lang name="ru">
<messages name="desktop">
<msg name="modernmenu_backup.plan">Планы резервного копирования</msg>
<msg name="modernmenu_backups">Резервные копии</msg>
<msg name="modernmenu_backup.storages">Хранилища</msg>
</messages>
</lang>
</mgrdata>
<?php
define('TE_SCRIPT_DIR', __DIR__);
function te_base_url(): string
{
static $url = null;
if ($url !== null) {
return $url;
}
$docRoot = rtrim(str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']), '/');
$dir = rtrim(str_replace('\\', '/', TE_SCRIPT_DIR), '/');
$url = $dir === $docRoot ? '' : substr($dir, strlen($docRoot));
return $url;
}
function te_asset_url(string $path): string
{
return te_base_url() . '/' . ltrim($path, '/');
}
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
require TE_SCRIPT_DIR . '/functions.php';
/**
* @return int[]
*/
function te_allowed_user_ids(): array
{
static $userIds = null;
if ($userIds !== null) {
return $userIds;
}
$userIds = [];
$configFile = TE_SCRIPT_DIR . '/config.php';
if (is_file($configFile)) {
$config = include $configFile;
if (is_array($config)) {
$userIds = array_values(array_unique(array_map('intval', $config)));
}
}
return $userIds;
}
function te_require_access(bool $redirectOnDeny = true): void
{
global $USER;
if (!$USER->IsAuthorized()) {
if ($redirectOnDeny) {
LocalRedirect('/auth/');
}
http_response_code(403);
die('Unauthorized');
}
$canAccess = $USER->IsAdmin();
if (!$canAccess && \Bitrix\Main\Loader::includeModule('timeman') && class_exists('CTimeMan')) {
$canAccess = CTimeMan::IsAdmin();
}
if (!$canAccess) {
$canAccess = in_array((int)$USER->GetID(), te_allowed_user_ids(), true);
}
if (!$canAccess) {
if ($redirectOnDeny) {
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_after.php';
ShowError('Недостаточно прав для просмотра отчёта');
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog.php';
die();
}
http_response_code(403);
die('Access denied');
}
}
Обычно отвечаю до 18:00 МСК
Вопрос по статье?
Напишите — разберём на вашем проекте.
- 15+ лет практики
- Ростов → РФ удалённо
Обсудить задачуОтвет в рабочий день
Написать
Комментарии
клиенты пользуются и рекомендуют
2 комментария
апара
прпарапр