• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/rightsmanager.php
  • Класс: BitrixDiskRightsManager
  • Вызов: RightsManager::set
public function set(BaseObject $object, array $rights)
{
	$this->checkUseInternalsRightsOnStorage($object, $rights);
	$this->errorCollection->clear();

	foreach($rights as &$right)
	{
		if (empty($right['OBJECT_ID']))
		{
			$right['OBJECT_ID'] = $object->getId();
		}
		if (!isset($right['NEGATIVE']))
		{
			$right['NEGATIVE'] = 0;
		}
	}
	unset($right);

	$rights = $this->uniqualizeRightsOnObject($rights);
	$rights = $this->cleanWrongNegativeRights($object, $rights);

	$this->deleteInternal($object);
	if(!$this->insertRightsInternal($object, $rights))
	{
		return false;
	}

	$simpleBuilder = new SimpleReBuilder($object, $rights);
	$simpleBuilder->run();

	Driver::getInstance()->getIndexManager()->recalculateRights($object);

	return true;
}