• Модуль: 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)); }