• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/role.php
  • Класс: BitrixLandingRole
  • Вызов: Role::checkRequiredRoles
static function checkRequiredRoles(): void
{
	$type = SiteType::getCurrentScopeId();
	$res = self::getList([
		'select' => [
			'ID'
		],
		'filter' => [
			'=TYPE' => $type
		],
		'order' => [
			'ID' => 'asc'
		]
	]);
	while ($role = $res->fetch())
	{
		$taskRefs = Rights::getAccessTasksReferences();
		$taskReadId = $taskRefs[Rights::ACCESS_TYPES['read']];
		$taskDenyId = $taskRefs[Rights::ACCESS_TYPES['denied']];
		$resRight = RightsTable::getList([
			'select' => [
				'ID'
			],
			'filter' => [
				'ENTITY_ID' => 0,
				'TASK_ID' => [$taskReadId, $taskDenyId],
				'ROLE_ID' => $role['ID'],
				'=ENTITY_TYPE' => Rights::ENTITY_TYPE_SITE
			]
		]);
		if (!$resRight->fetch())
		{
			RightsTable::add([
				'ENTITY_ID' => 0,
				'ENTITY_TYPE' => Rights::ENTITY_TYPE_SITE,
				'TASK_ID' => $taskReadId,
				'ROLE_ID' => $role['ID'],
				'ACCESS_CODE' => 'G1'
			]);
		}
	}

	if (isset($taskRefs))
	{
		return;
	}

	$keyDemoInstalled = 'role_demo_installed';
	if ($type)
	{
		$keyDemoInstalled .= '_' . mb_strtolower($type);
	}
	Manager::setOption($keyDemoInstalled, 'N');
	self::fetchAll();
}