- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/workgroupform.php
- Класс: BitrixSocialnetworkComponentWorkgroupForm
- Вызов: WorkgroupForm::processWorkgroupData
static function processWorkgroupData(&$groupId, &$groupPropertiesList = [], &$groupData = [], $tab = false): void
{
global $USER;
$currentUserId = (int)$USER->getId();
$currentAdmin = CSocNetUser::isCurrentUserModuleAdmin();
$groupFields = CSocNetGroup::getById($groupId);
$canUpdate = BitrixSocialnetworkHelperWorkgroupAccess::canUpdate([
'groupId' => $groupId,
]);
if (
$groupFields
&& (
(
$tab === 'edit'
&& $canUpdate
)
|| (
$tab === 'invite'
&& (
$currentAdmin
|| CSocNetGroup::canUserInitiate($currentUserId, $groupId)
)
)
)
)
{
$groupData['NAME'] = $groupFields['NAME'];
$groupData['DESCRIPTION'] = $groupFields["DESCRIPTION"];
$groupData['IMAGE_ID_DEL'] = 'N';
$groupData['SUBJECT_ID'] = $groupFields['SUBJECT_ID'];
$groupData['VISIBLE'] = $groupFields['VISIBLE'];
$groupData['OPENED'] = $groupFields['OPENED'];
$groupData['CLOSED'] = $groupFields['CLOSED'];
$groupData['PROJECT'] = ($groupFields['PROJECT'] === 'Y' ? 'Y' : 'N');
$groupData['PROJECT_DATE_START'] = ($groupData['PROJECT'] === 'Y' ? $groupFields['PROJECT_DATE_START'] : false);
$groupData['PROJECT_DATE_FINISH'] = ($groupData['PROJECT'] === 'Y' ? $groupFields['PROJECT_DATE_FINISH'] : false);
$groupData['KEYWORDS'] = $groupFields['KEYWORDS'];
$groupData['OWNER_ID'] = $groupFields['OWNER_ID'];
$groupData['INITIATE_PERMS'] = $groupFields['INITIATE_PERMS'];
$groupData['SPAM_PERMS'] = $groupFields['SPAM_PERMS'];
$groupData['IMAGE_ID'] = $groupFields['IMAGE_ID'];
$groupData['IMAGE_ID_FILE'] = CFile::getFileArray($groupFields['IMAGE_ID']);
$groupData['IMAGE_ID_IMG'] = '';
$groupData['MODERATOR_IDS'] = [];
$groupData['LANDING'] = ($groupFields['LANDING'] === 'Y' ? 'Y' : 'N');
$groupData['SCRUM_OWNER_ID'] = ($groupFields['SCRUM_OWNER_ID'] ?: null);
$groupData['SCRUM_MASTER_ID'] = ($groupFields['SCRUM_MASTER_ID'] ?: null);
$groupData['SCRUM_SPRINT_DURATION'] = ($groupFields['SCRUM_SPRINT_DURATION'] ?: null);
$groupData['SCRUM_TASK_RESPONSIBLE'] = ($groupFields['SCRUM_TASK_RESPONSIBLE'] ?: null);
$groupData['AVATAR_TYPE'] = (string)($groupFields['AVATAR_TYPE'] ?? '');
foreach (array_keys($groupPropertiesList) as $field)
{
if (!isset($groupFields[$field]))
{
continue;
}
$groupPropertiesList[$field]['VALUE'] = $groupFields['~' . $field];
$groupPropertiesList[$field]['ENTITY_VALUE_ID'] = $groupFields['ID'];
}
$groupData['IS_EXTRANET_GROUP'] = (
Loader::includeModule('extranet')
&& CExtranet::isExtranetSocNetGroup($groupId)
? 'Y'
: 'N'
);
$res = UserToGroupTable::getList([
'filter' => [
'ROLE' => UserToGroupTable::ROLE_MODERATOR,
'GROUP_ID' => $groupId,
],
'select' => [ 'USER_ID' ]
]);
while ($relation = $res->fetch())
{
$groupData['MODERATOR_IDS'][] = (int)$relation['USER_ID'];
}
}
else
{
$groupData['VISIBLE'] = 'Y';
$groupData['IS_EXTRANET_GROUP'] = 'N';
$groupId = 0;
}
}