- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/Avatar/Controller/mask.php
- Класс: BitrixUIAvatarControllerMask
- Вызов: Mask::saveAction
public function saveAction($id, $title, $accessCode, $file, MainEngineCurrentUser $currentUser): ResponseAjaxJson
{
$destCodesList = MainUIEntitySelectorConverter::convertToFinderCodes($accessCode);
$file = ($file['changed'] === 'Y' ? $this->getRequest()->getFile('file') : null);
if ($id > 0)
{
$result = $this->checkEditability($id, $currentUser);
if ($result->isSuccess())
{
['item' => $item] = $result->getData();
/* @var AvatarMaskItem $item*/
$result = $item->update([
'TITLE' => $title,
'ACCESS_CODE' => $destCodesList
] + (!empty($file) ? [
'FILE' => $file] : [])
);
}
}
else
{
$result = AvatarMaskItem::create(
new AvatarMaskOwnerUser($currentUser->getId()),
$file,
[
'TITLE' => $title,
'ACCESS_CODE' => $destCodesList
]
);
if ($result->isSuccess())
{
$id = $result->getId();
}
}
if ($result->isSuccess())
{
$responsePage = static::getList(
AvatarMaskItemTable::query()
->setFilter([
'=ID' => $id
])
,
(new PageNavigation('justBuffNav'))->setPageSize(1),
$currentUser
);
if (($groupedItems = $responsePage->getItems())
&& ($itemsFromOneGroup = reset($groupedItems))
&& isset($itemsFromOneGroup['items'])
&& ($itemData = reset($itemsFromOneGroup['items']))
)
{
$result = $this->checkEditability($id, $currentUser);
if ($result->isSuccess())
{
['item' => $item] = $result->getData();
$itemData['accessCode'] = MainUIEntitySelectorConverter::convertFromFinderCodes($item->getAccessCode());
}
return ResponseAjaxJson::createSuccess(
$itemData
);
}
}
return ResponseAjaxJson::createError($result->getErrorCollection());
}