%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.15.239.209 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/lib/rest/ |
Upload File : |
<?php namespace Bitrix\Main\Rest; use Bitrix\Main; use Bitrix\Rest; if(Main\Loader::includeModule("rest")): class User extends \IRestService { public static function getHistoryList($query, $nav = 0, \CRestServer $server) { global $USER; $query = array_change_key_case($query, CASE_LOWER); $filter = (isset($query['filter'])? $query['filter'] : array()); $order = (isset($query['order'])? $query['order'] : array('ID' => 'DESC')); static $filterFields = array("USER_ID", "DATE_INSERT", "EVENT_TYPE", "REMOTE_ADDR", "USER_AGENT", "REQUEST_URI", "FIELD"); static $orderFields = array("ID"); $queryFilter = static::sanitizeFilter( $filter, $filterFields, function($field, $value, $operation) { switch($field) { case 'DATE_INSERT': return Main\Type\DateTime::createFromUserTime(\CRestUtil::unConvertDateTime($value)); break; case 'USER_ID': case 'FIELD': if($operation <> '=') { throw new Rest\RestException("Only '=' operation is allowed for the filter field {$field}.", Rest\RestException::ERROR_ARGUMENT, \CRestServer::STATUS_WRONG_REQUEST); } break; } return $value; } ); if(!isset($queryFilter["=USER_ID"])) { throw new Rest\RestException("USER_ID filter field is required.", Rest\RestException::ERROR_ARGUMENT, \CRestServer::STATUS_WRONG_REQUEST); } if(!$USER->CanDoOperation('edit_all_users') && $queryFilter["=USER_ID"] <> $USER->GetID()) { throw new Rest\AccessException(); } if(isset($queryFilter["=FIELD"])) { $queryFilter['=\Bitrix\Main\UserProfileRecordTable:HISTORY.FIELD'] = $queryFilter["=FIELD"]; unset($queryFilter["=FIELD"]); } $order = static::sanitizeOrder($order, $orderFields); $navParams = static::getNavData($nav, true); $dbRes = Main\UserProfileHistoryTable::getList(array( 'filter' => $queryFilter, 'limit' => $navParams['limit'], 'offset' => $navParams['offset'], 'count_total' => true, 'order' => $order, )); $result = array(); while($event = $dbRes->fetch()) { /** @var Main\Type\DateTime $ts */ $ts = $event['DATE_INSERT']; $event['DATE_INSERT'] = \CRestUtil::convertDateTime($ts->toString()); $result[] = $event; } return static::setNavData($result, array( "count" => $dbRes->getCount(), "offset" => $navParams['offset'] )); } public static function getHistoryFieldsList($query, $nav = 0, \CRestServer $server) { global $USER; $query = array_change_key_case($query, CASE_LOWER); $filter = (isset($query['filter'])? $query['filter'] : array()); $order = (isset($query['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 Rest\RestException("Only '=' operation is allowed for the filter field {$field}.", Rest\RestException::ERROR_ARGUMENT, \CRestServer::STATUS_WRONG_REQUEST); } break; } return $value; } ); if(!isset($queryFilter["=HISTORY_ID"])) { throw new Rest\RestException("HISTORY_ID filter field is required.", Rest\RestException::ERROR_ARGUMENT, \CRestServer::STATUS_WRONG_REQUEST); } if(!$USER->CanDoOperation('edit_all_users')) { $queryFilter["=HISTORY.USER_ID"] = $USER->GetID(); } $order = static::sanitizeOrder($order, $orderFields); $dbRes = Main\UserProfileRecordTable::getList(array( 'filter' => $queryFilter, 'order' => $order, )); $result = $dbRes->fetchAll(); return $result; } } endif;