public static function ChangeFolderMembers($chatId, $userId, $append = true) { $folderModel = self::GetFolderModel($chatId); if (!$folderModel) return false; if (!is_array($userId)) $userIds = Array($userId); else $userIds = $userId; $driver = Bitrix\Disk\Driver::getInstance(); $rightsManager = $driver->getRightsManager(); if ($append) { $fullAccessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_FULL); $accessCodes = Array(); foreach ($userIds as $userId) { $userId = intval($userId); if ($userId <= 0) continue; $accessCodes[] = array( 'ACCESS_CODE' => 'U'.$userId, 'TASK_ID' => $fullAccessTaskId, ); } if (count($accessCodes) <= 0) return false; $result = $rightsManager->append($folderModel, $accessCodes); } else { $accessCodes = Array(); foreach ($userIds as $userId) { $userId = intval($userId); if ($userId <= 0) continue; $accessCodes[] = 'U'.$userId; } $result = $rightsManager->revokeByAccessCodes($folderModel, $accessCodes); } return $result; }
/** * @param array $listAttachedId * @param $entityId */ public static function deleteAttachedFileDisk(array $listAttachedId, $entityId) { if (!CModule::includeModule('disk')) { return; } $userFieldManager = Bitrix\Disk\Driver::getInstance()->getUserFieldManager(); foreach ($listAttachedId as $idAttached) { list($type, $realId) = Bitrix\Disk\Uf\FileUserType::detectType($idAttached); if ($type == Bitrix\Disk\Uf\FileUserType::TYPE_ALREADY_ATTACHED) { $attachedModel = Bitrix\Disk\AttachedObject::loadById($realId); if (!$attachedModel) { continue; } if ($userFieldManager->belongsToEntity($attachedModel, "lists_element", $entityId)) { $attachedModel->delete(); } } } }