- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/userlist.php
- Класс: BitrixIntranetComponentUserList
- Вызов: UserList::getActions
static function getActions(array $params = [])
{
global $USER;
static $constantAllowed = null;
$userFields = (isset($params['USER_FIELDS']) ? $params['USER_FIELDS'] : []);
$currentUserId = $USER->getId();
$isCloud = ModuleManager::isModuleInstalled('bitrix24');
if ($constantAllowed === null)
{
$constantAllowed = [];
$constantAllowed['MESSAGE'] = (
ModuleManager::isModuleInstalled('im')
&& CBXFeatures::isFeatureEnabled("WebMessenger")
);
$constantAllowed['TASK'] = (
SITE_TEMPLATE_ID == 'bitrix24'
&& CBXFeatures::isFeatureEnabled("Tasks")
);
$constantAllowed['INVITE'] = (
(
!ModuleManager::isModuleInstalled('bitrix24')
&& $USER->canDoOperation('edit_all_users')
)
|| (
ModuleManager::isModuleInstalled('bitrix24')
&& $USER->canDoOperation('bitrix24_invite')
)
);
$constantAllowed['EDIT_ALL'] = $USER->canDoOperation('edit_all_users');
$constantAllowed['EDIT_SUBORDINATE'] = $USER->canDoOperation('edit_subordinate_users');
if (Loader::includeModule('bitrix24') && BitrixBitrix24Integrator::isIntegrator($USER->GetID()))
{
$constantAllowed['EDIT_ALL'] = false;
$constantAllowed['EDIT_SUBORDINATE'] = false;
}
}
$result = [
'view_profile'
];
if (
$constantAllowed['TASK']
&& empty($userFields['CONFIRM_CODE'])
&& $userFields['ACTIVE']
)
{
$result[] = 'add_task';
}
if (
$constantAllowed['MESSAGE']
&& $currentUserId != $userFields["ID"]
&& $userFields["ACTIVE"] == "Y"
&& empty($userFields['CONFIRM_CODE'])
)
{
$result[] = 'message';
}
if (
$constantAllowed['MESSAGE']
&& $currentUserId != $userFields["ID"]
&& empty($userFields['CONFIRM_CODE'])
)
{
$result[] = 'message_history';
}
if (
$constantAllowed['INVITE']
&& !empty($userFields['CONFIRM_CODE'])
)
{
$result[] = 'reinvite';
}
if (
(int)$currentUserId !== $userFields["ID"]
&& !in_array($userFields['USER_TYPE'], ['bot', 'imconnector'])
&& CurrentUser::get()->isAdmin()
)
{
if ($userFields["ACTIVE"] != 'Y')
{
$result[] = 'restore';
}
elseif (!empty($userFields["CONFIRM_CODE"]))
{
$result[] = 'delete';
}
else
{
$result[] = 'deactivate';
}
}
if (
$constantAllowed['MESSAGE']
&& $currentUserId != $userFields["ID"]
&& $userFields["ACTIVE"] == "Y"
&& empty($userFields['CONFIRM_CODE'])
)
{
$result[] = 'videocall';
}
$lockedShowLoginHistory = $isCloud && !Feature::isFeatureEnabled('user_login_history');
if (CurrentUser::get()->isAdmin() && !$lockedShowLoginHistory)
{
$result[] = 'loginhistory';
}
return $result;
}