- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
- Класс: CIntranetEventHandlers
- Вызов: CIntranetEventHandlers::OnBeforeProlog
static function OnBeforeProlog()
{
$conditionList = array();
if (BitrixMainModuleManager::isModuleInstalled('sale'))
{
$conditionList[] = array(
'PATTERN' => 'EXTERNAL_AUTH_ID',
'VALUE' => "WHEN %s = 'saleanonymous' THEN 'sale'"
);
}
if (BitrixMainModuleManager::isModuleInstalled('imconnector'))
{
$conditionList[] = array(
'PATTERN' => 'EXTERNAL_AUTH_ID',
'VALUE' => "WHEN %s = 'imconnector' THEN 'imconnector'"
);
}
if (BitrixMainModuleManager::isModuleInstalled('im'))
{
$conditionList[] = array(
'PATTERN' => 'EXTERNAL_AUTH_ID',
'VALUE' => "WHEN %s = 'bot' THEN 'bot'"
);
}
if (BitrixMainModuleManager::isModuleInstalled('mail'))
{
$conditionList[] = array(
'PATTERN' => 'EXTERNAL_AUTH_ID',
'VALUE' => "WHEN %s = 'email' THEN 'email'"
);
}
if (BitrixMainModuleManager::isModuleInstalled('extranet'))
{
$conditionList[] = array(
'PATTERN' => 'UF_DEPARTMENT',
'VALUE' => "WHEN %s = 'a:0:{}' THEN 'extranet'"
);
$conditionList[] = array(
'PATTERN' => 'UF_DEPARTMENT',
'VALUE' => "WHEN %s IS NULL THEN 'extranet'"
);
}
$condition = "CASE ";
$patternList = array();
foreach($conditionList as $conditionFields)
{
$condition .= ' '.$conditionFields['VALUE'].' ';
$patternList[] = $conditionFields['PATTERN'];
}
$condition .= "ELSE 'employee' END";
BitrixMainUserTable::getEntity()->addField(
new BitrixMainEntityExpressionField('USER_TYPE',
$condition,
$patternList
)
);
}