Например нужно, чтобы в админке в меню инфоблоков показывались только те инфоблоке к которым он привязан. Это нужно если создано несколько суперадминов.
Создали пользовательское поле "UF_SITE" с ID сайтами.
Указали у пользователя привязку к сайту.
/*--Проверяем у пользователя есть ли привязка к сайту--*/
global $USER;
$arFilterUser = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_SITE");
$arResUser = CUser::GetList($by,$desc,$arFilterUser,$arParams);
if ($res_user = $arResUser->GetNext()) {
$UF_SITE=$res_user['UF_SITE']; // записываем данные в $UF_SITE
}
if ($UF_SITE!=false){ //если есть запись о привязке к сайту
unset($aridsite); // очистим
$idsite = CIBlock::GetSite($arIBlock["ID"]); // проверяем привязку к сайту у инфоблока
while($ar_idsite = $idsite->GetNext()){
$aridsite[]=$ar_idsite['LID'];
if (in_array($ar_idsite['LID'], $UF_SITE)) { //ищем id привязанного сайта у пользователя в массиве привязанного сайта у инфоблока
$arIBlock["LID_USER"]=$ar_idsite['LID'];
}
}
}
Проверяем привязку к сайту
Например нужно, чтобы в админке в меню инфоблоков показывались только те инфоблоке к которым он привязан.
17 ноября 2021 17:00