- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/sign.php
- Класс: Bitrix\Crm\WebForm\Embed\Sign
- Вызов: Sign::unpack
public function unpack(string $hash): bool
{
if (!$hash)
{
return false;
}
try
{
$data = $this->getSigner()->unsign($hash, self::signSalt);
}
catch (Main\Security\Sign\BadSignatureException $exception)
{
return false;
}
$data = explode(self::delimiterData, $data);
$entities = $data[0] ?? [];
if ($entities)
{
foreach (explode(self::delimiterDataList, $entities) as $item)
{
$item = explode(self::delimiterDataItem, $item);
if ($item[0] && $item[1])
{
$this->entities->addIdentificator($item[0], $item[1]);
}
}
}
$properties = $data[1] ?? [];
if ($properties)
{
foreach (explode(self::delimiterDataList, $properties) as $item)
{
$item = urldecode($item);
$item = explode(self::delimiterDataItem, $item);
if ($item[0] && $item[1])
{
$this->setProperty($item[0], $item[1]);
}
}
}
return true;
}