- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ui/entityselector/userprovider.php
- Класс: BitrixSocialnetworkIntegrationUIEntitySelectorUserProvider
- Вызов: UserProvider::getExtranetUsersQuery
static function getExtranetUsersQuery(int $currentUserId): ?Query
{
$extranetSiteId = Option::get('extranet', 'extranet_site');
$extranetSiteId = ($extranetSiteId && ModuleManager::isModuleInstalled('extranet') ? $extranetSiteId : false);
if (
!$extranetSiteId
|| CSocNetUser::isCurrentUserModuleAdmin()
)
{
return null;
}
$query = UserToGroupTable::query();
$query->addSelect(new ExpressionField('DISTINCT_USER_ID', 'DISTINCT %s', 'USER.ID'));
// $query->where('ROLE', '<=', UserToGroupTable::ROLE_USER);
$query->whereIn('ROLE', self::EXTRANET_ROLES);
$query->registerRuntimeField(
new Reference(
'GS',
WorkgroupSiteTable::class,
Join::on('ref.GROUP_ID', 'this.GROUP_ID')->where('ref.SITE_ID', $extranetSiteId),
['join_type' => 'INNER']
)
);
$query->registerRuntimeField(
new Reference(
'UG_MY',
UserToGroupTable::class,
Join::on('ref.GROUP_ID', 'this.GROUP_ID')
->where('ref.USER_ID', $currentUserId)
->whereIn('ref.ROLE', self::EXTRANET_ROLES),
['join_type' => 'INNER']
)
);
return $query;
}