- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/rest.php
- Класс: CSocNetLogRestService
- Вызов: CSocNetLogRestService::updateGroup
static function updateGroup($arFields)
{
foreach ($arFields as $key => $value)
{
if (in_array(mb_substr($key, 0, 1), [ '~', '=' ]))
{
unset($arFields[$key]);
}
}
if (isset($arFields['IMAGE_FILE_ID']) && Loader::includeModule('disk'))
{
$imageFileId = (int)$arFields['IMAGE_FILE_ID'];
if ($imageFileId === 0)
{
$arFields['IMAGE_ID'] = ['del' => 'Y'];
unset($arFields['IMAGE']);
}
else if (
$imageFileId > 0
&& ($file = File::loadById($imageFileId))
&& $file->canRead($file->getStorage()->getSecurityContext(self::getCurrentUserId()))
)
{
$image = CFile::MakeFileArray($file->getFileId());
$image['del'] = 'N';
CFile::ResizeImage($image, ['width' => 300, 'height' => 300]);
$arFields['IMAGE_ID'] = $image;
unset($arFields['IMAGE']);
}
else
{
unset($arFields['IMAGE_FILE_ID']);
}
}
if (isset($arFields['IMAGE']))
{
$arFields['IMAGE_ID'] = CRestUtil::saveFile($arFields['IMAGE']);
if (!$arFields['IMAGE_ID'])
{
$arFields['IMAGE_ID'] = array('del' => 'Y');
}
unset($arFields['IMAGE']);
}
if (!empty($arFields['PROJECT_DATE_START']))
{
$arFields['PROJECT_DATE_START'] = CRestUtil::unConvertDate($arFields['PROJECT_DATE_START']);
}
if (!empty($arFields['PROJECT_DATE_FINISH']))
{
$arFields['PROJECT_DATE_FINISH'] = CRestUtil::unConvertDate($arFields['PROJECT_DATE_FINISH']);
}
$groupID = $arFields['GROUP_ID'] ?? null;
unset($arFields['GROUP_ID']);
if ((int)$groupID <= 0)
{
throw new ArgumentException('Wrong group ID');
}
if (!WorkgroupAccess::canUpdate([
'groupId' => $groupID,
'checkAdminSession' => false,
]))
{
throw new AccessDeniedException('User has no permissions to update group');
}
$res = CSocNetGroup::Update($groupID, $arFields, false);
if ((int)$res <= 0)
{
throw new SystemException('Cannot update group');
}
return $res;
}