- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/user.php
- Класс: BitrixMainUserTable
- Вызов: UserTable::getUserGroupIds
static function getUserGroupIds($userId)
{
$groups = array();
// anonymous groups
$result = GroupTable::getList(array(
'select' => array('ID'),
'filter' => array(
'=ANONYMOUS' => 'Y',
'=ACTIVE' => 'Y'
)
));
while ($row = $result->fetch())
{
$groups[] = $row['ID'];
}
if(!in_array(2, $groups))
$groups[] = 2;
if($userId > 0)
{
// private groups
$nowTimeExpression = new SqlExpression(
static::getEntity()->getConnection()->getSqlHelper()->getCurrentDateTimeFunction()
);
$result = GroupTable::getList(array(
'select' => array('ID'),
'filter' => array(
'=UserGroup:GROUP.USER_ID' => $userId,
'=ACTIVE' => 'Y',
array(
'LOGIC' => 'OR',
'=UserGroup:GROUP.DATE_ACTIVE_FROM' => null,
'<=UserGroup:GROUP.DATE_ACTIVE_FROM' => $nowTimeExpression,
),
array(
'LOGIC' => 'OR',
'=UserGroup:GROUP.DATE_ACTIVE_TO' => null,
'>=UserGroup:GROUP.DATE_ACTIVE_TO' => $nowTimeExpression,
),
array(
'LOGIC' => 'OR',
'!=ANONYMOUS' => 'Y',
'=ANONYMOUS' => null
)
)
));
while ($row = $result->fetch())
{
$groups[] = $row['ID'];
}
}
sort($groups);
return $groups;
}