- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/group.php
- Класс: CAllGroup
- Вызов: CAllGroup::SetTasksForModule
static function SetTasksForModule($module_id, $arGroupTask)
{
global $DB;
$module_id = $DB->ForSql($module_id);
$sql_str = "SELECT T.ID
FROM b_task T
WHERE T.MODULE_ID='".$module_id."'";
$r = $DB->Query($sql_str, false, "File: ".__FILE__."
Line: ".__LINE__);
$arIds = array();
while($arR = $r->Fetch())
$arIds[] = $arR['ID'];
if(COption::GetOptionString("main", "event_log_module_access", "N") === "Y")
{
//get old values
$arOldTasks = array();
if(!empty($arIds))
{
$rsTask = $DB->Query("SELECT GROUP_ID, TASK_ID FROM b_group_task WHERE TASK_ID IN (".implode(",", $arIds).")");
while($arTask = $rsTask->Fetch())
$arOldTasks[$arTask["GROUP_ID"]] = $arTask["TASK_ID"];
}
//compare with new ones
foreach($arOldTasks as $gr_id=>$task_id)
if($task_id <> $arGroupTask[$gr_id]['ID'])
CEventLog::Log("SECURITY", "MODULE_RIGHTS_CHANGED", "main", $gr_id, $module_id.": (".$task_id.") => (".$arGroupTask[$gr_id]['ID'].")");
foreach($arGroupTask as $gr_id => $oTask)
if(intval($oTask['ID']) > 0 && !array_key_exists($gr_id, $arOldTasks))
CEventLog::Log("SECURITY", "MODULE_RIGHTS_CHANGED", "main", $gr_id, $module_id.": () => (".$oTask['ID'].")");
}
if(!empty($arIds))
{
$sql_str = "DELETE FROM b_group_task WHERE TASK_ID IN (".implode(",", $arIds).")";
$DB->Query($sql_str, false, "File: ".__FILE__."
Line: ".__LINE__);
}
foreach($arGroupTask as $gr_id => $oTask)
{
if(intval($oTask['ID']) > 0)
{
$DB->Query(
"INSERT INTO b_group_task (GROUP_ID, TASK_ID, EXTERNAL_ID) ".
"SELECT G.ID, T.ID, '' ".
"FROM b_group G, b_task T ".
"WHERE G.ID = ".intval($gr_id)." AND
T.ID = ".intval($oTask['ID']),
false, "File: ".__FILE__."
Line: ".__LINE__
);
}
}
}