Session
If your extension needs to retrieve information from the user that is currently logged in to Plesk, use the pm_Session class.
Examples
Restrict user access to the extension
For restricting user access to the extension, first retrieve the current user (a pm_Client object), using the method
The following code restricts access for all users except administrators:
if (!pm_Session::getClient()->isAdmin()) {
throw new pm_Exception('Permission denied');
}
Retrieve customer’s identifier when logged as a customer
If an administrator or a reseller is logged in the Customer Panel as one of their customers, you can retrieve the customer’s identifier, using the methods:
Use the following code:
if (pm_Session::isImpersonated()) {
$clientId = pm_Session::getImpersonatedClientId();
var_dump($clientId);
}
Retrieve the domain information
Additionally, if the session is opened in the Customer Panel, you can retrieve information about the domain that is currently being operated on using the method
Use the following code:
$domain = pm_Session::getCurrentDomain();
var_dump($domain->getName());
$domain
in this example is an instance of the pm_Domain
class.
If Plesk is unable to retrieve the domain, a pm_Exception
will be
thrown.
Retrieve the current main domain
You can also retrieve information about all domains that are currently being operated on using the method
This method is best used if the session is opened in Power User view. By
default, it returns the main domains and their additional domains and
subdomains. If the $mainDomainsOnly
argument is set to “true”, only
the main domains are returned. In most cases the method will return an
array containing a single main domain (analogous to
pm_Session::getCurrentDomain()
) and its additional domains and
subdomains.
However, in Power User view, when “All subscriptions” is selected (transparent webspaces mode), all current user domains would be returned together with their additional domains and subdomains.
In Service Provider view, the method will return domains based on the last subscription context, or all user domains if there is no last subscription context.
Use the following code:
$currentDomains = pm_Session::getCurrentDomains();
var_dump($domain->getName());