# Сеанс

Если вашему расширению необходимо получать информацию, относящуюся к текущему пользователю Plesk, используйте класс pm_Session.

# Примеры

## Ограничение доступа к расширению

Для ограничения доступа к расширению сначала получите информацию о текущем пользователе (объект pm_Client), используя метод

- getClient()

Следующий код ограничивает доступ для всех пользователей, кроме администраторов:

    if (!pm_Session::getClient()->isAdmin()) {
        throw new pm_Exception('Permission denied');
    }

## Получение идентификатора клиента во время сеанса работы от имени клиента

После входа в Панель клиента от имени своего клиента администратор или реселлер может получить идентификатор клиента, используя следующие методы:

- isImpersonated()

- getImpersonatedClientId()

Используйте следующий код:

    if (pm_Session::isImpersonated()) {
        $clientId = pm_Session::getImpersonatedClientId();
        var_dump($clientId);
    }

## Получение информации о домене

Кроме того, во время сеанса работы в Панели клиента вы можете получить информацию о текущем домене с помощью метода

- getCurrentDomain()

Используйте следующий код:

    $domain = pm_Session::getCurrentDomain();
    var_dump($domain->getName());

`$domain` в этом примере является экземпляром класса pm_Domain.

Если Plesk не удалось получить информацию о домене, будет выдано исключение pm_Exception.

## Получение текущего основного домена

Вы также можете получить информацию обо всех текущих доменах, используя метод

- getCurrentDomains()

Этот метод лучше всего использовать в случае, когда сеанс открыт в режиме Power User. По умолчанию он возвращает основные домены и их дополнительные домены и субдомены. Если для аргумента $mainDomainsOnly задано значение «true», возвращаются только основные домены. В большинстве случаев этот метод возвращает массив, содержащий единственный основной домен (по аналогии с pm_Session::getCurrentDomain()) вместе с дополнительными доменами и субдоменами.

Однако, если в режиме Power User выбрана опция «Все подписки» (прозрачный режим веб-пространств), все текущие домены пользователя будут возвращены вместе с их дополнительными доменами и субдоменами.

В режиме Service Provider этот метод возвращает домены в контексте последней подписки или все домены пользователя, если контекст последней подписки отсутствует.

Используйте следующий код:

    $currentDomains = pm_Session::getCurrentDomains();
    var_dump($domain->getName());