Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/sproduction.datasync/lib/ |
Upload File : |
<?php /** * Remote diagnostics page * * @mail support@s-production.online * @link s-production.online */ namespace SProduction\Datasync; use Cassandra\Set, Bitrix\Main\Localization\Loc; class RemoteDiagAccess { const DATE_FORMAT = 'd.m.Y H:i:s'; const SECRET_SALT = 'Dnekilmedk3.,4./kNMKldfkmil'; public static function checkAccess($secure_code) { $result = false; $check_code = self::getCode(); $state = self::getState(); if ($secure_code == $check_code && $state['code'] == 'active') { $result = true; } return $result; } public static function isActive() { $result = (Settings::get("ra_active") == 'Y'); return $result; } public static function setActive($value) { $old_active = self::isActive(); // Save Active flag Settings::save('ra_active', ($value ? 'Y' : 'N')); // Check changes $new_active = self::isActive(); if ($new_active && !$old_active) { self::generateCode(); if (!self::getTimeTS()) { self::setTime(date(self::DATE_FORMAT, time() + 24 * 3600 * 3)); } } } public static function getTime() { $result = Settings::get('ra_end_time'); if ($result) { $result = date(self::DATE_FORMAT, $result); } return $result; } public static function getTimeTS() { $result = Settings::get('ra_end_time'); if ($result) { $result = (int)$result; } return $result; } public static function setTime($datetime) { Settings::save('ra_end_time', strtotime($datetime)); } public static function getCode() { $result = Settings::get('ra_code'); return $result; } public static function setCode($code) { Settings::save('ra_code', $code); } public static function generateCode() { $string = $_SERVER['SERVER_NAME'] . self::SECRET_SALT . strval(microtime(true)); $code = md5($string); self::setCode($code); } public static function getLink() { $result = ''; $code = self::getCode(); if ($code) { $result = 'https://' . $_SERVER['SERVER_NAME'] . '/bitrix/sprod_dsync_diagnostics.php?sc=' . $code; } return $result; } public static function getState() { $states = [ 'active' => [ 'code' => 'active', 'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_ACTIVE"), ], 'not_active' => [ 'code' => 'not_active', 'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_NOT_ACTIVE"), ], 'active_expired' => [ 'code' => 'active_expired', 'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_ACTIVE_EXPIRED"), ], ]; if (!self::isActive()) { $state = 'not_active'; } else { if (self::getTimeTS() && self::getTimeTS() > time()) { $state = 'active'; } else { $state = 'active_expired'; } } return $states[$state]; } }