• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/sale_helper.php
  • Класс: \CCrmSaleHelper
  • Вызов: CCrmSaleHelper::runAgentAddGroupToShop
static function runAgentAddGroupToShop()
{
	global $APPLICATION;

	$groupObject = new CGroup;

	$groupsData = array(
		array(
			"ACTIVE" => "Y",
			"C_SORT" => 100,
			"NAME" => Loc::getMessage("SALE_USER_GROUP_SHOP_ADMIN_NAME"),
			"STRING_ID" => "CRM_SHOP_ADMIN",
			"DESCRIPTION" => Loc::getMessage("SALE_USER_GROUP_SHOP_ADMIN_DESC"),
			"BASE_RIGHTS" => array("sale" => "W"),
			"TASK_RIGHTS" => array("catalog" => "W", "main" => "R", "iblock" => "X")
		),
		array(
			"ACTIVE" => "Y",
			"C_SORT" => 100,
			"NAME" => Loc::getMessage("SALE_USER_GROUP_SHOP_MANAGER_NAME"),
			"STRING_ID" => "CRM_SHOP_MANAGER",
			"DESCRIPTION" => Loc::getMessage("SALE_USER_GROUP_SHOP_MANAGER_DESC"),
			"BASE_RIGHTS" => array("sale" => "U"),
			"TASK_RIGHTS" => array("catalog" => "W", "iblock" => "W")
		),
	);

	foreach ($groupsData as $groupData)
	{
		$groupId = $groupObject->add($groupData);
		if ($groupObject->LAST_ERROR == '' && $groupId)
		{
			foreach($groupData["BASE_RIGHTS"] as $moduleId => $letter)
			{
				$APPLICATION->setGroupRight($moduleId, $groupId, $letter, false);
			}
			foreach($groupData["TASK_RIGHTS"] as $moduleId => $letter)
			{
				switch ($moduleId)
				{
					case "iblock":
						if (Loader::includeModule("iblock"))
						{
							CIBlockRights::setGroupRight($groupId, "CRM_PRODUCT_CATALOG", $letter);
						}
						break;
					default:
						CGroup::SetModulePermission($groupId, $moduleId, CTask::GetIdByLetter($letter, $moduleId));
				}
			}
		}
	}

	CCrmSaleHelper::addUserToShopGroup();

	return "";
}