make given documentroot of domain relative to customerroot of no absolute path if given; fixes #892

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2020-10-14 16:58:19 +02:00
parent 0e8449f28d
commit 816874872d
2 changed files with 30 additions and 2 deletions

View File

@@ -1329,7 +1329,12 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
}
if (! preg_match('/^https?\:\/\//', $documentroot)) {
$documentroot = \Froxlor\FileDir::makeCorrectDir($documentroot);
if ($documentroot != $result['documentroot']) {
if (substr($documentroot, 0, 1) != "/") {
$documentroot = $customer['documentroot'] . '/' . $documentroot;
}
$documentroot = \Froxlor\FileDir::makeCorrectDir($documentroot);
}
}
if ($email_only == '1') {

View File

@@ -198,16 +198,39 @@ class DomainsTest extends TestCase
public function testAdminDomainsUpdate()
{
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' => 'test.local',
'email_only' => 1,
'override_tls' => 0
'override_tls' => 0,
'documentroot' => 'web'
];
$json_result = Domains::getLocal($admin_userdata, $data)->update();
$result = json_decode($json_result, true)['data'];
$this->assertEquals(1, $result['email_only']);
$this->assertFalse(in_array('TLSv1.3', explode(",", $result['ssl_protocols'])));
$this->assertEquals('test.local', $result['domain']);
$this->assertEquals($customer_userdata['documentroot'] . 'web/', $result['documentroot']);
}
/**
*
* @depends testAdminDomainsAdd
*/
public function testAdminDomainsUpdateAbsolutePath()
{
global $admin_userdata;
$data = [
'domainname' => 'test.local',
'documentroot' => '/web'
];
$json_result = Domains::getLocal($admin_userdata, $data)->update();
$result = json_decode($json_result, true)['data'];
$this->assertEquals('/web/', $result['documentroot']);
}
/**