diff --git a/lib/classes/api/commands/class.SubDomains.php b/lib/classes/api/commands/class.SubDomains.php index 35d8e684..e5dcbd71 100644 --- a/lib/classes/api/commands/class.SubDomains.php +++ b/lib/classes/api/commands/class.SubDomains.php @@ -388,7 +388,7 @@ class SubDomains extends ApiCommand implements ResourceEntity } else { $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` - WHERE " . ($id > 0 ? "`id` = :iddn" : "`domainname` = :iddn")); + WHERE " . ($id > 0 ? "`id` = :iddn" : "`domain` = :iddn")); $params = array( 'iddn' => ($id <= 0 ? $domainname : $id) ); @@ -398,8 +398,8 @@ class SubDomains extends ApiCommand implements ResourceEntity throw new Exception("You cannot access this resource", 405); } $result_stmt = Database::prepare(" - SELECT `id`, `customerid`, `domain`, `documentroot`, `isemaildomain`, `parentdomainid`, `aliasdomain` FROM `" . TABLE_PANEL_DOMAINS . "` - WHERE `customerid`= :customerid AND " . ($id > 0 ? "`id` = :iddn" : "`domainname` = :iddn")); + SELECT `id`, `customerid`, `domain`, `documentroot`, `isemaildomain`, `parentdomainid`, `aliasdomain`, `caneditdomain` FROM `" . TABLE_PANEL_DOMAINS . "` + WHERE `customerid`= :customerid AND " . ($id > 0 ? "`id` = :iddn" : "`domain` = :iddn")); $params = array( 'customerid' => $this->getUserDetail('customerid'), 'iddn' => ($id <= 0 ? $domainname : $id) @@ -427,7 +427,7 @@ class SubDomains extends ApiCommand implements ResourceEntity $customerid = $this->getParam('customerid', true, 0); $loginname = $this->getParam('loginname', true, ''); - if (! empty($customer_id) || ! empty($loginname)) { + if (! empty($customerid) || ! empty($loginname)) { $json_result = Customers::getLocal($this->getUserData(), array( 'id' => $customerid, 'loginname' => $loginname diff --git a/tests/Customers/CustomersTest.php b/tests/Customers/CustomersTest.php index 338c6bef..b87145d1 100644 --- a/tests/Customers/CustomersTest.php +++ b/tests/Customers/CustomersTest.php @@ -44,14 +44,6 @@ class CustomersTest extends TestCase $json_result = Customers::getLocal($admin_userdata, $data)->add(); $result = json_decode($json_result, true)['data']; - $customer_id = $result['customerid']; - - // get customer and check results - $json_result = Customers::getLocal($admin_userdata, array( - 'id' => $customer_id - ))->get(); - $result = json_decode($json_result, true)['data']; - $this->assertEquals(1, $result['customerid']); $this->assertEquals('test@froxlor.org', $result['email']); $this->assertEquals(1337, $result['customernumber']); diff --git a/tests/Domains/DomainsTest.php b/tests/Domains/DomainsTest.php index 825e0af9..8cc00c4b 100644 --- a/tests/Domains/DomainsTest.php +++ b/tests/Domains/DomainsTest.php @@ -116,7 +116,7 @@ class DomainsTest extends TestCase 'customerid' => 1 ]; $this->expectExceptionMessage('You must not specify punycode (IDNA). The domain will automatically be converted'); - $json_result = Domains::getLocal($admin_userdata, $data)->add(); + Domains::getLocal($admin_userdata, $data)->add(); } public function testAdminDomainsAddInvalidDomain() @@ -127,7 +127,7 @@ class DomainsTest extends TestCase 'customerid' => 1 ]; $this->expectExceptionMessage("Wrong Input in Field 'Domain'"); - $json_result = Domains::getLocal($admin_userdata, $data)->add(); + Domains::getLocal($admin_userdata, $data)->add(); } /** diff --git a/tests/SubDomains/SubDomainsTest.php b/tests/SubDomains/SubDomainsTest.php index 6388dc21..26e0a542 100644 --- a/tests/SubDomains/SubDomainsTest.php +++ b/tests/SubDomains/SubDomainsTest.php @@ -8,6 +8,45 @@ use PHPUnit\Framework\TestCase; */ class SubDomainsTest extends TestCase { + public function testCustomerSubDomainsAdd() + { + global $admin_userdata; + + // get customer + $json_result = Customers::getLocal($admin_userdata, array( + 'loginname' => 'test1' + ))->get(); + $customer_userdata = json_decode($json_result, true)['data']; + + $data = [ + 'subdomain' => 'mysub', + 'domain' => 'test2.local' + ]; + $json_result = SubDomains::getLocal($customer_userdata, $data)->add(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals('mysub.test2.local', $result['domain']); + } + + public function testResellerSubDomainsAdd() + { + global $admin_userdata; + // get reseller + $json_result = Admins::getLocal($admin_userdata, array( + 'loginname' => 'reseller' + ))->get(); + $reseller_userdata = json_decode($json_result, true)['data']; + $reseller_userdata['adminsession'] = 1; + + $data = [ + 'subdomain' => 'mysub2', + 'domain' => 'test2.local', + 'customer_id' => 1 + ]; + $json_result = SubDomains::getLocal($reseller_userdata, $data)->add(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals('mysub2.test2.local', $result['domain']); + } + public function testCustomerSubDomainsAddNoPunycode() { global $admin_userdata; @@ -61,4 +100,79 @@ class SubDomainsTest extends TestCase $this->expectExceptionMessage("Wrong Input in Field 'Domain'"); SubDomains::getLocal($customer_userdata, $data)->add(); } + + /** + * @depends testCustomerSubDomainsAdd + */ + public function testAdminSubDomainsGet() + { + global $admin_userdata; + + // get customer + $json_result = Customers::getLocal($admin_userdata, array( + 'loginname' => 'test1' + ))->get(); + $customer_userdata = json_decode($json_result, true)['data']; + + $data = [ + 'domainname' => 'mysub.test2.local' + ]; + $json_result = SubDomains::getLocal($admin_userdata, $data)->get(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals('mysub.test2.local', $result['domain']); + $this->assertEquals(1, $result['customerid']); + } + + public function testCustomerSubDomainsList() + { + global $admin_userdata; + + // get customer + $json_result = Customers::getLocal($admin_userdata, array( + 'loginname' => 'test1' + ))->get(); + $customer_userdata = json_decode($json_result, true)['data']; + $json_result = SubDomains::getLocal($customer_userdata)->list(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals(3, $result['count']); + } + + public function testResellerSubDomainsList() + { + global $admin_userdata; + // get reseller + $json_result = Admins::getLocal($admin_userdata, array( + 'loginname' => 'reseller' + ))->get(); + $reseller_userdata = json_decode($json_result, true)['data']; + $reseller_userdata['adminsession'] = 1; + $json_result = SubDomains::getLocal($reseller_userdata)->list(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals(3, $result['count']); + } + + public function testAdminSubDomainsListWithCustomer() + { + global $admin_userdata; + $json_result = SubDomains::getLocal($admin_userdata, ['loginname' => 'test1'])->list(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals(3, $result['count']); + } + + /** + * @depends testCustomerSubDomainsList + */ + public function testCustomerSubDomainsDelete() + { + global $admin_userdata; + // get customer + $json_result = Customers::getLocal($admin_userdata, array( + 'loginname' => 'test1' + ))->get(); + $customer_userdata = json_decode($json_result, true)['data']; + $json_result = SubDomains::getLocal($customer_userdata, ['domainname' => 'mysub.test2.local'])->delete(); + $result = json_decode($json_result, true)['data']; + $this->assertEquals('mysub.test2.local', $result['domain']); + $this->assertEquals($customer_userdata['customerid'], $result['customerid']); + } }