• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/rights/setupsession.php
  • Класс: BitrixDiskInternalsRightsSetupSession
  • Вызов: SetupSession::forkAndRestart
public function forkAndRestart()
{
	if ($this->isFinished() || $this->isForked())
	{
		return;
	}

	TableTmpSimpleRight::deleteBySessionId($this->id);

	if ($this->getObject())
	{
		$self = $this;

		$eventManager = EventManager::getInstance();
		$eventManager->addEventHandler(
			Driver::INTERNAL_MODULE_ID,
			'onRightsSetupSessionRegister',
			function (Event $event) use ($self){
				/** @var SetupSession $childModel */
				$childModel = $event->getParameter('sessionModel');
				$childModel->bindParent($self);
			}
		);

		Driver::getInstance()->getRightsManager()->resetSimpleRights($this->getObject());
	}

	$this->update(array(
		'STATUS' => self::STATUS_FORKED,
	));
}