Overview
  • Namespace
  • Class

Namespaces

  • Omines
    • DirectAdmin
      • Context
      • Objects
        • Database
        • Domains
        • Email
        • Users
      • Utility

Classes

  • Omines\DirectAdmin\Context\AdminContext
  • Omines\DirectAdmin\Context\BaseContext
  • Omines\DirectAdmin\Context\ResellerContext
  • Omines\DirectAdmin\Context\UserContext
  • Omines\DirectAdmin\DirectAdmin
  • Omines\DirectAdmin\Objects\BaseObject
  • Omines\DirectAdmin\Objects\Database
  • Omines\DirectAdmin\Objects\Database\AccessHost
  • Omines\DirectAdmin\Objects\Domain
  • Omines\DirectAdmin\Objects\DomainObject
  • Omines\DirectAdmin\Objects\Domains\Subdomain
  • Omines\DirectAdmin\Objects\Email\Forwarder
  • Omines\DirectAdmin\Objects\Email\Mailbox
  • Omines\DirectAdmin\Objects\Email\MailObject
  • Omines\DirectAdmin\Objects\Users\Admin
  • Omines\DirectAdmin\Objects\Users\Reseller
  • Omines\DirectAdmin\Objects\Users\User
  • Omines\DirectAdmin\Utility\Conversion

Exceptions

  • Omines\DirectAdmin\DirectAdminException
 1 <?php
 2 
 3 /*
 4  * DirectAdmin API Client
 5  * (c) Omines Internetbureau B.V. - https://omines.nl/
 6  *
 7  * For the full copyright and license information, please view the LICENSE
 8  * file that was distributed with this source code.
 9  */
10 
11 namespace Omines\DirectAdmin\Objects\Users;
12 
13 use Omines\DirectAdmin\Context\AdminContext;
14 use Omines\DirectAdmin\Context\ResellerContext;
15 use Omines\DirectAdmin\Context\UserContext;
16 use Omines\DirectAdmin\DirectAdminException;
17 use Omines\DirectAdmin\Objects\BaseObject;
18 
19 /**
20  * Reseller.
21  *
22  * @author Niels Keurentjes <niels.keurentjes@omines.com>
23  */
24 class Reseller extends User
25 {
26     /**
27      * {@inheritdoc}
28      */
29     public function __construct($name, UserContext $context, $config = null)
30     {
31         parent::__construct($name, $context, $config);
32     }
33 
34     /**
35      * @param string $username
36      * @return null|User
37      */
38     public function getUser($username)
39     {
40         $users = $this->getUsers();
41         return isset($users[$username]) ? $users[$username] : null;
42     }
43 
44     /**
45      * @return User[]
46      */
47     public function getUsers()
48     {
49         return BaseObject::toObjectArray($this->getContext()->invokeApiGet('SHOW_USERS', ['reseller' => $this->getUsername()]),
50                                      User::class, $this->getContext());
51     }
52 
53     /**
54      * @return ResellerContext
55      */
56     public function impersonate()
57     {
58         /** @var AdminContext $context */
59         if (!($context = $this->getContext()) instanceof AdminContext) {
60             throw new DirectAdminException('You need to be an admin to impersonate a reseller');
61         }
62         return $context->impersonateReseller($this->getUsername());
63     }
64 }
65 
API documentation generated by ApiGen