/** * Add rights for reading files by given users. * @deprecated */ private static function addFilesRights($taskId, $arFilesIds) { $arFilesIds = array_unique(array_filter($arFilesIds)); // Nothing to do? if (empty($arFilesIds)) { return; } if (!CModule::IncludeModule('webdav')) { return; } $arRightsTasks = CWebDavIblock::GetTasks(); // tasks-operations $oTask = new CTaskItem((int) $taskId, 1); $arTask = $oTask->getData(false); $arTaskMembers = array_unique(array_merge(array($arTask['CREATED_BY'], $arTask['RESPONSIBLE_ID']), $arTask['AUDITORS'], $arTask['ACCOMPLICES'])); $ibe = new CIBlockElement(); $dbWDFile = $ibe->GetList(array(), array('ID' => $arFilesIds, 'SHOW_NEW' => 'Y'), false, false, array('ID', 'NAME', 'SECTION_ID', 'IBLOCK_ID', 'WF_NEW')); if ($dbWDFile) { $i = 0; $arRightsForTaskMembers = array(); foreach ($arTaskMembers as $userId) { // For intranet users and their managers $arRightsForTaskMembers['n' . $i++] = array('GROUP_CODE' => 'IU' . $userId, 'TASK_ID' => $arRightsTasks['R']); // For extranet users $arRightsForTaskMembers['n' . $i++] = array('GROUP_CODE' => 'U' . $userId, 'TASK_ID' => $arRightsTasks['R']); } $iNext = $i; while ($arWDFile = $dbWDFile->Fetch()) { if (!$arWDFile['IBLOCK_ID']) { continue; } $fileId = $arWDFile['ID']; if (CIBlock::GetArrayByID($arWDFile['IBLOCK_ID'], "RIGHTS_MODE") === "E") { $ibRights = new CIBlockElementRights($arWDFile['IBLOCK_ID'], $fileId); $arCurRightsRaw = $ibRights->getRights(); // Preserve existing rights $i = $iNext; $arRights = $arRightsForTaskMembers; foreach ($arCurRightsRaw as $arRightsData) { $arRights['n' . $i++] = array('GROUP_CODE' => $arRightsData['GROUP_CODE'], 'TASK_ID' => $arRightsData['TASK_ID']); } $ibRights->setRights($arRights); } } } }