3namespace Bitrix\Im\V2\Integration\Socialnetwork;
6use Bitrix\Im\Integration\Socialnetwork\Extranet;
7use Bitrix\Main\Config\Option;
9use Bitrix\Main\ModuleManager;
10use Bitrix\Main\ORM\Fields\ExpressionField;
11use Bitrix\Main\ORM\Fields\Relations\Reference;
12use Bitrix\Main\ORM\Query\Join;
13use Bitrix\Main\ORM\Query\Query;
14use Bitrix\Socialnetwork\Internals\Registry\GroupRegistry;
15use Bitrix\Socialnetwork\Item\Workgroup;
21 if (!Loader::includeModule(
'disk'))
26 return Driver::getInstance()->getStorageByGroupId($groupId)?->getId();
32 if (!Loader::includeModule(
'socialnetwork'))
37 $extranetSiteId = Option::get(
'extranet',
'extranet_site');
42 || \CSocNetUser::isCurrentUserModuleAdmin()
55 $query = \Bitrix\Socialnetwork\UserToGroupTable::query();
57 $query->whereIn(
'ROLE', $extranetRoles);
58 $query->registerRuntimeField(
62 Join::on(
'ref.GROUP_ID',
'this.GROUP_ID')->where(
'ref.SITE_ID', $extranetSiteId),
63 [
'join_type' =>
'INNER']
67 $query->registerRuntimeField(
71 Join::on(
'ref.GROUP_ID',
'this.GROUP_ID')
73 ->whereIn(
'ref.ROLE', $extranetRoles),
74 [
'join_type' =>
'INNER']
88 foreach ($group[
'USERS'] as
$user)
95 return array_values($users);
102 || Loader::includeModule(
'intranet')
103 || !Loader::includeModule(
'socialnetwork')
104 || \CSocNetUser::IsFriendsAllowed()
110 $arFriendUsers = Array();
116 [
"ID",
"FIRST_USER_ID",
"SECOND_USER_ID",
"DATE_CREATE",
"DATE_UPDATE",
"INITIATED_BY"]
119 while ($arFriends = $dbFriends->Fetch())
121 $friendId = $currentUserId == $arFriends[
"FIRST_USER_ID"] ? $arFriends[
"SECOND_USER_ID"] : $arFriends[
"FIRST_USER_ID"];
122 $arFriendUsers[$friendId] = $friendId;
125 foreach ($userIds as $id =>
$uid)
127 if (
$uid == $currentUserId)
133 !isset($arFriendUsers[
$uid])
137 unset($userIds[$id]);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getStorageId(int $groupId)
static filterAddedUsersToChatBySonetRestriction(array $userIds, int $currentUserId)
static getUsersInSameGroups(int $userId)
static getExtranetAccessibleUsersQuery(int $userId)
static isModuleInstalled($moduleName)
const PRIVACY_RESULT_CONTACT
static GetPrivacy($type, $userId=false)
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
const SONET_RELATIONS_FRIEND