• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/access/service/rolepermissionservice.php
  • Класс: Bitrix\Sender\Access\Service\RolePermissionService
  • Вызов: RolePermissionService::getAccessRights
public function getAccessRights(): array
{
	$sections = SectionDictionary::getMap();
	$adsAccessMap = SectionDictionary::getAdsAccessMap();

	$res = [];

	foreach ($sections as $sectionId => $permissions)
	{

		$rights = [];
		foreach ($permissions as $permissionId)
		{
			$messageCodeByPermission = $adsAccessMap[$permissionId] ?? null;
			if (
				$messageCodeByPermission !== null
				&& !Service::isAdVisibleInRegion($adsAccessMap[$permissionId])
			)
			{
				continue;
			}
			if (
				$messageCodeByPermission === iBase::CODE_MASTER_YANDEX
				&& !Service::isMasterYandexVisibleInRegion()
			)
			{
				continue;
			}

			$rights[] = [
				'id' => $permissionId,
				'type' => PermissionDictionary::getType($permissionId),
				'title' => PermissionDictionary::getTitle($permissionId)
			];
		}
		$res[] = [
			'sectionTitle' => SectionDictionary::getTitle($sectionId),
			'rights' => $rights
		];
	}

	return $res;
}