• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/access/service/roledealcategoryservice.php
  • Класс: Bitrix\Sender\Access\Service\RoleDealCategoryService
  • Вызов: RoleDealCategoryService::getAbleDealCategories
public function getAbleDealCategories(int $userId): array
{
	$categories = [];
	if(is_null($userId))
	{
		return $categories;
	}

	$roles = implode(',', $this->rolePermissionService->getRoleListByUser($userId));
	$roles = $roles ?:'\'\'';

	$ownCategory = PermissionDictionary::SEGMENT_CLIENT_OWN_CATEGORY;
	$valueYes = PermissionDictionary::VALUE_YES;
	$query = "
		SELECT DISTINCT `bsr`.`DEAL_CATEGORY_ID` AS `CATEGORY_ID` FROM `b_sender_permission` AS `bsp`
		JOIN `b_sender_role` AS `bsr` ON `bsr`.`ID` = `bsp`.`ROLE_ID`
		WHERE 
		`bsp`.`PERMISSION_ID` = {$ownCategory} 
		AND `bsp`.`VALUE` = {$valueYes}
		AND `bsp`.`ROLE_ID` IN ({$roles})
	";

	return Main\Application::getConnection()->query($query)->fetchAll();
}