• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/rest/user.php
  • Класс: BitrixMainRestUser
  • Вызов: User::getHistoryFieldsList
static function getHistoryFieldsList($query, $nav = 0, CRestServer $server)
{
	global $USER;

	$query = array_change_key_case($query, CASE_LOWER);

	$filter = ($query['filter'] ?? array());
	$order = ($query['order'] ?? array('ID' => 'ASC'));

	static $filterFields = array("HISTORY_ID", "FIELD");
	static $orderFields = array("ID");

	$queryFilter = static::sanitizeFilter(
		$filter,
		$filterFields,
		function($field, $value, $operation)
		{
			switch($field)
			{
				case 'HISTORY_ID':
				case 'FIELD':
					if($operation <> '=')
					{
						throw new RestRestException("Only '=' operation is allowed for the filter field {$field}.", RestRestException::ERROR_ARGUMENT, CRestServer::STATUS_WRONG_REQUEST);
					}
					break;

			}
			return $value;
		}
	);

	if(!isset($queryFilter["=HISTORY_ID"]))
	{
		throw new RestRestException("HISTORY_ID filter field is required.", RestRestException::ERROR_ARGUMENT, CRestServer::STATUS_WRONG_REQUEST);
	}

	if(!$USER->CanDoOperation('edit_all_users'))
	{
		$queryFilter["=HISTORY.USER_ID"] = $USER->GetID();
	}

	$order = static::sanitizeOrder($order, $orderFields);

	$dbRes = MainUserProfileRecordTable::getList(array(
		'filter' => $queryFilter,
		'order' => $order,
	));

	$result = $dbRes->fetchAll();

	return $result;
}