/** * Check is connected or not BaseObject (File|Folder) to user storage. * It means row in SharingTable. * @param $userId * @param BaseObject|BaseObject $object * @param array $returnData Special for optimization we get fields and return by link. * @return bool * @throws \Bitrix\Main\ArgumentException */ public static function isConnectedToUserStorage($userId, BaseObject $object, array &$returnData = array()) { $userId = (int) $userId; $returnData = SharingTable::getList(array('select' => array('REAL_OBJECT_ID', 'LINK_OBJECT_ID'), 'filter' => array('REAL_OBJECT_ID' => $object->getRealObjectId(), '=TO_ENTITY' => self::CODE_USER . $userId, '=STATUS' => SharingTable::STATUS_IS_APPROVED), 'limit' => 1))->fetch(); return (bool) $returnData; }
private function getUserShareObjectIds() { $sharedObjectIds = array(); foreach (SharingTable::getList(array('select' => array('REAL_OBJECT_ID', 'TO_ENTITY', 'FROM_ENTITY'), 'filter' => array(array('LOGIC' => 'OR', '=TO_ENTITY' => Sharing::CODE_USER . $this->getUser()->getId(), '=FROM_ENTITY' => Sharing::CODE_USER . $this->getUser()->getId()), '!=STATUS' => SharingTable::STATUS_IS_DECLINED, 'REAL_STORAGE_ID' => $this->folder->getStorageId())))->fetchAll() as $row) { $sharedObjectIds[$row['REAL_OBJECT_ID']] = $row; } unset($row); return $sharedObjectIds; }