- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/task.php
- Класс: CAllTask
- Вызов: CAllTask::UpdateModuleRights
static function UpdateModuleRights($id, $moduleId, $letter, $site_id = false)
{
global $DB;
if (!isset($id, $moduleId))
return false;
$sql = "SELECT GT.GROUP_ID
FROM b_group_task GT
WHERE GT.TASK_ID=".intval($id);
$z = $DB->Query($sql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
$arGroups = array();
while($r = $z->Fetch())
{
$g = intval($r['GROUP_ID']);
if ($g > 0)
$arGroups[] = $g;
}
if (empty($arGroups))
return false;
$str_groups = implode(',', $arGroups);
$moduleId = $DB->ForSQL($moduleId);
$DB->Query(
"DELETE FROM b_module_group
WHERE
MODULE_ID = '".$moduleId."' AND
SITE_ID ".($site_id ? "='".$site_id."'" : "IS NULL")." AND
GROUP_ID IN (".$str_groups.")",
false, "FILE: ".__FILE__."
LINE: ".__LINE__
);
if ($letter != '')
{
$letter = $DB->ForSQL($letter);
$DB->Query(
"INSERT INTO b_module_group (MODULE_ID, GROUP_ID, G_ACCESS, SITE_ID) ".
"SELECT '".$moduleId."', G.ID, '".$letter."', ".($site_id ? "'".$site_id."'" : "NULL")." ".
"FROM b_group G ".
"WHERE G.ID IN (".$str_groups.")"
, false, "File: ".__FILE__."
Line: ".__LINE__
);
}
ModuleGroupTable::cleanCache();
return ($letter != '');
}