- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/group.php
- Класс: CAllGroup
- Вызов: CAllGroup::SetModulePermission
static function SetModulePermission($group_id, $module_id, $permission)
{
/** @global CMain $APPLICATION */
global $DB, $APPLICATION;
if(intval($permission)<=0 && $permission != false)
{
$strSql = "SELECT T.ID FROM b_task T WHERE T.MODULE_ID='".$DB->ForSql($module_id)."' AND NAME='".$DB->ForSql($permission)."'";
$db_task = $DB->Query($strSql);
if($ar_task=$db_task->Fetch())
$permission = $ar_task['ID'];
}
$permission_letter = '';
if(intval($permission)>0 || $permission === false)
{
$strSql = "SELECT T.ID FROM b_task T WHERE T.MODULE_ID='".$DB->ForSql($module_id)."'";
$dbr_tasks = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
$arIds = array();
while($arTask = $dbr_tasks->Fetch())
$arIds[] = $arTask['ID'];
if(!empty($arIds))
{
$strSql = "DELETE FROM b_group_task WHERE GROUP_ID=".intval($group_id)." AND TASK_ID IN (".implode(",", $arIds).")";
$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}
if(intval($permission)>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($group_id)." AND T.ID = ".intval($permission),
false,
"File: ".__FILE__."
Line: ".__LINE__
);
$permission_letter = CTask::GetLetter($permission);
}
}
else
{
$permission_letter = $permission;
}
if($permission_letter <> '')
$APPLICATION->SetGroupRight($module_id, $group_id, $permission_letter);
else
$APPLICATION->DelGroupRight($module_id, array($group_id));
}