- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user.php
- Класс: CAllSocNetUser
- Вызов: CAllSocNetUser::isCalendarSharingUser
static function isCalendarSharingUser($currentUserId, $arUser, $siteId, $arContext)
{
if (!ModuleManager::isModuleInstalled('calendar'))
{
return false;
}
$currentUserId = (int)$currentUserId;
if (
$currentUserId <= 0
|| !is_array($arUser)
)
{
return false;
}
if (
isset($arUser['EXTERNAL_AUTH_ID'])
&& $arUser['EXTERNAL_AUTH_ID'] === 'calendar_sharing'
&& Loader::includeModule('intranet')
)
{
$res = BitrixIntranetUserTable::getList([
'filter' => [
'=ID' => $currentUserId,
],
'select' => [ 'USER_TYPE' ],
]);
if (
($currentUserFields = $res->fetch())
&& $currentUserFields['USER_TYPE'] === 'employee'
)
{
return true;
}
}
if (
!isset($arContext['ENTITY_TYPE'], $arContext['ENTITY_ID'], $arUser['ID'])
|| (int)$arContext['ENTITY_ID'] <= 0
|| $arContext['ENTITY_TYPE'] !== 'LOG_ENTRY'
|| (int)$arUser['ID'] <= 0
)
{
return false;
}
if (
(
isset($arUser['EXTERNAL_AUTH_ID'])
&& $arUser['EXTERNAL_AUTH_ID'] === 'calendar_sharing'
) // -> calendar_sharing user
||
(
($res = CUser::getById($currentUserId))
&& ($currentUserFields = $res->fetch())
&& ($currentUserFields['EXTERNAL_AUTH_ID'] === 'calendar_sharing')
) // calendar_sharing user ->
)
{
return self::CheckContext($currentUserId, $arUser['ID'], $arContext);
}
return false;
}