- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/internals/engine/actionfilter/checkarchivesignature.php
- Класс: BitrixDiskInternalsEngineActionFilterCheckArchiveSignature
- Вызов: CheckArchiveSignature::onBeforeAction
public function onBeforeAction(Event $event)
{
$signature = Context::getCurrent()->getRequest()->get($this->requestParameterNames['signature']);
$objectCollectionName = $this->requestParameterNames['objectCollection'];
$objectCollection = null;
foreach ($this->action->getArguments() as $name => $argument)
{
if ($name === $objectCollectionName)
{
/** @var ObjectCollection $objectCollection */
$objectCollection = $argument;
}
}
if (!$objectCollection)
{
$this->errorCollection[] = new Error('Could not find {objectCollection}');
return new EventResult(EventResult::ERROR, null, null, $this);
}
if (!$signature)
{
$this->errorCollection[] = new Error(
'Empty signature', self::ERROR_EMPTY_SIGNATURE
);
return new EventResult(EventResult::ERROR, null, null, $this);
}
if ($signature && !ParameterSigner::validateArchiveSignature($signature, $objectCollection->getIds()))
{
$this->errorCollection[] = new Error(
'Invalid signature', self::ERROR_INVALID_SIGNATURE
);
return new EventResult(EventResult::ERROR, null, null, $this);
}
}