• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/security/rolemanager.php
  • Класс: BitrixImOpenlinesSecurityRoleManager
  • Вызов: RoleManager::getUserPermissions
static function getUserPermissions($userId)
{
	//administrators should have full access despite everything
	if (BitrixImOpenlinesSecurityHelper::isAdmin($userId))
	{
		return self::getAdminPermissions();
	}

	//everybody else's permissions are defined by their role
	$result = [];
	$userAccessCodes = CAccess::GetUserCodesArray($userId);
	if(!is_array($userAccessCodes) || count($userAccessCodes) === 0)
	{
		return [];
	}

	$cursor = RolePermissionTable::getList([
		'filter' => [
			'=ROLE_ACCESS.ACCESS_CODE' => $userAccessCodes
		]
	]);
	while($row = $cursor->fetch())
	{
		if (
			!isset($result[$row['ENTITY']][$row['ACTION']])
			|| $result[$row['ENTITY']][$row['ACTION']] < $row['PERMISSION'])
		{
			$result[$row['ENTITY']][$row['ACTION']] = $row['PERMISSION'];
		}
	}

	return $result;
}