• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/sharing.php
  • Класс: BitrixDiskInternalsSharingTable
  • Вызов: SharingTable::checkFields
static function checkFields(Result $result, $primary, array $data)
{
	parent::checkFields($result, $primary, $data);

	if(!$result->isSuccess())
	{
		return;
	}

	$query = new EntityQuery(static::getEntity());
	$res = $query
		->setSelect(array('ID', 'STATUS'))
		->setFilter(array(
			'=TO_ENTITY' => $data['TO_ENTITY'],
			'=REAL_OBJECT_ID' => $data['REAL_OBJECT_ID'],
		))
		->setLimit(2)
		->exec()
	;
	while ($existing = $res->fetch())
	{
		if(!isset($primary) || $primary != $existing['ID'])
		{
			if($existing['STATUS'] == self::STATUS_IS_DECLINED)
			{
				static::delete($existing['ID']);
			}
			else
			{
				$result->addError(new EntityEntityError(
					Loc::getMessage("DISK_SHARING_ENTITY_ERROR_NON_UNIQUE")
				));
			}
		}
	}
}