auth->check_module_permissions('admin');
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
$app->uses('tpl,validate_dns');
$app->tpl->newTemplate('form.tpl.htm');
$app->tpl->setInclude('content_tpl', 'templates/resync.htm');
$msg = '';
$error = '';
//* load language file
$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_resync.lng';
include $lng_file;
$app->tpl->setVar($wb);
//* Resyncing websites
if(isset($_POST['resync_sites']) && $_POST['resync_sites'] == 1) {
$db_table = 'web_domain';
$index_field = 'domain_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Website: ".$rec['domain'].'
';
}
}
}
//* Resyncing ftp
if(isset($_POST['resync_ftp']) && $_POST['resync_ftp'] == 1) {
$db_table = 'ftp_user';
$index_field = 'ftp_user_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced FTP user: ".$rec['username'].'
';
}
}
}
//* Resyncing shell
if(isset($_POST['resync_shell']) && $_POST['resync_shell'] == 1) {
$db_table = 'shell_user';
$index_field = 'shell_user_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Shell user: ".$rec['username'].'
';
}
}
}
//* Resyncing Cronjobs
if(isset($_POST['resync_cron']) && $_POST['resync_cron'] == 1) {
$db_table = 'cron';
$index_field = 'id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Cron: ".$rec['id'].'
';
}
}
}
//* Resyncing Databases
if(isset($_POST['resync_db']) && $_POST['resync_db'] == 1) {
$db_table = 'web_database_user';
$index_field = 'database_user_id';
$sql = "SELECT * FROM ".$db_table." WHERE 1";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Database user: ".$rec['database_user'].'
';
}
}
$db_table = 'web_database';
$index_field = 'database_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Database: ".$rec['database_name'].'
';
}
}
}
//* Resyncing Mailbox Domains
if(isset($_POST['resync_mailbox']) && $_POST['resync_mailbox'] == 1) {
$db_table = 'mail_domain';
$index_field = 'domain_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Mail Domain: ".$rec['domain'].'
';
}
}
}
//* Resyncing Mailboxes
if(isset($_POST['resync_mailbox']) && $_POST['resync_mailbox'] == 1) {
$db_table = 'mail_user';
$index_field = 'mailuser_id';
$sql = "SELECT * FROM ".$db_table;
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Mailbox: ".$rec['email'].'
';
}
}
$db_table = 'mail_forwarding';
$index_field = 'forwarding_id';
$sql = "SELECT * FROM ".$db_table;
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced Alias: ".$rec['source'].'
';
}
}
}
//* Resyncing DKIM-Keys
if(isset($_POST['resync_dkim']) && $_POST['resync_dkim'] == 1) {
$db_table = 'mail_domain';
$index_field = 'domain_id';
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y' AND dkim = 'y'";
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$msg .= "Resynced DKIM-Key: ".$rec['domain'].'
';
}
}
}
//* Resyncing dns zones
if(isset($_POST['resync_dns']) && $_POST['resync_dns'] == 1) {
$zones = $app->db->queryAllRecords("SELECT id,origin,serial FROM dns_soa WHERE active = 'Y'");
if(is_array($zones) && !empty($zones)) {
foreach($zones as $zone) {
$records = $app->db->queryAllRecords("SELECT id,serial FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'");
if(is_array($records)) {
foreach($records as $rec) {
$new_serial = $app->validate_dns->increase_serial($rec["serial"]);
$app->db->datalogUpdate('dns_rr', "serial = '".$new_serial."'", 'id', $rec['id']);
}
}
$new_serial = $app->validate_dns->increase_serial($zone["serial"]);
$app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']);
$msg .= "Resynced DNS zone: ".$zone['origin'].'
';
}
} else {
$error .= "No zones found to sync.
";
}
}
//* Resyncing Clients
if(isset($_POST['resync_client']) && $_POST['resync_client'] == 1) {
$tform_def_file = "form/client.tform.php";
$app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
$db_table = 'client';
$index_field = 'client_id';
$sql = "SELECT * FROM ".$db_table;
$records = $app->db->queryAllRecords($sql);
if(is_array($records)) {
foreach($records as $rec) {
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
$tmp = new tform_actions;
$tmp->id = $rec[$index_field];
$tmp->dataRecord = $rec;
$tmp->oldDataRecord = $rec;
$app->plugin->raiseEvent('client:client:on_after_update', $tmp);
$msg .= "Resynced Client: ".$rec['contact_name'].'
';
unset($tmp);
}
}
}
$app->tpl->setVar('msg', $msg);
$app->tpl->setVar('error', $error);
$app->tpl_defaults();
$app->tpl->pparse();
?>