Сеанс

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

Примеры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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