remove domain from pdns database if removed or updated so nameserver is disabled (remove) or update of db triggered when isemaildomain option is disabled, fixes #581

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2018-11-17 20:14:58 +01:00
parent e184201327
commit 13c624400e
6 changed files with 229 additions and 149 deletions

View File

@@ -20,27 +20,26 @@
/**
* Inserts a task into the PANEL_TASKS-Table
*
* @param int Type of task
* @param string Parameter 1
* @param string Parameter 2
* @param string Parameter 3
* @param
* int Type of task
* @param
* string Parameter 1
* @param
* string Parameter 2
* @param
* string Parameter 3
* @author Florian Lippert <flo@syscp.org>
* @author Froxlor team <team@froxlor.org>
*/
function inserttask($type, $param1 = '', $param2 = '', $param3 = '', $param4 = '') {
function inserttask($type, $param1 = '', $param2 = '', $param3 = '', $param4 = '')
{
// prepare the insert-statement
$ins_stmt = Database::prepare("
INSERT INTO `" . TABLE_PANEL_TASKS . "` SET `type` = :type, `data` = :data
");
if ($type == '1'
|| $type == '3'
|| $type == '4'
|| $type == '5'
|| $type == '10'
|| $type == '99'
) {
if ($type == '1' || $type == '3' || $type == '4' || $type == '5' || $type == '10' || $type == '99') {
// 4 = bind -> if bind disabled -> no task
if ($type == '4' && Settings::Get('system.bind_enable') == '0') {
return;
@@ -54,57 +53,65 @@ function inserttask($type, $param1 = '', $param2 = '', $param3 = '', $param4 = '
$del_stmt = Database::prepare("
DELETE FROM `" . TABLE_PANEL_TASKS . "` WHERE `type` = :type
");
Database::pexecute($del_stmt, array('type' => $type));
Database::pexecute($del_stmt, array(
'type' => $type
));
// insert the new task
Database::pexecute($ins_stmt, array('type' => $type, 'data' => ''));
} elseif ($type == '2'
&& $param1 != ''
&& $param2 != ''
&& $param3 != ''
&& ($param4 == 0 || $param4 == 1)
) {
Database::pexecute($ins_stmt, array(
'type' => $type,
'data' => ''
));
} elseif ($type == '2' && $param1 != '' && $param2 != '' && $param3 != '' && ($param4 == 0 || $param4 == 1)) {
$data = array();
$data['loginname'] = $param1;
$data['uid'] = $param2;
$data['gid'] = $param3;
$data['store_defaultindex'] = $param4;
$data = json_encode($data);
Database::pexecute($ins_stmt, array('type' => '2', 'data' => $data));
} elseif ($type == '6'
&& $param1 != ''
) {
Database::pexecute($ins_stmt, array(
'type' => '2',
'data' => $data
));
} elseif ($type == '6' && $param1 != '') {
$data = array();
$data['loginname'] = $param1;
$data = json_encode($data);
Database::pexecute($ins_stmt, array('type' => '6', 'data' => $data));
} elseif ($type == '7'
&& $param1 != ''
&& $param2 != ''
) {
Database::pexecute($ins_stmt, array(
'type' => '6',
'data' => $data
));
} elseif ($type == '7' && $param1 != '' && $param2 != '') {
$data = array();
$data['loginname'] = $param1;
$data['email'] = $param2;
$data = json_encode($data);
Database::pexecute($ins_stmt, array('type' => '7', 'data' => $data));
} elseif ($type == '8'
&& $param1 != ''
&& $param2 != ''
) {
Database::pexecute($ins_stmt, array(
'type' => '7',
'data' => $data
));
} elseif ($type == '8' && $param1 != '' && $param2 != '') {
$data = array();
$data['loginname'] = $param1;
$data['homedir'] = $param2;
$data = json_encode($data);
Database::pexecute($ins_stmt, array('type' => '8', 'data' => $data));
} elseif ($type == '20'
&& is_array($param1)
) {
Database::pexecute($ins_stmt, array(
'type' => '8',
'data' => $data
));
} elseif ($type == '11' && $param1 != '') {
$data = array();
$data['domain'] = $param1;
$data = json_encode($data);
Database::pexecute($ins_stmt, array(
'type' => '11',
'data' => $data
));
} elseif ($type == '20' && is_array($param1)) {
$data = json_encode($param1);
Database::pexecute($ins_stmt, array('type' => '20', 'data' => $data));
Database::pexecute($ins_stmt, array(
'type' => '20',
'data' => $data
));
}
}