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/rospirotorg.ru/bitrix/modules/ui/lib/form/ |
Upload File : |
<?php namespace Bitrix\UI\Form; use Bitrix\Main\Security\Sign\Signer; use Bitrix\Main\Web\Json; use Bitrix\Main\Security\Sign\BadSignatureException; use Bitrix\Main\Engine\CurrentUser; class EntityEditorConfigSigner { public function __construct(private string $configId) { } private const SIGNED_PARAMS_SALT = 'EntityEditorConfigSigner'; public function sign(array $paramsToSign): string { $paramsToSign['userId'] = (int)CurrentUser::get()->getId(); // must be user dependant $paramsToSign['configId'] = $this->configId; // must be editor dependant return (new Signer())->sign(Json::encode($paramsToSign), $this->getSalt()); } public function unsign(string $signedParams): ?array { try { $params = (new Signer())->unsign($signedParams, $this->getSalt()); $params = (array)Json::decode($params); if (($params['userId'] ?? 0) !== (int)CurrentUser::get()->getId()) { return null; } if (($params['configId'] ?? '') !== $this->configId) { return null; } unset($params['userId']); unset($params['configId']); return $params; } catch (BadSignatureException $e) { return null; } } private function getSalt(): string { return self::SIGNED_PARAMS_SALT; } }