- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/usertogroup.php
- Класс: BitrixSocialnetworkItemUserToGroup
- Вызов: UserToGroup::changeRelationAutoMembership
static function changeRelationAutoMembership($params): void
{
static $helper = false;
$relationId = (int)($params['RELATION_ID'] ?? 0);
$userId = (int)($params['USER_ID'] ?? 0);
$groupId = (int)($params['GROUP_ID'] ?? 0);
$value = (
isset($params['VALUE'])
&& in_array($params['VALUE'], WorkgroupTable::getAutoMembershipValuesAll(), true)
? $params['VALUE']
: 'Y'
);
$notyfy = (isset($params['NOTIFY']) && $params['NOTIFY'] === 'N' ? $params['NOTIFY'] : 'Y');
if ($relationId <= 0)
{
return;
}
if (!$helper)
{
$connection = Application::getConnection();
$helper = $connection->getSqlHelper();
}
$updateFields = [
'AUTO_MEMBER' => $value,
'=DATE_UPDATE' => $helper->getCurrentDateTimeFunction(),
];
if (
isset($params['ROLE'])
&& in_array($params['ROLE'], UserToGroupTable::getRolesAll(), true)
)
{
$updateFields['ROLE'] = $params['ROLE'];
}
CSocNetUserToGroup::update($relationId, $updateFields);
if (
!$notyfy
|| $userId <= 0
|| $groupId <= 0
|| $value !== 'Y'
)
{
return;
}
self::notifyAutoMembership([
'GROUP_ID' => $groupId,
'USER_ID' => $userId,
'RELATION_ID' => $relationId,
]);
self::addInfoToChat([
'group_id' => $groupId,
'user_id' => $userId,
'action' => self::CHAT_ACTION_IN,
'role' => ($params['ROLE'] ?? false),
]);
}