• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/user.php
  • Класс: CAllUser
  • Вызов: CAllUser::GetAllOperations
public function GetAllOperations($arGroups = false)
{
	global $DB;

	if (is_array($arGroups))
	{
		$userGroups = "2," . implode(",", array_map("intval", $arGroups));
	}
	else
	{
		$userGroups = $this->GetGroups();
	}

	$sql_str = "
		SELECT O.NAME OPERATION_NAME
		FROM b_group_task GT
			INNER JOIN b_task_operation T_O ON T_O.TASK_ID=GT.TASK_ID
			INNER JOIN b_operation O ON O.ID=T_O.OPERATION_ID
		WHERE GT.GROUP_ID IN(" . $userGroups . ")
		UNION
		SELECT O.NAME OPERATION_NAME
		FROM b_option OP
			INNER JOIN b_task_operation T_O ON T_O.TASK_ID=" . $DB->ToNumber("OP.VALUE") . "
			INNER JOIN b_operation O ON O.ID=T_O.OPERATION_ID
		WHERE OP.NAME='GROUP_DEFAULT_TASK'
		UNION
		SELECT O.NAME OPERATION_NAME
		FROM b_option OP
			INNER JOIN b_task T ON T.MODULE_ID=OP.MODULE_ID AND T.BINDING='module' AND T.LETTER=" . $DB->ToChar("OP.VALUE", 1) . " AND T.SYS='Y'
			INNER JOIN b_task_operation T_O ON T_O.TASK_ID=T.ID
			INNER JOIN b_operation O ON O.ID=T_O.OPERATION_ID
		WHERE OP.NAME='GROUP_DEFAULT_RIGHT'
	";

	$z = $DB->Query($sql_str);
	$arr = [];
	while ($r = $z->Fetch())
	{
		$arr[$r['OPERATION_NAME']] = $r['OPERATION_NAME'];
	}

	return $arr;
}