diff --git a/lib/Froxlor/Api/Commands/Ftps.php b/lib/Froxlor/Api/Commands/Ftps.php index 55632b71..68f1acad 100644 --- a/lib/Froxlor/Api/Commands/Ftps.php +++ b/lib/Froxlor/Api/Commands/Ftps.php @@ -541,6 +541,9 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit "username" => $customer_data['loginname'] ); Database::pexecute($stmt, $params, true, true); + } else { + // do not allow removing default ftp-account + \Froxlor\UI\Response::standard_error('ftp_cantdeletemainaccount', '', true); } // remove all quotatallies diff --git a/tests/Ftps/FtpsTest.php b/tests/Ftps/FtpsTest.php index 32e7f65b..75d739d5 100644 --- a/tests/Ftps/FtpsTest.php +++ b/tests/Ftps/FtpsTest.php @@ -277,4 +277,21 @@ class FtpsTest extends TestCase $result = json_decode($json_result, true)['data']; $this->assertEquals('test1ftp2', $result['username']); } + + public function testCustomerFtpsDeleteDefaultUser() + { + global $admin_userdata; + + // get customer + $json_result = Customers::getLocal($admin_userdata, array( + 'loginname' => 'test1' + ))->get(); + $customer_userdata = json_decode($json_result, true)['data']; + $data = [ + 'username' => 'test1' + ]; + $this->expectExceptionCode(400); + $this->expectExceptionMessage('You cannot delete your main FTP account'); + Ftps::getLocal($customer_userdata, $data)->delete(); + } }