Битрикс24
2
Вклад в тег
\Bitrix\Main\Loader::includeModule('disk');
if (\Bitrix\Main\Loader::includeModule('disk')) {
$rootActivity = $this->GetRootActivity();
$id_folder = $rootActivity->GetVariable("id_folder"); // получаем из переменной id папки.
$id_file = $rootActivity->GetVariable("id"); // получаем из переменной id файла.
$rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_READ); // устанавливаемые права (чтение)
$folder = \Bitrix\Disk\Folder::loadById($id_folder); // id папки
if ($folder) {
$rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
$newRights = array(
array(
//'NEGATIVE' => true, // если надо удалить права на папку
'ACCESS_CODE' => 'AU', // все авторизованные пользователи
'TASK_ID' => $accessTaskId
),
);
$rightsManager->append($folder->getRealObject(), $newRights);
$this->WriteToTrackingService("Для папки с id " . $id_folder . " установлены права на чтение.");
//устанавливаем права на файл
$file = \Bitrix\Disk\File::loadById($id_file);
$rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
$arRights = \Bitrix\Disk\Driver::getInstance()->getRightsManager()->getSpecificRights($folder->getRealObject()); // узнаем права на папку
$rightsManager->set($file, $arRights); //устанавливаем такие же права на файл как папке
$this->WriteToTrackingService("Для файла с id " . $id_file . " установлены права на чтение.");
}
else
{
$this->WriteToTrackingService("Ошибка установки прав для папки с id " . $id_folder . ".");
$this->WriteToTrackingService("Ошибка установки прав для файла с id " . $id_file . ".");
}
}