- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblock_rights.php
- Класс: CIBlockRights
- Вызов: CIBlockRights::GetUserOperations
static function GetUserOperations($arID, $USER_ID = 0)
{
global $DB, $USER;
$USER_ID = intval($USER_ID);
if(is_object($USER))
{
if($USER_ID <= 0)
$USER_ID = intval($USER->GetID());
$bAuthorized = $USER->IsAuthorized();
}
else
{
$bAuthorized = false;
}
if(!is_array($arID))
$sqlID = array(intval($arID));
else
$sqlID = array_map('intval', $arID);
$rs = $DB->Query("
SELECT IBR.ENTITY_ID ID, O.NAME
FROM b_iblock_right IBR
INNER JOIN b_task_operation T ON T.TASK_ID = IBR.TASK_ID
INNER JOIN b_operation O ON O.ID = T.OPERATION_ID
".($USER_ID > 0? "LEFT": "INNER")." JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = ".$USER_ID."
WHERE IBR.ENTITY_TYPE = 'iblock'
AND IBR.ENTITY_ID in (".implode(", ", $sqlID).")
AND (UA.USER_ID IS NOT NULL ".($bAuthorized? "OR IBR.GROUP_CODE = 'AU'": "").")
");
$arResult = array();
while($ar = $rs->Fetch())
$arResult[$ar["ID"]][$ar["NAME"]] = $ar["NAME"];
if(is_array($arID))
return $arResult;
elseif(array_key_exists($arID, $arResult))
return $arResult[$arID];
else
return array();
}