uawdijnntqw1x1x1
IP : 13.59.141.195
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
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,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
novosibirsk.axolotls.ru
/
bitrix
/
modules
/
rpa
/
lib
/
controller
/
base.php
/
/
<?php namespace Bitrix\Rpa\Controller; use Bitrix\Main\Engine\ActionFilter\Scope; use Bitrix\Main\Engine\AutoWire\ExactParameter; use Bitrix\Main\Engine\Response\Converter; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Error; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Result; use Bitrix\Main\Type\DateTime; use Bitrix\Main\UI\FileInputUtility; use Bitrix\Rpa\Driver; use Bitrix\Rpa\Model\PermissionTable; use Bitrix\Rpa\Model\StageTable; use Bitrix\Rpa\Model\TimelineTable; use Bitrix\Rpa\Model\TypeTable; use Bitrix\Rpa\Permission; use Bitrix\Rpa\UserField\UserField; abstract class Base extends Controller { protected function init() { parent::init(); \Bitrix\Rpa\Components\Base::loadBaseLanguageMessages(); } public function getAutoWiredParameters(): array { return [ new ExactParameter( \Bitrix\Rpa\Model\Type::class, 'type', static function($className, $typeId) { return TypeTable::getById($typeId)->fetchObject(); } ), new ExactParameter( \Bitrix\Rpa\Model\Stage::class, 'stage', static function($className, $id) { $stageData = StageTable::getList([ 'select' => ['TYPE_ID'], 'filter' => [ '=ID' => $id, ] ])->fetch(); if($stageData && $stageData['TYPE_ID'] > 0) { $type = Driver::getInstance()->getType($stageData['TYPE_ID']); if($type) { return $type->getStage($id); } } return null; } ), new ExactParameter( \Bitrix\Rpa\Model\Timeline::class, 'timeline', static function($className, $id) { return TimelineTable::getById($id)->fetchObject(); } ), ]; } protected function removeDotsFromKeys(array $data): array { $result = []; foreach($data as $name => $value) { if(is_array($value)) { $value = $this->removeDotsFromKeys($value); } $result[str_replace('.', '', $name)] = $value; } return $result; } protected function removeDotsFromValues(array $data): array { $result = []; foreach($data as $name => $value) { if(is_array($value)) { $value = $this->removeDotsFromValues($value); } $result[$name] = $value; } return $result; } protected function getEmptyRequiredParameterNames(array $parameters, array $requiredParamsNames): array { $emptyParams = []; foreach($requiredParamsNames as $param) { if(!isset($parameters[$param]) || empty($parameters[$param])) { $emptyParams[] = $param; } } return $emptyParams; } /** * @param array $filter * @param array $dateTimeFields */ protected function prepareDateTimeFieldsForFilter(array &$filter, array $dateTimeFields): void { foreach($filter as $name => &$value) { if(is_array($value)) { $this->prepareDateTimeFieldsForFilter($value, $dateTimeFields); continue; } foreach($dateTimeFields as $field) { if($this->isCorrectFieldName($name, $field)) { $value = \CRestUtil::unConvertDateTime($value); break; } } } } protected function prepareDateTimeValue(DateTime $dateTime): string { if($this->getScope() === Scope::REST) { return \CRestUtil::ConvertDateTime($dateTime); } return $dateTime->format(DateTime::getFormat()); } /** * @param $filterName * @param $field * @return bool */ protected function isCorrectFieldName($filterName, $field): bool { static $prefixes = [ '' => true, '=' => true, '%' => true, '>' => true, '<' => true, '@' => true, '!=' => true, '!%' => true, '><' => true, '>=' => true, '<=' => true, '=%' => true, '%=' => true, '!><' => true, '!=%' => true, '!%=' => true, ]; return isset($prefixes[str_replace($field, '', $filterName)]); } protected function processPermissions(Permission\Containable $model, array $fields): Permission\Result { $result = new Permission\Result(); if(isset($fields['PERMISSIONS'])) { if(!is_array($fields['PERMISSIONS'])) { $fields['PERMISSIONS'] = []; } $permissions = $fields['PERMISSIONS']; $converter = new Converter(Converter::TO_UPPER | Converter::KEYS | Converter::TO_SNAKE); foreach($permissions as $key => $permission) { $permissions[$key] = $converter->process($permission); } $processor = new Permission\Processor($model->getPermissions()); $result = $processor->process($permissions); } else { // no need to save $result->setSaved(); } return $result; } protected function savePermissions(Permission\Containable $model, Permission\Result $result): Result { if($result->isSaved()) { return $result; } foreach($result->getAddPermissions() as $permission) { $data = $permission; $data['ENTITY'] = $model->getPermissionEntity(); $data['ENTITY_ID'] = $model->getId(); $addResult = PermissionTable::add($data); if(!$addResult->isSuccess()) { $result->addErrors($addResult->getErrors()); } } foreach($result->getDeletePermission() as $permission) { PermissionTable::delete($permission['ID']); } $result->setSaved(); return $result; } protected function uploadFile($fileContent): ?int { if(empty($fileContent)) { return null; } $fileArray = \CRestUtil::saveFile($fileContent); if(!$fileArray) { $this->addError(new Error(Loc::getMessage('RPA_CONTROLLER_COULD_NOT_UPLOAD_FILE_ERROR'))); return null; } $fileArray['MODULE_ID'] = Driver::MODULE_ID; $filePath = Driver::MODULE_ID; $fileId = \CFile::SaveFile($fileArray, $filePath); if($fileId > 0) { return (int) $fileId; } return null; } }
/var/www/axolotl/data/www/novosibirsk.axolotls.ru/bitrix/modules/rpa/lib/controller/base.php