• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/controller_member.php
  • Класс: CControllerClient
  • Вызов: CControllerClient::SetGroupSecurity
static function SetGroupSecurity($group_code, $arPermissions, $arSubGroups = false)
{
	if(($group_id = CGroup::GetIDByCode($group_code))<=0)
		return false;

	$arBackup = CControllerClient::GetBackup();
	foreach($arPermissions as $module_id=>$level)
	{
		if(!is_set($arBackup["security"][$group_code], $module_id))
		{
			$arBackup["security"][$group_code][$module_id] = CGroup::GetModulePermission($group_id, $module_id);
		}

		CGroup::SetModulePermission($group_id, $module_id, $level);
	}

	if(is_array($arSubGroups))
	{
		$arSubordGroupID = Array();
		foreach($arSubGroups as $sub_group_id)
		{
			$sub_group_id = CGroup::GetIDByCode($sub_group_id);
			if($sub_group_id > 0)
				$arSubordGroupID[] = $sub_group_id;
		}

		if(!is_set($arBackup["security_subord_groups"], $group_code))
		{
			$arBackup["security_subord_groups"][$group_code] = CGroup::GetSubordinateGroups($group_id);
		}

		CGroup::SetSubordinateGroups($group_id, $arSubordGroupID);
	}

	CControllerClient::SetBackup($arBackup);
}