diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index f6a0ff4e3d9a54d116c3457536652e7f53ffbfbf..1f186288699c2756bc4a063b786bbd317d3b0b54 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -211,8 +211,93 @@ class ApsGUIController extends ApsBase return true; } - - + public function createDatabaseForPackageInstance(&$settings, $websrv) { + global $app; + + $app->uses('tools_sites'); + + $global_config = $app->getconf->get_global_config('sites'); + + $tmp = array(); + $tmp['parent_domain_id'] = $websrv['domain_id']; + $tmp['sys_groupid'] = $websrv['sys_groupid']; + $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp); + $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp); + unset($tmp); + + // get information if the webserver is a db server, too + $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id = ".$app->functions->intval($websrv['server_id'])); + if($web_server['db_server'] == 1) { + // create database on "localhost" (webserver) + $mysql_db_server_id = $app->functions->intval($websrv['server_id']); + $settings['main_database_host'] = 'localhost'; + $mysql_db_remote_access = 'n'; + $mysql_db_remote_ips = ''; + } else { + //* get the default database server of the client + $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$app->functions->intval($websrv['sys_groupid'])); + if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) { + $mysql_db_server_id = $app->functions->intval($client['default_dbserver']); + $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id), 'server'); + $settings['main_database_host'] = $dbserver_config['ip_address']; + $mysql_db_remote_access = 'y'; + $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']), 'server'); + $mysql_db_remote_ips = $webserver_config['ip_address']; + } else { + /* I left this in place for a fallback that should NEVER! happen. + * if we reach this point it means that there is NO default db server for the client + * AND the webserver has NO db service enabled. + * We have to abort the aps installation here... so I added a return false + * although this does not present any error message to the user. + */ + return false; + + /*$mysql_db_server_id = $websrv['server_id']; + $settings['main_database_host'] = 'localhost'; + $mysql_db_remote_access = 'n'; + $mysql_db_remote_ips = '';*/ + } + } + + if (empty($settings['main_database_name'])) { + //* Find a free db name for the app + for($n = 1; $n <= 1000; $n++) { + $mysql_db_name = $app->db->quote(($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps'))); + $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'"); + if($tmp['number'] == 0) break; + } + $settings['main_database_name'] = $mysql_db_name; + } + if (empty($settings['main_database_login'])) { + //* Find a free db username for the app + for($n = 1; $n <= 1000; $n++) { + $mysql_db_user = $app->db->quote(($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps'))); + $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'"); + if($tmp['number'] == 0) break; + } + $settings['main_database_login'] = $mysql_db_user; + } + + //* Create the mysql database user if not existing + $tmp = $app->db->queryOneRecord("SELECT database_user_id FROM web_database_user WHERE database_user = '".$app->db->quote($settings['main_database_login'])."'"); + if(!$tmp) { + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`) + VALUES( ".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', 0, '".$settings['main_database_login']."', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('".$settings['main_database_password']."'))"; + $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id'); + } + else $mysql_db_user_id = $tmp['database_user_id']; + + //* Create the mysql database if not existing + $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($settings['main_database_name'])."'"); + if($tmp['number'] == 0) { + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`) + VALUES( ".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', $mysql_db_server_id, ".$app->functions->intval($websrv['domain_id']).", 'mysql', '".$settings['main_database_name']."', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$app->functions->intval($websrv['backup_copies']).", 'y', '".$app->functions->intval($websrv['backup_interval'])."')"; + $app->db->datalogInsert('web_database', $insert_data, 'database_id'); + } + + return true; + } + /** * Creates a new database record for the package instance and * an install task @@ -250,86 +335,15 @@ class ApsGUIController extends ApsBase } - //* Create the MySQL database for the application + //* Create the MySQL database for the application if necessary $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';'); $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; $sxe = $this->readInMetaFile($metafile); $db_id = parent::getXPathValue($sxe, '//db:id'); if (!empty($db_id)) { - $global_config = $app->getconf->get_global_config('sites'); - - $tmp = array(); - $tmp['parent_domain_id'] = $websrv['domain_id']; - $tmp['sys_groupid'] = $websrv['sys_groupid']; - $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp); - $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp); - unset($tmp); - - // get information if the webserver is a db server, too - $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id = ".$app->functions->intval($websrv['server_id'])); - if($web_server['db_server'] == 1) { - // create database on "localhost" (webserver) - $mysql_db_server_id = $app->functions->intval($websrv['server_id']); - $mysql_db_host = 'localhost'; - $mysql_db_remote_access = 'n'; - $mysql_db_remote_ips = ''; - } else { - //* get the default database server of the client - $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$app->functions->intval($websrv['sys_groupid'])); - if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) { - $mysql_db_server_id = $app->functions->intval($client['default_dbserver']); - $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id), 'server'); - $mysql_db_host = $dbserver_config['ip_address']; - $mysql_db_remote_access = 'y'; - $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']), 'server'); - $mysql_db_remote_ips = $webserver_config['ip_address']; - } else { - /* I left this in place for a fallback that should NEVER! happen. - * if we reach this point it means that there is NO default db server for the client - * AND the webserver has NO db service enabled. - * We have to abort the aps installation here... so I added a return false - * although this does not present any error message to the user. - */ - return false; - - /*$mysql_db_server_id = $websrv['server_id']; - $mysql_db_host = 'localhost'; - $mysql_db_remote_access = 'n'; - $mysql_db_remote_ips = '';*/ - } - } - - //* Find a free db name for the app - for($n = 1; $n <= 1000; $n++) { - $mysql_db_name = $app->db->quote(($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps'))); - $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'"); - if($tmp['number'] == 0) break; - } - //* Find a free db username for the app - for($n = 1; $n <= 1000; $n++) { - $mysql_db_user = $app->db->quote(($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps'))); - $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'"); - if($tmp['number'] == 0) break; - } - - $mysql_db_password = $settings['main_database_password']; - - //* Create the mysql database user - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`) - VALUES( ".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', 0, '$mysql_db_user', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('$mysql_db_password'))"; - $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id'); - - //* Create the mysql database - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`) - VALUES( ".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', $mysql_db_server_id, ".$app->functions->intval($websrv['domain_id']).", 'mysql', '$mysql_db_name', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$app->functions->intval($websrv['backup_copies']).", 'y', '".$app->functions->intval($websrv['backup_interval'])."')"; - $app->db->datalogInsert('web_database', $insert_data, 'database_id'); - - //* Add db details to package settings - $settings['main_database_host'] = $mysql_db_host; - $settings['main_database_name'] = $mysql_db_name; - $settings['main_database_login'] = $mysql_db_user; - + // mysql-database-name is updated inside if not set already + if (!$this->createDatabaseForPackageInstance($settings, $websrv)) return false; } //* Insert new package instance @@ -348,15 +362,13 @@ class ApsGUIController extends ApsBase $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $InstanceID); } - - /** * Sets the status of an instance to "should be removed" and creates a * datalog entry to give the ISPConfig server a real removal advice * * @param $instanceid the instance to delete */ - public function deleteInstance($instanceid) + public function deleteInstance($instanceid, $keepdatabase = false) { global $app; /* @@ -370,48 +382,20 @@ class ApsGUIController extends ApsBase $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog); */ - $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql); - if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); - - $database_user = $tmp['database_user_id']; - $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'"); - if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user); + if (!$keepdatabase) { + $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; + $tmp = $app->db->queryOneRecord($sql); + if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); + + $database_user = $tmp['database_user_id']; + $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'"); + if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user); + } $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid); } - - - /** - * Sets the status of an instance to "installation planned" and creates a - * datalog entry to re-install the package. The existing package is simply overwritten. - * - * @param $instanceid the instance to delete - */ - public function reinstallInstance($instanceid) - { - global $app; - - /* - $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";"); - - $webserver_id = $this->getInstanceDataForDatalog($instanceid); - if($webserver_id == '') return; - - // Create a sys_datalog entry for re-installation - $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id); - $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog); - */ - - $sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value = aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$app->db->quote($instanceid)." LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql); - if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); - - $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid); - } - /** * Read the settings to be filled when installing * @@ -608,6 +592,10 @@ class ApsGUIController extends ApsBase if(isset($pkg_details['Requirements Database']) && $pkg_details['Requirements Database'] != '') { + if (isset($postinput['main_database_host'])) $input['main_database_host'] = $postinput['main_database_host']; + if (isset($postinput['main_database_name'])) $input['main_database_name'] = $postinput['main_database_name']; + if (isset($postinput['main_database_login'])) $input['main_database_login'] = $postinput['main_database_login']; + if(isset($postinput['main_database_password'])) { if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw'); diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..78c066c5eb1298f06381d2b42be45bd186f9b5cb --- /dev/null +++ b/interface/lib/classes/remote.d/aps.inc.php @@ -0,0 +1,318 @@ +<?php + +/* +Copyright (c) 2007 - 2013, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--UPDATED 01.2015-- +Created by Dominik Müller <info@profi-webdesign.net> +Copyright (c) Profi Webdesign Dominik Müller + +*/ + +class remoting_aps extends remoting { + //* Functions for APS + public function sites_aps_update_package_list($session_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_update_package')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_crawler'); + $aps = new ApsCrawler($app, false); // true = Interface mode, false = Server mode + $aps->startCrawler(); + $aps->parseFolderToDB(); + $aps->fixURLs(); + + return true; + } + + public function sites_aps_available_packages_list($session_id, $params) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_available_packages_list')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_base'); + + if (isset($params['all_packages']) && ($params['all_packages'] == true)) { + $where = '(aps_packages.package_status = '.PACKAGE_ENABLED.' OR aps_packages.package_status = '.PACKAGE_LOCKED.')'; + } + else { + $where = 'aps_packages.package_status = '.PACKAGE_ENABLED; + } + + $sql = 'SELECT * FROM aps_packages WHERE '.$where.' ORDER BY aps_packages.name, aps_packages.version'; + return $app->db->queryAllRecords($sql); + } + + public function sites_aps_get_package_details($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_get_package_details')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_guicontroller'); + $gui = new ApsGUIController($app); + + // Package-ID Check + if (isset($primary_id)) + { + $newest_pkg_id = $gui->getNewestPackageID($pkg_id); + if($newest_pkg_id != 0) $primary_id = $newest_pkg_id; + } + + // Make sure an integer ID is given + if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag + $this->server->fault('package_error', 'The given Package ID is not valid.'); + return false; + } + + // Get package details + $details = $gui->getPackageDetails($primary_id); + if (isset($details['error'])) { + $this->server->fault('package_error', $details['error']); + return false; + } + + // encode all parts to ensure SOAP-XML-format + array_walk_recursive($details, function(&$item, &$key) { $item = utf8_encode($item); } ); + // Special handling for license-text because of too much problems with soap-transport + $details['License content'] = base64_encode($details['License content']); + + return $details; + } + + public function sites_aps_get_package_file($session_id, $primary_id, $filename) { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_get_package_file')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_guicontroller'); + $gui = new ApsGUIController($app); + + // Package-ID Check + if (isset($primary_id)) + { + $newest_pkg_id = $gui->getNewestPackageID($pkg_id); + if($newest_pkg_id != 0) $primary_id = $newest_pkg_id; + } + + // Make sure an integer ID is given + if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag + $this->server->fault('package_error', 'The given Package ID is not valid.'); + return false; + } + + // Get package details + $details = $gui->getPackageDetails($primary_id); + if (isset($details['error'])) { + $this->server->fault('package_error', $details['error']); + return false; + } + + // find file in details + $found = false; + if (basename($details['Icon']) == $filename) $found = true; + if (!$found && isset($details['Screenshots']) && is_array($details['Screenshots'])) + foreach ($details['Screenshots'] as $screen) { if (basename($screen['ScreenPath']) == $filename) { $found = true; break; } } + + if (!$found) { + $this->server->fault('package_error', 'File not found in package.'); + return false; + } + + return base64_encode(file_get_contents(ISPC_ROOT_PATH.'/web/sites/aps_meta_packages/'.$details['path'].'/'.$filename)); + } + + public function sites_aps_get_package_settings($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_get_package_details')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_guicontroller'); + $gui = new ApsGUIController($app); + + // Package-ID Check + if (isset($primary_id)) + { + $newest_pkg_id = $gui->getNewestPackageID($pkg_id); + if($newest_pkg_id != 0) $primary_id = $newest_pkg_id; + } + + // Make sure an integer ID is given + if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag + $this->server->fault('package_error', 'The given Package ID is not valid.'); + return false; + } + + // Get package settings + $settings = $gui->getPackageSettings($primary_id); + if (isset($settings['error'])) { + $this->server->fault('package_error', $settings['error']); + return false; + } + + // encode all parts to ensure SOAP-XML-format + array_walk_recursive($settings, function(&$item, &$key) { $item = utf8_encode($item); } ); + + return $settings; + } + + public function sites_aps_install_package($session_id, $primary_id, $params) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_install_package')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_guicontroller'); + $gui = new ApsGUIController($app); + + // Package-ID Check + if (isset($primary_id)) + { + $newest_pkg_id = $gui->getNewestPackageID($primary_id); + if($newest_pkg_id != 0) $primary_id = $newest_pkg_id; + } + + // Make sure an integer ID is given + if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag + $this->server->fault('package_error', 'The given Package ID is not valid.'); + return false; + } + + // Get package details + $details = $gui->getPackageDetails($primary_id); + if (isset($details['error'])) { + $this->server->fault('package_error', $details['error']); + return false; + } + $settings = $gui->getPackageSettings($primary_id); + if (isset($settings['error'])) { + $this->server->fault('package_error', $settings['error']); + return false; + } + + // Check given Site/VHostDomain + if (!isset($params['main_domain'])) { + $this->server->fault('invalid parameters', 'No valid domain given.'); + return false; + } + + $sql = "SELECT * FROM web_domain WHERE domain = '".$app->db->quote($params['main_domain'])."'"; + $domain = $app->db->queryOneRecord($sql); + + if (!$domain) { + $this->server->fault('invalid parameters', 'No valid domain given.'); + return false; + } + + $domains = array($domain['domain']); // Simulate correct Domain-List + $result = $gui->validateInstallerInput($params, $details, $domains, $settings); + if(empty($result['error'])) + { + return $gui->createPackageInstance($result['input'], $primary_id); + } + + $this->server->fault('invalid parameters', implode('<br />', $result['error'])); + return false; + } + + public function sites_aps_instance_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_instance_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $sql = "SELECT * FROM aps_instances WHERE id = ".$app->functions->intval($primary_id); + $result = $app->db->queryOneRecord($sql); + return $result; + } + + public function sites_aps_instance_settings_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_instance_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $sql = "SELECT * FROM aps_instances_settings WHERE instance_id = ".$app->functions->intval($primary_id); + $result = $app->db->queryAllRecords($sql); + return $result; + } + + public function sites_aps_instance_delete($session_id, $primary_id, $params = array()) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_aps_instance_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $app->load('aps_guicontroller'); + $gui = new ApsGUIController($app); + + // Check if Instance exists + $sql = "SELECT * FROM aps_instances WHERE id = ".$app->functions->intval($primary_id); + $result = $app->db->queryOneRecord($sql); + + if (!$result) { + $this->server->fault('instance_error', 'No valid instance id given.'); + return false; + } + + $gui->deleteInstance($primary_id, (isset($params['keep_database']) && ($params['keep_database'] === true))); + + return true; + } +} + +?> diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php index d063fbbecfc5c4ed3dd41f8d311205a551a60c29..b65c05bf2cd0546bcf853685a1e02b1278703c4d 100644 --- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php +++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php @@ -212,8 +212,6 @@ class sites_web_vhost_domain_plugin { if(is_array($records) && !empty($records)){ foreach($records as $rec){ $app->db->datalogUpdate('aps_instances_settings', "value = '".$app->db->quote($page_form->dataRecord["domain"])."'", 'id', $rec['id']); - // Reinstall of package needed? - //$app->db->datalogUpdate('aps_instances', "instance_status = '1'", 'id', $rec['instance_id']); } } unset($records); diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 190c8c4df2c7a02aa847196f5c608b476b08b825..6f1c889bb5a510d2a25b6f4b567c6a70e0137ecd 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -320,8 +320,8 @@ $form["tabs"]['mail'] = array( 'dkim_strength' => array( 'datatype' => 'INTEGER', 'formtype' => 'SELECT', - 'default' => '1024', - 'value' => array('1024' => 'normal (1024)', '2048' => 'strong (2048)', '4096' => 'very strong (4096)') + 'default' => '2048', + 'value' => array('1024' => 'week (1024)', '2048' => 'normal (2048)', '4096' => 'strong (4096)') ), 'relayhost_password' => array( 'datatype' => 'VARCHAR', diff --git a/interface/web/dns/dns_dkim_edit.php b/interface/web/dns/dns_dkim_edit.php index 71741d00f2a5aec1b28117bafe0d63f404cebb0a..41a23852c923430b17b1ed8482511e70f13b131c 100644 --- a/interface/web/dns/dns_dkim_edit.php +++ b/interface/web/dns/dns_dkim_edit.php @@ -70,12 +70,20 @@ class page_action extends tform_actions { } parent::onShowNew(); + + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ?'", $_GET['zone'], $app->tform->getAuthSQL('r')); + $sql=$app->db->queryOneRecord("SELECT dkim_public, dkim_selector FROM mail_domain WHERE domain = ? AND dkim = 'y' AND ?", substr_replace($soa['origin'],'',-1), $app->tform->getAuthSQL('r')); + $public_key=str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$sql['dkim_public']); + $app->tpl->setVar('public_key', $public_key); + $app->tpl->setVar('selector', $sql['dkim_selector']); + $app->tpl->setVar('name', $soa['origin']); + } function onSubmit() { global $app, $conf; // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ".$app->tform->getAuthSQL('r'), $app->functions->intval($_POST["zone"])); + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ?", $_POST["zone"], $app->tform->getAuthSQL('r')); // Check if Domain belongs to user if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; @@ -101,16 +109,15 @@ class page_action extends tform_actions { $this->dataRecord['data']='v=DKIM1; t=s; p='.$this->dataRecord['data']; $this->dataRecord['name']=$this->dataRecord['selector'].'._domainkey.'.$this->dataRecord['name']; } - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - // check for duplicate entry - $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data = ? AND name = ?", $this->dataRecord['zone'], $this->dataRecord['type'], $this->dataRecord['data'], $this->dataRecord['name']); - if ($check!='') $app->tform->errorMessage .= $app->tform->wordbook["record_exists_txt"]; - if (empty($this->dataRecord['data'])) $app->tform->errorMessage .= $app->tform->wordbook["dkim_disabled_txt"]; - + // Update the serial number and timestamp of the RR record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id); + $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); + $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); + + // check for duplicate entry + $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data = ? AND name = ?", $this->dataRecord["zone"], $this->dataRecord["type"], $this->dataRecord["data"], $this->dataRecord['name']); + if ($check!='') $app->tform->errorMessage .= $app->tform->wordbook["record_exists_txt"]; + if (empty($this->dataRecord['data'])) $app->tform->errorMessage .= $app->tform->wordbook["dkim_disabled_txt"]; parent::onSubmit(); } @@ -118,7 +125,7 @@ class page_action extends tform_actions { global $app, $conf; //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND ".$app->tform->getAuthSQL('r'), $app->functions->intval($this->dataRecord['zone'])); + $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND ?", $this->dataRecord["zone"], $app->tform->getAuthSQL('r')); $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); //* Update the serial number of the SOA record @@ -131,7 +138,7 @@ class page_action extends tform_actions { global $app, $conf; //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND ".$app->tform->getAuthSQL('r'), $app->functions->intval($this->dataRecord["zone"])); + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND ?", $this->dataRecord["zone"], $app->tform->getAuthSQL('r')); $soa_id = $app->functions->intval($_POST["zone"]); $serial = $app->validate_dns->increase_serial($soa["serial"]); $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); diff --git a/interface/web/dns/dns_dkim_get.php b/interface/web/dns/dns_dkim_get.php deleted file mode 100644 index 9c33ce217babfc4ab007320494ae10ffb1f57a6e..0000000000000000000000000000000000000000 --- a/interface/web/dns/dns_dkim_get.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php -/** -Copyright (c) 2007 - 2013, Till Brehm, projektfarm Gmbh -Copyright (c) 2013, Florian Schaal, info@schaal-24.de -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** -* This script is invoked by interface/web/dns/templates/dns_dkim_edit.htm -* when generating the DKIM Private-key. -* -* return DKIM Public-Key for the DNS-record -*/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -global $app, $conf; - -// Loading classes -$app->uses('tform,tform_actions'); - -header('Content-Type: text/xml; charset=utf-8'); -header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); - -/** -* This function fix PHP's messing up POST input containing characters space, dot, -* open square bracket and others to be compatible with with the deprecated register_globals -* @return array POST -*/ - -function getRealPOST() { - $pairs = explode("&", file_get_contents("php://input")); - $vars = array(); - foreach ($pairs as $pair) { - $nv = explode("=", $pair, 2); - $name = urldecode($nv[0]); - $value = $nv[1]; - $vars[$name] = $value; - } - return $vars; -} - -$_POST=getRealPost(); - -if (ctype_digit($_POST['zone'])) { - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? and ?'", $app->db->quote($_POST['zone']), $app->tform->getAuthSQL('r')); - - $sql=$app->db->queryOneRecord("SELECT dkim_public, dkim_selector FROM mail_domain WHERE domain = ? AND dkim = 'Y' AND ?", substr_replace($soa['origin'],'',-1), $app->tform->getAuthSQL('r')); - $public_key=str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$sql['dkim_public']); - - echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; - echo "<formatname>\n"; - echo "<data>".$public_key."</data>\n"; - echo "<name>".$soa['origin']."</name>\n"; - echo "<selector>".$sql['dkim_selector']."</selector>\n"; - echo "</formatname>\n"; -} -?> diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..c3c219d381c5577f54afc25a3b67d9cc5dbd1fef --- /dev/null +++ b/interface/web/dns/dns_dmarc_edit.php @@ -0,0 +1,377 @@ +<?php +/* +Copyright (c) 2014, Florian Schaal, info@schaal-24.de +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_dmarc.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,validate_dns'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + function onShowNew() { + global $app, $conf; + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + + // Get the limits of the client + $client_group_id = intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + + // Check if the user may add another mailbox. + if($client["limit_dns_record"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp["number"] >= $client["limit_dns_record"]) { + $app->error($app->tform->wordbook["limit_dns_record_txt"]); + } + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + $zone = $app->functions->intval($_GET['zone']); + // get domain-name + $sql = "SELECT * FROM dns_soa WHERE id = ? AND ?"; + $rec = $app->db->queryOneRecord($sql, $zone, $app->tform->getAuthSQL('r')); + $domain_name = rtrim($rec['origin'], '.'); + + // set defaults + $dmarc_policy = 'none'; + $dmarc_adkim = 'r'; + $dmarc_aspf = 'r'; + $dmarc_rf = 'afrf'; + $dmarc_pct = 100; + $dmarc_ri = 86400; + $dmarc_sp = 'same'; + + //* check for an existing dmarc-record + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name = ? AND ?"; + $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc.'.$domain_name.'.', $app->tform->getAuthSQL('r')); + if ( isset($rec) && !empty($rec) ) { + $this->id = 1; + $old_data = strtolower($rec['data']); + $app->tpl->setVar("data", $old_data); + if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); + $dmarc_rua = ''; + $dmarc_ruf = ''; + $dmac_rf = ''; + $dmac_rua = ''; + $dmac_ruf = ''; + // browse through data + $temp = explode('; ', $old_data); + foreach ($temp as $part) { + if (preg_match("/^p=/", $part)) $dmarc_policy = str_replace('p=', '', $part); + if (preg_match("/^rua=/", $part)) { + $dmarc_rua = str_replace(array('rua=','mailto:'), '', $part).' '; + $dmarc_rua = str_replace(',', ' ', $dmarc_rua); + } + if (preg_match("/^ruf=/", $part)) { + $dmarc_ruf = str_replace(array('ruf=','mailto:'), '', $part).' '; + $dmarc_ruf = str_replace(',', ' ', $dmarc_ruf); + } + if (preg_match("/^fo=/", $part)) $dmarc_fo = str_replace('fo=', '', $part); + if (preg_match("/^adkim=/", $part)) $dmarc_adkim = str_replace('adkim=', '', $part); + if (preg_match("/^aspf=/", $part)) $dmarc_aspf = str_replace('aspf=', '', $part); + if (preg_match("/^rf=/", $part)) $dmarc_rf = str_replace('rf=', '', $part); + if (preg_match("/^(afrf:iodef|iodef:afrf)$/s", $dmarc_rf)) $dmarc_rf = str_replace(':', ' ', $dmarc_rf); + if (preg_match("/^pct=/", $part)) $dmarc_pct = str_replace('pct=', '', $part); + if (preg_match("/^ri=/", $part)) $dmarc_ri = str_replace('ri=', '', $part); + } + } + + //set html-values + $app->tpl->setVar('domain', $domain_name); + + //create dmarc-policy-list + $dmarc_policy_value = array( + 'none' => 'dmarc_policy_none_txt', + 'quarantine' => 'dmarc_policy_quarantine_txt', + 'reject' => 'dmarc_policy_reject_txt', + ); + $dmarc_policy_list=''; + foreach($dmarc_policy_value as $value => $txt) { + $selected = @($dmarc_policy == $value)?' selected':''; + $dmarc_policy_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n"; + } + $app->tpl->setVar('dmarc_policy', $dmarc_policy_list); + + if (!empty($dmarc_rua)) $app->tpl->setVar("dmarc_rua", $dmarc_rua); + + if (!empty($dmarc_ruf)) $app->tpl->setVar("dmarc_ruf", $dmarc_ruf); + + //set dmarc-fo-options + if (isset($dmarc_fo)) { + $temp = explode(':', $dmarc_fo); + foreach ($temp as $fo => $value) $app->tpl->setVar("dmarc_fo".$value, 'CHECKED'); + } else + $app->tpl->setVar("dmarc_fo0", 'CHECKED'); + + unset($temp); + + //create dmarc-adkim-list + $dmarc_adkim_value = array( + 'r' => 'dmarc_adkim_r_txt', + 's' => 'dmarc_adkim_s_txt', + ); + $dmarc_adkim_list=''; + foreach($dmarc_adkim_value as $value => $txt) { + $selected = @($dmarc_adkim == $value)?' selected':''; + $dmarc_adkim_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n"; + } + $app->tpl->setVar('dmarc_adkim', $dmarc_adkim_list); + + //create dmarc-aspf-list + $dmarc_aspf_value = array( + 'r' => 'dmarc_aspf_r_txt', + 's' => 'dmarc_aspf_s_txt', + ); + $dmarc_aspf_list=''; + foreach($dmarc_aspf_value as $value => $txt) { + $selected = @($dmarc_aspf == $value)?' selected':''; + $dmarc_aspf_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n"; + } + $app->tpl->setVar('dmarc_aspf', $dmarc_aspf_list); + + if ( strpos($dmarc_rf, 'afrf') !== false ) $app->tpl->setVar("dmarc_rf_afrf", 'CHECKED'); + if ( strpos($dmarc_rf, 'iodef') !== false ) $app->tpl->setVar("dmarc_rf_iodef", 'CHECKED'); + + $app->tpl->setVar("dmarc_pct", $dmarc_pct); + + $app->tpl->setVar("dmarc_ri", $dmarc_ri); + + //create dmarc-sp-list + $dmarc_sp_value = array( + 'same' => 'dmarc_sp_same_txt', + 'none' => 'dmarc_sp_none_txt', + 'quarantine' => 'dmarc_sp_quarantine_txt', + 'reject' => 'dmarc_sp_reject_txt', + ); + $dmarc_sp_list=''; + foreach($dmarc_sp_value as $value => $txt) { + $selected = @($dmarc_sp == $value)?' selected':''; + $dmarc_sp_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n"; + } + $app->tpl->setVar('dmarc_sp', $dmarc_sp_list); + + parent::onShowEnd(); + + } + + function onSubmit() { + global $app, $conf; + + // Get the parent soa record of the domain + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ?", $_POST['zone'], $app->tform->getAuthSQL('r')); + + // Check if Domain belongs to user + if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; + + // Check the client limits, if user is not the admin + if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin + // Get the limits of the client + $client_group_id = intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + + // Check if the user may add another mailbox. + if($this->id == 0 && $client["limit_dns_record"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp["number"] >= $client["limit_dns_record"]) { + $app->error($app->tform->wordbook["limit_dns_record_txt"]); + } + } + } // end if user is not admin + + $domain_name = rtrim($soa['origin'], '.'); + // DMARC requieres at least one active dkim-record... + $sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND active='Y'"; + $temp = $app->db->queryAllRecords($sql, '%._domainkey.$domain_name'.'.'); + if (!is_array($temp)) { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_dkim_txt'].$email; + } + + // ... and an active spf-record (this breaks the current draft but DMARC is useless if you use DKIM or SPF + $sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND (data LIKE 'v=spf1;%' AND active = 'y')"; + $temp = $app->db->queryAllRecords($sql, $domain_name.'.'); + // abort if more than 1 active spf-records (backward-compatibility) + if (is_array($temp[1])) { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook['dmarc_more_spf_txt']; + } + if (empty($temp)) { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_spf_txt']; + } + unset($temp); + + //validate dmarc_pct + $this->dataRecord['dmarc_pct'] = $app->functions->intval($this->dataRecord['dmarc_pct']); + if ($this->dataRecord['dmarc_pct'] < 0) $this->dataRecord['dmarc_pct'] = 0; + if ($this->dataRecord['dmarc_pct'] > 100) $this->dataRecord['dmarc_pct'] = 100; + + //create dmarc-record + $dmarc_record[] = 'p='.$this->dataRecord['dmarc_policy']; + + if (!empty($this->dataRecord['dmarc_rua'])) { + $dmarc_rua = explode(' ', $this->dataRecord['dmarc_rua']); + $dmarc_rua = array_filter($dmarc_rua); + foreach ($dmarc_rua as $rec) { + if (!filter_var($rec, FILTER_VALIDATE_EMAIL)) { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].': '.$dmarc_rua; + } else { + $temp .= 'mailto:'.$rec.','; + } + } + $dmarc_record[] = 'rua='.rtrim($temp, ','); + unset ($dmarc_rua); + unset($temp); + } + + if (!empty($this->dataRecord['dmarc_ruf'])) { + $dmarc_ruf = explode(' ', $this->dataRecord['dmarc_ruf']); + $dmarc_ruf = array_filter($dmarc_ruf); + foreach ($dmarc_ruf as $rec) { + if (!filter_var($rec, FILTER_VALIDATE_EMAIL)) { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].': '.$dmarc_rua; + } else { + $temp .= 'mailto:'.$rec.','; + } + } + $dmarc_record[] = 'ruf='.rtrim($temp, ','); + unset ($dmarc_ruf); + unset($temp); + } + + $fo_rec = ''; + if (isset($this->dataRecord['dmarc_fo0'])) $fo_rec[] = '0'; + if (isset($this->dataRecord['dmarc_fo1'])) $fo_rec[] = '1'; + if (isset($this->dataRecord['dmarc_fod'])) $fo_rec[] = 'd'; + if (isset($this->dataRecord['dmarc_fos'])) $fo_rec[] = 's'; + if (is_array($fo_rec) && !empty($fo_rec)) { + $rec = 'fo='.implode(':', $fo_rec); + if ($rec != 'fo=0') $dmarc_record[] = 'fo='.implode(':', $fo_rec); + unset($rec); + } + + if ($this->dataRecord['dmarc_adkim'] != 'r' ) + $dmarc_record[] = 'adkim='.$this->dataRecord['dmarc_adkim']; + + if ($this->dataRecord['dmarc_aspf'] != 'r' ) + $dmarc_record[] = 'aspf='.$this->dataRecord['dmarc_aspf']; + + if (isset($this->dataRecord['dmarc_rf_afrf']) && isset($this->dataRecord['dmarc_rf_iodef'])) + $dmarc_record[] = 'rf=afrf:iodef'; + else { + if (isset($this->dataRecord['dmarc_rf_iodef'])) + $dmarc_record[] = 'rf=iodef'; + } + unset($fo_rec); + + if (!empty($this->dataRecord['dmarc_pct']) && $this->dataRecord['dmarc_pct'] != 100) + $dmarc_record[] = 'pct='.$this->dataRecord['dmarc_pct']; + + if (!empty($this->dataRecord['dmarc_ri']) && $this->dataRecord['dmarc_ri'] != '86400') + $dmarc_record[] = 'ri='.$this->dataRecord['dmarc_ri']; + + if (!empty($this->dataRecord['dmarc_sp']) && $this->dataRecord['dmarc_sp'] != 'same') + $dmarc_record[] = 'sp='.$this->dataRecord['dmarc_sp']; + + $temp = implode('; ', $dmarc_record); + if (!empty($temp)) + $this->dataRecord['data'] = 'v=DMARC1; ' . $temp; + else $app->tform->errorMessage .= $app->tform->wordbook["dmarc_empty_txt"]; + + $this->dataRecord['name'] = '_dmarc.' . $soa['origin']; + if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y'; + + // Set the server ID of the rr record to the same server ID as the parent record. + $this->dataRecord["server_id"] = $soa["server_id"]; + + // Update the serial number and timestamp of the RR record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id); + $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); + $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); + + // always update an existing entry + $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data LIKE 'v=DMARC1%' AND name = ?", $this->dataRecord['zone'], $this->dataRecord['type'], $this->dataRecord['name']); + $this->id = $check['id']; + if (!isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'N'; + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record + $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r')); + $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); + + //* Update the serial number of the SOA record + $soa_id = $app->functions->intval($_POST["zone"]); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + + } + + function onAfterUpdate() { + global $app, $conf; + + //* Update the serial number of the SOA record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r')); + $soa_id = $app->functions->intval($_POST["zone"]); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/dns_spf_edit.php b/interface/web/dns/dns_spf_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..e95227ab393223e916137855653624548565a1df --- /dev/null +++ b/interface/web/dns/dns_spf_edit.php @@ -0,0 +1,269 @@ +<?php + +/* +Copyright (c) 2014, Florian Schaal, info@schaal-24.de +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_spf.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,validate_dns'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onShowNew() { + global $app, $conf; + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + + // Get the limits of the client + $client_group_id = intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = =", $client_group_id); + + // Check if the user may add another mailbox. + if($client["limit_dns_record"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp["number"] >= $client["limit_dns_record"]) { + $app->error($app->tform->wordbook["limit_dns_record_txt"]); + } + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + $zone = $app->functions->intval($_GET['zone']); + + //* check for an existing spf-record + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=spf1%' AND zone = ? AND ?"; + $rec = $app->db->queryOneRecord($sql, $zone, $app->tform->getAuthSQL('r')); + if ( isset($rec) && !empty($rec) ) { + $this->id = 1; + $old_data = strtolower($rec['data']); + + $app->tpl->setVar("data", $old_data); + if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED"); + + $spf_hostname = ''; + $spf_ip = ''; + $spf_domain = ''; + $spf_mechanism = ''; + + // browse through data + $temp = explode(' ', $old_data); + foreach ($temp as $part) { + if ($part == 'a') $app->tpl->setVar("spf_a_active", "CHECKED"); + if ($part == 'mx') $app->tpl->setVar("spf_mx_active", "CHECKED"); + if (preg_match("/^ip(4|6):/", $part)) $spf_ip .= str_replace(array('ip4:','ip6:'), '', $part) . ' '; + if (preg_match("/^a:/", $part)) $spf_hostname .= str_replace('a:', '', $part) . ' '; + if (preg_match("/^\\??include/", $part)) $spf_domain .= str_replace(array('include:', '?'), '', $part) . ' '; + } + unset($temp); + $spf_ip = rtrim($spf_ip); + $spf_hostname = rtrim($spf_hostname); + $spf_domain = rtrim($spf_domain); + $spf_mechanism = substr($rec['data'], -4, 1); + } + + //set html-values + $app->tpl->setVar("spf_ip", $spf_ip); + $app->tpl->setVar("spf_hostname", $spf_hostname); + $app->tpl->setVar("spf_domain", $spf_domain); + //create spf-mechanism-list + $spf_mechanism_value = array( + '+' => 'spf_mechanism_pass_txt', + '-' => 'spf_mechanism_fail_txt', + '~' => 'spf_mechanism_softfail_txt', + '?' => 'spf_mechanism_neutral_txt' + ); + $spf_mechanism_list=''; + foreach($spf_mechanism_value as $value => $txt) { + $selected = @($spf_mechanism == $value)?' selected':''; + $spf_mechanism_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n"; + } + $app->tpl->setVar('spf_mechanism', $spf_mechanism_list); + + parent::onShowEnd(); + + } + + function onSubmit() { + global $app, $conf; + + + // Get the parent soa record of the domain + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($_POST["zone"]), $app->tform->getAuthSQL('r')); + + // Check if Domain belongs to user + if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; + + // Check the client limits, if user is not the admin + if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin + // Get the limits of the client + $client_group_id = intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + + // Check if the user may add another mailbox. + if($this->id == 0 && $client["limit_dns_record"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp["number"] >= $client["limit_dns_record"]) { + $app->error($app->tform->wordbook["limit_dns_record_txt"]); + } + } + } // end if user is not admin + + //create spf-record + if (!empty($this->dataRecord['spf_mx'])) { + $spf_record[] = 'mx'; + } + if (!empty($this->dataRecord['spf_a'])) { + $spf_record[] = 'a'; + } + $spf_ip = trim($this->dataRecord['spf_ip']); + if (!empty($spf_ip)) { + $rec = split(' ', $spf_ip); + foreach ($rec as $ip) { + $temp_ip = explode('/', $ip); + if (filter_var($temp_ip[0], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + $temp = 'ip4:' . $temp_ip[0]; + if (isset($temp_ip[1])) $temp .= '/' . $temp_ip[1]; + $spf_record[] = $temp; + unset($temp); + } + elseif (filter_var($temp_ip[0], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + $temp = 'ip6:' . $temp_ip[0]; + if (isset($temp_ip[1])) $temp .= '/' . $temp_ip[1]; + $spf_record[] = $temp; + unset($temp); + } + else { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook["spf_invalid_ip_txt"]. $temp_ip[0]; + if (isset( $temp_ip[1])) $app->tform->errorMessage .= "/".$temp_ip[1]; + } + } + } + $spf_hostname = trim($this->dataRecord['spf_hostname']); + if (!empty($spf_hostname)) { + $rec = split(' ', $spf_hostname); + foreach ($rec as $hostname) { + if (preg_match('/^[a-zA-Z0-9\\.\\-\\*]{0,64}$/', $hostname)) + $spf_record[] = 'a:' . $hostname; + else { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage .= '<br/>' . $app->tform->wordbook["spf_invalid_hostname_txt"]. $hostname; + $app->tform->errorMessage .= $app->tform->wordbook["spf_invalid_hostname_txt"]. $hostname; + } + } + unset($rec); + } + $spf_domain = trim($this->dataRecord['spf_domain']); + if (!empty($spf_domain)) { + $rec = split(' ', $spf_domain); + foreach ($rec as $domain) { + if (preg_match('/_^[a-zA-Z0-9\\.\\-\\*]{0,64}$/', $domain)) + $spf_record[] = 'include:' . $domain; + else { + if (isset($app->tform->errorMessage )) $app->tform->errorMessage .= '<br/>' . $app->tform->wordbook["spf_invalid_domain_txt"]. $domain; + $app->tform->errorMessage .= $app->tform->wordbook["spf_invalid_domain_txt"]. $domain; + } + } + } + + $temp = implode(' ', $spf_record);unset($spf_record); + if (!empty($temp)) + $this->dataRecord['data'] = 'v=spf1 ' . $temp . ' ' . $this->dataRecord['spf_mechanism'] . 'all'; + else $this->dataRecord['data'] = 'v=spf1 ' . $this->dataRecord['spf_mechanism'] . 'all'; + unset($temp); + + $this->dataRecord['name'] = $soa['origin']; + if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y'; + + // Set the server ID of the rr record to the same server ID as the parent record. + $this->dataRecord["server_id"] = $soa["server_id"]; + + // Update the serial number and timestamp of the RR record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id); + $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); + $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); + + // always update an existing entry + $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data LIKE 'v=spf1%' AND name = ?", $this->dataRecord["zone"], $this->dataRecord["type"], $this->dataRecord['name'].'.'); + $this->id = $check['id']; + + if (!isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'N'; + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record + $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r')); + $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); + + //* Update the serial number of the SOA record + $soa_id = $app->functions->intval($_POST["zone"]); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + + } + + function onAfterUpdate() { + global $app, $conf; + + //* Update the serial number of the SOA record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r')); + $soa_id = $app->functions->intval($_POST["zone"]); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/form/dns_dmarc.tform.php b/interface/web/dns/form/dns_dmarc.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..a1ecaa40c80ccffe2050d6a45a20fd46e3b0e446 --- /dev/null +++ b/interface/web/dns/form/dns_dmarc.tform.php @@ -0,0 +1,164 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ +global $app; + +$form["title"] = "DNS DMARC Record"; +$form["description"] = ""; +$form["name"] = "dns_dmarc"; +$form["action"] = "dns_dmarc_edit.php"; +$form["db_table"] = "dns_rr"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns"; +$form["list_default"] = "dns_a_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns'] = array ( + 'title' => "DNS DMARC", + 'width' => 100, + 'template' => "templates/dns_dmarc_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST["zone"]), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'TXT', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + /* + 'aux' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + */ + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '3600', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + //################################# + // End Datatable fields + //################################# + ) +); + + + +?> diff --git a/interface/web/dns/form/dns_spf.tform.php b/interface/web/dns/form/dns_spf.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..00ccb7628c70d3722a03d46a93b0db3da1fdbe58 --- /dev/null +++ b/interface/web/dns/form/dns_spf.tform.php @@ -0,0 +1,164 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ +global $app; + +$form["title"] = "DNS SPF Record"; +$form["description"] = ""; +$form["name"] = "dns_spf"; +$form["action"] = "dns_spf_edit.php"; +$form["db_table"] = "dns_rr"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns"; +$form["list_default"] = "dns_a_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns'] = array ( + 'title' => "DNS SPF", + 'width' => 100, + 'template' => "templates/dns_spf_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST["zone"]), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'TXT', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + /* + 'aux' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + */ + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '86400', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + //################################# + // End Datatable fields + //################################# + ) +); + + + +?> diff --git a/interface/web/dns/form/dns_txt.tform.php b/interface/web/dns/form/dns_txt.tform.php index a4b7d4073eaa0a8cb9ba15117c49f4ae4b2e46ae..96abd1b4ecf0c2804c65346897d914e099b971f4 100644 --- a/interface/web/dns/form/dns_txt.tform.php +++ b/interface/web/dns/form/dns_txt.tform.php @@ -105,24 +105,31 @@ $form["tabs"]['dns'] = array ( 'data' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), + 'validators' => array ( + 0 => array ( + 'type' => 'NOTEMPTY', + 'errmsg'=> 'data_error_empty' + ), + 1 => array ( + 'type' => 'REGEX', + 'regex' => "/^((?!v=DKIM).)*$/s", + 'errmsg'=> 'invalid_type_dkim' + ), + 2 => array ( + 'type' => 'REGEX', + 'regex' => "/^((?!v=DMARC1; ).)*$/s", + 'errmsg'=> 'invalid_type_dmarc'), + 3 => array ( + 'type' => 'REGEX', + 'regex' => "/^((?!v=spf).)*$/s", + 'errmsg'=> 'invalid_type_spf' + ), ), 'default' => '', 'value' => '', 'width' => '30', 'maxlength' => '255' ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ 'ttl' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', diff --git a/interface/web/dns/lib/lang/ar_dns_dmarc.lng b/interface/web/dns/lib/lang/ar_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_spf.lng b/interface/web/dns/lib/lang/ar_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_txt.lng b/interface/web/dns/lib/lang/ar_dns_txt.lng index 31da6ebf1adb104cdd166af46b1ac9e4806aedf6..658b0ddf83e841c2de5f0e2a9beefdcd10d3b9af 100644 --- a/interface/web/dns/lib/lang/ar_dns_txt.lng +++ b/interface/web/dns/lib/lang/ar_dns_txt.lng @@ -1,16 +1,19 @@ <?php -$wb['server_id_txt'] = 'Server'; -$wb['zone_txt'] = 'Zone'; -$wb['name_txt'] = 'Hostname'; -$wb['type_txt'] = 'type'; -$wb['data_txt'] = 'Text'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['name_error_empty'] = 'The hostname is empty.'; -$wb['name_error_regex'] = 'The hostname has the wrong format.'; -$wb['data_error_empty'] = 'Text empty'; -$wb['data_error_regex'] = 'Text format invalid'; +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["type_txt"] = 'type'; +$wb["data_txt"] = 'Text'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'Text empty'; +$wb["data_error_regex"] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_dmarc.lng b/interface/web/dns/lib/lang/bg_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_spf.lng b/interface/web/dns/lib/lang/bg_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_txt.lng b/interface/web/dns/lib/lang/bg_dns_txt.lng index 020429636c170f20ee4ab2067998321b828f224a..9d3dd134c629d44d9c7fca4d4e49bb877345c59b 100644 --- a/interface/web/dns/lib/lang/bg_dns_txt.lng +++ b/interface/web/dns/lib/lang/bg_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Text empty'; $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_spf.lng b/interface/web/dns/lib/lang/br_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_txt.lng b/interface/web/dns/lib/lang/br_dns_txt.lng index 31f0a6df9c0040e271dd1654a14b6bcce38f2c06..64003f1461969e6a094dc1bd3a9dbd06332d960e 100644 --- a/interface/web/dns/lib/lang/br_dns_txt.lng +++ b/interface/web/dns/lib/lang/br_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Hostname tem um formato inválido.'; $wb['data_error_empty'] = 'Endereço IP em branco'; $wb['data_error_regex'] = 'Endereço IP formato inválido'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_txt.lng b/interface/web/dns/lib/lang/cz_dns_txt.lng index faf31816dadf3938a5bf25a7f8953b5f566ff02d..bfaa34e3a73f465933a05f0be6a66cb9dc288799 100644 --- a/interface/web/dns/lib/lang/cz_dns_txt.lng +++ b/interface/web/dns/lib/lang/cz_dns_txt.lng @@ -13,5 +13,7 @@ $wb['name_error_regex'] = 'Hostname má chybný formát.'; $wb['data_error_empty'] = 'Text je prázdný'; $wb['data_error_regex'] = 'Text má chybný formát'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> - diff --git a/interface/web/dns/lib/lang/de_dns_dmarc.lng b/interface/web/dns/lib/lang/de_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_spf.lng b/interface/web/dns/lib/lang/de_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..9ab52dc6590ab7faa1169c45b277755b4fba3227 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanismus'; +$wb['spf_mechanism_pass_txt'] = 'Pass - Mails von anderen Sendern zulassen'; +$wb['spf_mechanism_fail_txt'] = 'Fail - Mails von anderen Sendern abweisen'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - Mails von anderen Sendern zulassen aber markieren'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - nichts unternehmen'; +$wb['spf_mx_txt'] = 'Von allen MX-Servern dürfen Mails für diese Domain verschicken'; +$wb['spf_a_txt'] = 'Von allen eingetragenen IP-Adressen dürfen Mails für diese Domain verschickt werden'; +$wb['spf_ip_txt'] = 'Zusätzliche IP-Adressen im CIDR Format, die Mails für diese Domain verschicken dürfen'; +$wb['spf_ip_note_txt'] = '(mehrere IPs mit Leerzeichen trennen)'; +$wb['spf_invalid_ip_txt'] = 'Ungültige IP-Adresse'; +$wb['spf_hostname_txt'] = 'Zusätzliche Hostnamen, die für diese Domain Mails verschicken dürfen oder als Relay arbeiten.'; +$wb['spf_hostname_note_txt'] = '(mehrere Hostnamen mit Leerzeichen trennen)'; +$wb['spf_invalid_hostname_txt'] = 'Ungültiger Hostname'; +$wb['spf_domain_txt'] = 'Zusätzliche Domains, die Mails verschicken dürfen oder als Relay arbeiten'; +$wb['spf_domain_note_txt'] = '(mehrerer Domains mit Leerzeichen trennen)'; +$wb['spf_invalid_domain_txt'] = 'Ungültiger Domainname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktiv'; +$wb["record_exists_txt"] = 'DNS-Eintrag existiert bereits'; +$wb['ttl_range_error'] = 'Min. TTL time ist 60 Sekunden.'; +$wb['limit_dns_record_txt'] = 'Die maximale Anzahl an DNS Einträgen für Ihr Konto wurde erreicht.'; +$wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser DNS Zone hinzuzufügen.'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_txt.lng b/interface/web/dns/lib/lang/de_dns_txt.lng index a40fb56fcc4fb09ed9c8eaba7a990685149ea970..23f4f3097418f5167e254d5493d151886fa0cc9f 100644 --- a/interface/web/dns/lib/lang/de_dns_txt.lng +++ b/interface/web/dns/lib/lang/de_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; $wb['data_error_empty'] = 'Text ist leer'; $wb['data_error_regex'] = 'Textformat ungültig'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM ist nicht zulässig. Bitte den DKIM-Button nutzen'; +$wb['invalid_type_dmarc'] = 'DMARC ist nicht zulässig. Bitte den DMARC-Button nutzen'; +$wb['invalid_type_spf'] = 'SPF ist nicht zulässig. Bitte den SPF-Button nutzen'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_dmarc.lng b/interface/web/dns/lib/lang/el_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_spf.lng b/interface/web/dns/lib/lang/el_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_txt.lng b/interface/web/dns/lib/lang/el_dns_txt.lng index b2ea2d5216d7534ef0f14ad4b4505f15fa05c523..f0915d5886d9df1c038d19e64d5926a7d31865f7 100644 --- a/interface/web/dns/lib/lang/el_dns_txt.lng +++ b/interface/web/dns/lib/lang/el_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Το hostname δεν Îχει σωστή μοÏφοπ $wb['data_error_empty'] = 'Το κείμενο δεν Îχει οÏιστεί'; $wb['data_error_regex'] = 'Κείμενο με μη ÎγκυÏη μοÏφοποίηση'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/en_dns_dmarc.lng b/interface/web/dns/lib/lang/en_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_spf.lng b/interface/web/dns/lib/lang/en_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_txt.lng b/interface/web/dns/lib/lang/en_dns_txt.lng index b70b8b19d5efba1c68c1d621f42a9929e13aeb6a..658b0ddf83e841c2de5f0e2a9beefdcd10d3b9af 100644 --- a/interface/web/dns/lib/lang/en_dns_txt.lng +++ b/interface/web/dns/lib/lang/en_dns_txt.lng @@ -13,4 +13,7 @@ $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'Text empty'; $wb["data_error_regex"] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -?> \ No newline at end of file +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_dmarc.lng b/interface/web/dns/lib/lang/es_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_spf.lng b/interface/web/dns/lib/lang/es_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_txt.lng b/interface/web/dns/lib/lang/es_dns_txt.lng index 385509641bb02858ab867f4c67833a1601a2582f..61fcf758608eab2fb1f7bd4ad56f1eb80ed8f9ba 100644 --- a/interface/web/dns/lib/lang/es_dns_txt.lng +++ b/interface/web/dns/lib/lang/es_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'El formato del nombre de la máquina es incorrecto.'; $wb['data_error_empty'] = 'Texto vacÃo.'; $wb['data_error_regex'] = 'Formato de texto no válido'; $wb['ttl_range_error'] = 'TTL mÃnimo es 60 segundos'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_dmarc.lng b/interface/web/dns/lib/lang/fi_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_spf.lng b/interface/web/dns/lib/lang/fi_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_txt.lng b/interface/web/dns/lib/lang/fi_dns_txt.lng index c321dccc80092829ecb5c78573f4c98b0ae14704..20600405726ef0a69023b4706fd46e598816a8e1 100755 --- a/interface/web/dns/lib/lang/fi_dns_txt.lng +++ b/interface/web/dns/lib/lang/fi_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.'; $wb['data_error_empty'] = 'Tekstikenttä on tyhjä'; $wb['data_error_regex'] = 'Tekstikenttä on vääränlainen'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_dmarc.lng b/interface/web/dns/lib/lang/fr_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_spf.lng b/interface/web/dns/lib/lang/fr_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_txt.lng b/interface/web/dns/lib/lang/fr_dns_txt.lng index 829c4fcf01554035b784776dcd4a1edd2ee1b814..333dd30d94edfba4c6df8a29d13c7becf5e74333 100644 --- a/interface/web/dns/lib/lang/fr_dns_txt.lng +++ b/interface/web/dns/lib/lang/fr_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.'; $wb['data_error_empty'] = 'Le texte est vide'; $wb['data_error_regex'] = 'Le format du texte est invalide'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_dmarc.lng b/interface/web/dns/lib/lang/hr_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_spf.lng b/interface/web/dns/lib/lang/hr_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_txt.lng b/interface/web/dns/lib/lang/hr_dns_txt.lng index 88bb5e15e75750a070879de13e357f6234047aac..349f9f7ca3126bff97a78dcc071d7934b5bb6a70 100644 --- a/interface/web/dns/lib/lang/hr_dns_txt.lng +++ b/interface/web/dns/lib/lang/hr_dns_txt.lng @@ -13,6 +13,7 @@ $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'TXT polje je prazno'; $wb['data_error_regex'] = 'Neispravan format TXT zapisa'; $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> - - diff --git a/interface/web/dns/lib/lang/hu_dns_dmarc.lng b/interface/web/dns/lib/lang/hu_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_spf.lng b/interface/web/dns/lib/lang/hu_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_txt.lng b/interface/web/dns/lib/lang/hu_dns_txt.lng index 97d5d293a14980a44be4a39141dc6ca9bbdfdf99..67b57cdb91e36c1799ac9a3fed8c2a02c9f4b915 100644 --- a/interface/web/dns/lib/lang/hu_dns_txt.lng +++ b/interface/web/dns/lib/lang/hu_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Text empty'; $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_dmarc.lng b/interface/web/dns/lib/lang/id_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_spf.lng b/interface/web/dns/lib/lang/id_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_txt.lng b/interface/web/dns/lib/lang/id_dns_txt.lng index cf4660f644bde5e4a0c72a215ccbdc87cd926a0d..b6c2647bd07c87d5d074b7ff1d81b62e74379543 100644 --- a/interface/web/dns/lib/lang/id_dns_txt.lng +++ b/interface/web/dns/lib/lang/id_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Format nama host salah.'; $wb['data_error_empty'] = 'Teks kosong'; $wb['data_error_regex'] = 'Format teks tidak valid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_dmarc.lng b/interface/web/dns/lib/lang/it_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_spf.lng b/interface/web/dns/lib/lang/it_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_txt.lng b/interface/web/dns/lib/lang/it_dns_txt.lng index 31da6ebf1adb104cdd166af46b1ac9e4806aedf6..ecbb5215cb1724643d080dcc5ed88c1ac1eb0767 100644 --- a/interface/web/dns/lib/lang/it_dns_txt.lng +++ b/interface/web/dns/lib/lang/it_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Text empty'; $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_dmarc.lng b/interface/web/dns/lib/lang/ja_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_spf.lng b/interface/web/dns/lib/lang/ja_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_txt.lng b/interface/web/dns/lib/lang/ja_dns_txt.lng index 6ef505c4a3b70153ca1d52223b05d485c9debc37..a24217f9b69462876e6eb9dfffa1342a23c1b0a1 100644 --- a/interface/web/dns/lib/lang/ja_dns_txt.lng +++ b/interface/web/dns/lib/lang/ja_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'ホストåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['data_error_empty'] = 'TXT を入力ã—ã¦ãã ã•ã„。'; $wb['data_error_regex'] = 'TXT ã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_dmarc.lng b/interface/web/dns/lib/lang/nl_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_spf.lng b/interface/web/dns/lib/lang/nl_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_txt.lng b/interface/web/dns/lib/lang/nl_dns_txt.lng index b89d802490a7db61ffeced7f70353afc5972f493..1787a09a271355a15f9907cf940eabb3599787fb 100644 --- a/interface/web/dns/lib/lang/nl_dns_txt.lng +++ b/interface/web/dns/lib/lang/nl_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.'; $wb['data_error_empty'] = 'Tekst is niet ingvuld'; $wb['data_error_regex'] = 'Tekst formaat ongeldig'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_dmarc.lng b/interface/web/dns/lib/lang/pl_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_spf.lng b/interface/web/dns/lib/lang/pl_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_txt.lng b/interface/web/dns/lib/lang/pl_dns_txt.lng index 09214f789d21c8ea2564ebd20cf136c911629144..fbe7a18f1d987f9c7385084dc6be2b76b59e98c2 100644 --- a/interface/web/dns/lib/lang/pl_dns_txt.lng +++ b/interface/web/dns/lib/lang/pl_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Nazwa serwera ma zÅ‚y format.'; $wb['data_error_empty'] = 'Tekst jest pusty.'; $wb['data_error_regex'] = 'Tekst ma zÅ‚y format.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_dmarc.lng b/interface/web/dns/lib/lang/pt_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_spf.lng b/interface/web/dns/lib/lang/pt_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_txt.lng b/interface/web/dns/lib/lang/pt_dns_txt.lng index dbc200d71e55bff849b13e764acd90e0298c296b..78b5eaf0bed3ad93ec91cba7646a1557a04d7a3f 100644 --- a/interface/web/dns/lib/lang/pt_dns_txt.lng +++ b/interface/web/dns/lib/lang/pt_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Hostname tem um formato inválido.'; $wb['data_error_empty'] = 'Endereço-IP em branco'; $wb['data_error_regex'] = 'Endereço-IP formato inválido'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_dmarc.lng b/interface/web/dns/lib/lang/ro_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_spf.lng b/interface/web/dns/lib/lang/ro_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_txt.lng b/interface/web/dns/lib/lang/ro_dns_txt.lng index 4aba1a5490e08baaa8a8f5e1604693749295663d..737f7e26dc54224221c67d1ad5138612894bcafe 100644 --- a/interface/web/dns/lib/lang/ro_dns_txt.lng +++ b/interface/web/dns/lib/lang/ro_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Hostname in format gresit'; $wb['data_error_empty'] = 'Text necompletat'; $wb['data_error_regex'] = 'Format text invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_dmarc.lng b/interface/web/dns/lib/lang/ru_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_spf.lng b/interface/web/dns/lib/lang/ru_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_txt.lng b/interface/web/dns/lib/lang/ru_dns_txt.lng index 5656b637901c0d585565c63e381c9742af01a4e8..aecade33bdf35697b76431753665c88c86c6cee1 100644 --- a/interface/web/dns/lib/lang/ru_dns_txt.lng +++ b/interface/web/dns/lib/lang/ru_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный $wb['data_error_empty'] = 'ТекÑÑ‚ пуÑтой'; $wb['data_error_regex'] = 'Формат неправилен'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_dmarc.lng b/interface/web/dns/lib/lang/se_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_spf.lng b/interface/web/dns/lib/lang/se_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_txt.lng b/interface/web/dns/lib/lang/se_dns_txt.lng index 31da6ebf1adb104cdd166af46b1ac9e4806aedf6..ecbb5215cb1724643d080dcc5ed88c1ac1eb0767 100644 --- a/interface/web/dns/lib/lang/se_dns_txt.lng +++ b/interface/web/dns/lib/lang/se_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Text empty'; $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_dmarc.lng b/interface/web/dns/lib/lang/sk_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_spf.lng b/interface/web/dns/lib/lang/sk_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_txt.lng b/interface/web/dns/lib/lang/sk_dns_txt.lng index 6086b390ca5e0822b8071499400d75b764393306..80686d9c990359fd76a9b10df9af2d6b48515113 100644 --- a/interface/web/dns/lib/lang/sk_dns_txt.lng +++ b/interface/web/dns/lib/lang/sk_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Hostname má zlý formát.'; $wb['data_error_empty'] = 'Text je prázdny'; $wb['data_error_regex'] = 'Text má zlý formát'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_dmarc.lng b/interface/web/dns/lib/lang/tr_dns_dmarc.lng new file mode 100644 index 0000000000000000000000000000000000000000..8da5d353503b32b3d102df08c3035fb449b4eabe --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC Record'; +$wb['domain_txt'] = 'Domain'; +$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; +$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'none'; +$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; +$wb['dmarc_policy_reject_txt'] = 'reject'; +$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; +$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; +$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; +$wb['dmarc_fo_txt'] = 'Forensic reporting options'; +$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result."; +$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; +$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; +$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; +$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; +$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from"; +$wb['dmarc_adkim_r_txt'] = 'relaxed'; +$wb['dmarc_adkim_s_txt'] = 'strict'; +$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; +$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from"; +$wb['dmarc_aspf_r_txt'] = 'relaxed'; +$wb['dmarc_aspf_s_txt'] = 'strict'; +$wb['dmarc_rf_txt'] = 'Report Format'; +$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; +$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; +$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; +$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; +$wb['dmarc_ri_txt'] = 'Reporting Interval'; +$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).'; +$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; +$wb['dmarc_sp_same_txt'] = 'same as domain'; +$wb['dmarc_sp_none_txt'] = 'none'; +$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; +$wb['dmarc_sp_reject_txt'] = 'reject'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails."; +$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; +$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; +$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; +$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; +$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; +$wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_spf.lng b/interface/web/dns/lib/lang/tr_dns_spf.lng new file mode 100644 index 0000000000000000000000000000000000000000..8a1a611c215e175ac1c981c15083e6f29cb2bc39 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_spf.lng @@ -0,0 +1,25 @@ +<?php +$wb['data_txt'] = 'SPF-Record'; +$wb['spf_mechanism_txt'] = 'SPF Mechanism'; +$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; +$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; +$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; +$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; +$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; +$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; +$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; +$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; +$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; +$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; +$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; +$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; +$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; +$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_txt.lng b/interface/web/dns/lib/lang/tr_dns_txt.lng index 48de6cd48991c42ca0390855875b772d36e1e2a3..372afe94c76ffea4402b1f76b5f6f7dcda901b0e 100644 --- a/interface/web/dns/lib/lang/tr_dns_txt.lng +++ b/interface/web/dns/lib/lang/tr_dns_txt.lng @@ -13,4 +13,7 @@ $wb['name_error_regex'] = 'Hostname yanlış formatta.'; $wb['data_error_empty'] = 'Metin boÅŸ'; $wb['data_error_regex'] = 'Metin geçersiz formatta'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; +$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; +$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; ?> diff --git a/interface/web/dns/templates/dns_dkim_edit.htm b/interface/web/dns/templates/dns_dkim_edit.htm index 693b353c515bd55a9f78fd1602f9733b3c90ed81..c13d16b31ee1bb94ccd7bce2a4ece030cd93be44 100644 --- a/interface/web/dns/templates/dns_dkim_edit.htm +++ b/interface/web/dns/templates/dns_dkim_edit.htm @@ -7,11 +7,11 @@ <div class="form-group"> <label for="data" class="col-sm-3 control-label">{tmpl_var name='public_key_txt'}</label> - <textarea name="data" id="data" >{tmpl_var name='public_key'}</textarea> + <textarea name="data" readonly id="data" >{tmpl_var name='public_key'}</textarea> </div> <div class="form-group"> <label for="selector" class="col-sm-3 control-label">{tmpl_var name='selector_txt'}</label> - <div class="col-sm-9"><input type="text" name="selector" id="selector" value="{tmpl_var name='selector'}" class="form-control" /> + <div class="col-sm-9"><input type="text" name="selector" id="selector" value="{tmpl_var name='selector'}" readonly class="form-control" /> </div></div> <div class="form-group"> <label for="ttl" class="col-sm-3 control-label">{tmpl_var name='ttl_txt'}</label> @@ -36,5 +36,4 @@ <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','dns/dns_dkim_edit.php');">{tmpl_var name='btn_save_txt'}</button> <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}"><span>{tmpl_var name='btn_cancel_txt'}</span></button> </div></div> -<script language="JavaScript" type="text/javascript" src="js/dns_dkim.js"></script> diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..cc874e03cbae86de61cee874aa85b9760b08c5d3 --- /dev/null +++ b/interface/web/dns/templates/dns_dmarc_edit.htm @@ -0,0 +1,100 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_dns_txt"> + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='domain_txt'}</label> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" readonly size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="dmarc_policy">{tmpl_var name='dmarc_policy_txt'}</label> + <select name="dmarc_policy" id="dmarc_policy" class="selectInput"> + {tmpl_var name='dmarc_policy'} + </select> + {tmpl_var name='dmarc_policy_note_txt'} + </div> + <div class="ctrlHolder"> + <label for="dmarc_rua">{tmpl_var name='dmarc_rua_txt'}</label> + <input name="dmarc_rua" id="dmarc_rua" value="{tmpl_var name='dmarc_rua'}" size="20" maxlength="63" type="text" class="textInput" /> + {tmpl_var name='dmarc_rua_note_txt'} + </div> + <div class="ctrlHolder"> + <label for="dmarc_ruf">{tmpl_var name='dmarc_ruf_txt'}</label> + <input name="dmarc_ruf" id="dmarc_ruf" value="{tmpl_var name='dmarc_ruf'}" size="20" maxlength="63" type="text" class="textInput" /> + {tmpl_var name='dmarc_ruf_note_txt'} + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='dmarc_fo_txt'}</p> + <div class="multiField"> + <input type="checkbox" value="1" id="dmarc_fo0" name="dmarc_fo0" {tmpl_var name='dmarc_fo0'}/>{tmpl_var name='dmarc_fo0_txt'}<br> + <input type="checkbox" value="1" id="dmarc_fo1" name="dmarc_fo1" {tmpl_var name='dmarc_fo1'}/>{tmpl_var name='dmarc_fo1_txt'}<br> + <input type="checkbox" value="1" id="dmarc_fod" name="dmarc_fod" {tmpl_var name='dmarc_fod'}/>{tmpl_var name='dmarc_fod_txt'}<br> + <input type="checkbox" value="1" id="dmarc_fos" name="dmarc_fos" {tmpl_var name='dmarc_fos'}/>{tmpl_var name='dmarc_fos_txt'} + </div> + </div> + <div class="ctrlHolder"> + <label for="dmarc_adkim">{tmpl_var name='dmarc_adkim_txt'}</label> + <select name="dmarc_adkim" id="dmarc_adkim" class="selectInput"> + {tmpl_var name='dmarc_adkim'} + </select> + {tmpl_var name='dmarc_adkim_note_txt'} + </div> + <div class="ctrlHolder"> + <label for="dmarc_aspf">{tmpl_var name='dmarc_aspf_txt'}</label> + <select name="dmarc_aspf" id="dmarc_aspf" class="selectInput"> + {tmpl_var name='dmarc_aspf'} + </select> + {tmpl_var name='dmarc_aspf_note_txt'} + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='dmarc_rf_txt'}</p> + <div class="multiField"> + <input type="checkbox" value="1" id=dmarc_rf_afrf" name="dmarc_rf_afrf" {tmpl_var name='dmarc_rf_afrf'}/>{tmpl_var name='dmarc_rf_afrf_txt'}<br> + <input type="checkbox" value="1" id="dmarc_rf_iodef" name="dmarc_rf_iodef" {tmpl_var name='dmarc_rf_iodef'}/>{tmpl_var name='dmarc_rf_iodef_txt'} + </div> + </div> + <div class="ctrlHolder"> + <label for="dmarc_pct">{tmpl_var name='dmarc_pct_txt'}</label> + <input name="dmarc_pct" id="dmarc_pct" value="{tmpl_var name='dmarc_pct'}" size="20" maxlength="63" type="text" class="textInput" /> + {tmpl_var name='dmarc_pct_note_txt'} + </div> + <div class="ctrlHolder"> + <label for="dmarc_ri">{tmpl_var name='dmarc_ri_txt'}</label> + <input name="dmarc_ri" id="dmarc_ri" value="{tmpl_var name='dmarc_ri'}" size="20" maxlength="63" type="text" class="textInput" /> + {tmpl_var name='dmarc_ri_note_txt'} + </div> + <div class="ctrlHolder"> + <label for="dmarc_sp">{tmpl_var name='dmarc_sp_txt'}</label> + <select name="dmarc_sp" id="dmarc_sp" class="selectInput"> + {tmpl_var name='dmarc_sp'} + </select> + </div> + <div class="ctrlHolder"> + <label for="ttl">{tmpl_var name='ttl_txt'}</label> + <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> + </div> + + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + <input type="checkbox" value="1" id="active" name="active" {tmpl_var name='active'} / > + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="zone" value="{tmpl_var name='zone'}" id="zone"> + <input type="hidden" name="type" value="{tmpl_var name='type'}"> + <input type="hidden" name="name" value="{tmpl_var name='name'}"> + </div> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','dns/dns_dmarc_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> + diff --git a/interface/web/js/dns_dkim.js b/interface/web/js/dns_dkim.js deleted file mode 100644 index 58f8dcf0321c63a368ad9369750b0bd32bab2973..0000000000000000000000000000000000000000 --- a/interface/web/js/dns_dkim.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright (c) 2007 - 2013, Till Brehm, projektfarm Gmbh -Copyright (c) 2013, Florian Schaal, info@schaal-24.de -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -This Javascript is invoked by - * dns/templates/dns_dkim_edit.htm to get the public key -*/ - var request = false; - - function setRequest(zone) { - if (window.XMLHttpRequest) {request = new XMLHttpRequest();} - else if (window.ActiveXObject) { - try {request = new ActiveXObject('Msxml2.XMLHTTP');} - catch (e) { - try {request = new ActiveXObject('Microsoft.XMLHTTP');} - catch (e) {} - } - } - if (!request) { - alert("Error creating XMLHTTP-instance"); - return false; - } else { - request.open('POST', 'dns/dns_dkim_get.php', true); - request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - request.send('&zone='+zone); - request.onreadystatechange = interpretRequest; - } - } - - function interpretRequest() { - switch (request.readyState) { - case 4: - if (request.status != 200) {alert("Request done but NOK\nError:"+request.status);} - else { - document.getElementsByName('data')[0].value = request.responseXML.getElementsByTagName('data')[0].firstChild.nodeValue; - document.getElementsByName('name')[0].value = request.responseXML.getElementsByTagName('name')[0].firstChild.nodeValue; - document.getElementsByName('selector')[0].value = request.responseXML.getElementsByTagName('selector')[0].firstChild.nodeValue; - } - break; - default: - break; - } - } - -var serverType = jQuery('#zone').val(); -setRequest(serverType); diff --git a/interface/web/js/mail_domain_dkim.js b/interface/web/js/mail_domain_dkim.js index fdc7ae5715a8e0195b83e066b07fd483aeaae0c6..0b9ea59fab8db3e1a2bbeaba02a152dcc4d728d1 100755 --- a/interface/web/js/mail_domain_dkim.js +++ b/interface/web/js/mail_domain_dkim.js @@ -31,15 +31,16 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This Javascript is invoked by * mail/templates/mail_domain_edit.htm to show and/or create the key-pair */ -var request = false; - $('.subsectiontoggle').on('click', function(){ $(this).children().toggleClass('showing').end().next().slideToggle(); }); -function setRequest(action) { +var request = false; + +//function setRequest(action) { +function setRequest() { if (window.XMLHttpRequest) { - request = new XMLHttpRequest(); + request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { request = new ActiveXObject('Msxml2.XMLHTTP'); @@ -51,7 +52,6 @@ function setRequest(action) { catch (e) {} } } - if (!request) { alert("Error creating XMLHTTP-instance"); return false; @@ -64,12 +64,20 @@ function setRequest(action) { } else { var domain = jQuery('#domain').val(); } + + // we nedd the client-id to get the dkim-strength of the right mail-server + try { + var clientid = document.getElementById("client_group_id").selectedIndex; // admin and reseller + } + catch (e) { + var clientid = jQuery('#client_id').val();; // user + } + var selector=jQuery('#dkim_selector').val(); var publickey=jQuery('#dkim_public').val(); - var privatekey=encodeURIComponent(document.getElementById("dkim_private").value) request.open('POST', 'mail/mail_domain_dkim_create.php', true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - request.send('domain='+domain+'&action='+action+'&dkim_selector='+selector+'&dkim_public='+publickey+'&dkim_private='+privatekey); + request.send('domain='+domain+'&dkim_selector='+selector+'&dkim_public='+publickey+'&client_id='+clientid); request.onreadystatechange = interpretRequest; } } @@ -86,10 +94,9 @@ function interpretRequest() { document.getElementsByName('dns_record')[0].value = request.responseXML.getElementsByTagName('dns_record')[0].firstChild.nodeValue; } break; - default: break; } } -setRequest('show'); +//setRequest('show'); diff --git a/interface/web/mail/mail_domain_dkim_create.php b/interface/web/mail/mail_domain_dkim_create.php index 4b595969c07bad23a8b7d974e750044979013f9e..565546c4f1400afd94144318d8c19b48a455ac2a 100644 --- a/interface/web/mail/mail_domain_dkim_create.php +++ b/interface/web/mail/mail_domain_dkim_create.php @@ -56,23 +56,6 @@ function validate_selector($selector) { if ( preg_match($regex, $selector) === 1 ) return true; else return false; } -/** - * This function fix PHP's messing up POST input containing characters space, dot, - * open square bracket and others to be compatible with with the deprecated register_globals - * @return array POST - */ -function getRealPOST() { - $pairs = explode("&", file_get_contents("php://input")); - $vars = array(); - foreach ($pairs as $pair) { - $nv = explode("=", $pair, 2); - $name = urldecode($nv[0]); - $value = $nv[1]; - $vars[$name] = $value; - } - return $vars; -} - /** * This function formats the public-key * @param array $pubkey @@ -101,21 +84,32 @@ function get_public_key($private_key, $dkim_strength) { * @param string $old_selector * @return string selector */ -function new_selector ($old_selector, $domain) { +function new_selector ($old_selector, $domain, $client_id = -1) { global $app; //* validate post-values if ( validate_domain($domain) && validate_selector($old_selector) ) { //* get active selectors from dns - $soa_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE active = 'Y' AND origin = ?", $domain.'.'); + $soa_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE active = 'Y' AND origin = ?"); if ( isset($soa_rec) && !empty($soa_rec) ) { //* check for a dkim-record in the dns? - $dns_data = $app->db->queryOneRecord("SELECT name FROM dns_rr WHERE name = ? AND active = 'Y'", $old_selector.'._domainkey.'.$domain.'.'); - $selector = str_replace( '._domainkey.'.$domain.'.', '', $dns_data['name']); - if ( $old_selector == $selector) { - $selector = substr($old_selector, 0, 53) . time(); //* add unix-timestamp to delimiter to allow old and new key in the dns - } else { - $selector = $old_selector; + $dns_data = $app->db->queryOneRecord("SELECT name FROM dns_rr WHERE name = ? AND active = 'Y''", $old_selector.'._domainkey.'.$domain.'.'); + if ( !empty($dns_data) ){ + $selector = str_replace( '._domainkey.'.$domain.'.', '', $dns_data['name']); + } else { + } + } else { //* no dns-zone found - check for existing mail-domain to create a new selector (we need this if a external dns is used) + if ( $client_id >= 0 ) { + $sql = "SELECT * from mail_domain WHERE dkim = 'y' AND domain = ? AND dkim_selector = ?"; + $maildomain = $app->db->queryOneRecord($sql, $domain, $old_selector); + if ( !empty($maildomain) ) { + $selector = $maildomain['selector']; } + } + } + if ( $old_selector == $selector) { + $selector = substr($old_selector, 0, 53) . time(); //* add unix-timestamp to delimiter to allow old and new key in the dns + } else { + $selector = $old_selector; } } else { $selector = 'invalid domain or selector'; @@ -123,35 +117,35 @@ function new_selector ($old_selector, $domain) { return $selector; } +$client_id = $app->functions->intval($_POST['client_id']); + //* get dkim-strength for server_id -//$mail_server_id = $app->functions->intval( $app->db->queryOneRecord("SELECT server_id from mail_domain WHERE domain = ?", $_POST['domain']) ); -//$dkim_strength = $app->functions->intval( $app->getconf->get_server_config($mail_server_id, 'mail')['dkim_strength'] ); -$rec = $app->db->queryOneRecord("SELECT server_id from mail_domain WHERE domain = ?", $_POST['domain']); -$mail_server_id = $app->functions->intval($rec['server_id']); -unset ($rec); -$rec = $app->getconf->get_server_config($mail_server_id, 'mail'); -$dkim_strength = $app->functions->intval($rec['dkim_strength']); -unset ($rec); -if ( empty($dkim_strength) ) $dkim_strength = 1024; - -switch ($_POST['action']) { - case 'create': /* create DKIM Private-key */ - $_POST=getRealPOST(); - $rnd_val = $dkim_strength * 10; - exec('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); - exec('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); - unlink('../../temp/random-data.bin'); - foreach($privkey as $values) $private_key=$private_key.$values."\n"; - //* check the selector for updated dkim-settings only - if ( isset($_POST['dkim_public']) && !empty($_POST['dkim_public']) ) $selector = new_selector($_POST['dkim_selector'], $_POST['domain']); - break; - - case 'show': /* show the DNS-Record onLoad */ - $private_key=$_POST['dkim_private']; - break; +$sql = "SELECT server_id from mail_domain WHERE domain = ?"; +$mail_server = $app->db->queryOneRecord($sql, $_POST['domain']); +if ( is_array($mail_server) ) { //* we are adding an existing mail-domain + $mail_server_id = $app->functions->intval( $mail_server['server_id'] ); +} else { + $sql = "SELECT default_mailserver FROM client WHERE client_id = ?"; + $mail_server = $app->db->queryOneRecord($sql, $client_id); + $mail_server_id = $app->functions->intval( $mail_server['default_mailserver'] ); } +unset($mail_server); +$mail_config = $app->getconf->get_server_config($mail_server_id, 'mail'); +$dkim_strength = $app->functions->intval($mail_config['dkim_strength']); +unset($mail_config); + +if ( empty($dkim_strength) ) $dkim_strength = 2048; + +$rnd_val = $dkim_strength * 10; +exec('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); +exec('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); +unlink("../../temp/random-data.bin"); +foreach($privkey as $values) $private_key=$private_key.$values."\n"; +//* check the selector for updated dkim-settings only +if ( isset($_POST['dkim_public']) && !empty($_POST['dkim_public']) ) $selector = new_selector($_POST['dkim_selector'], $_POST['domain'], $client_id); + +if ( !isset($public_key) ) $public_key=get_public_key($private_key, $dkim_strength); -$public_key=get_public_key($private_key, $dkim_strength); $dns_record=str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$public_key); if ( !isset($selector) ) { diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php old mode 100644 new mode 100755 index b3ea30bce6cb0c55287de20b791f883fa4ecbec2..210b88fb1c675a8c267508b018267f016ac29983 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -206,6 +206,16 @@ class page_action extends tform_actions { $app->tpl->setVar("edit_disabled", 0); } + // load dkim-values + $sql = "SELECT domain, dkim_private, dkim_public, dkim_selector FROM mail_domain WHERE domain_id = ?"; + $rec = $app->db->queryOneRecord($sql, $app->functions->intval($_GET['id'])); + $dns_key = str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$rec['dkim_public']); + $dns_record = '.' . $rec['dkim_selector'] . '_domainkey._' . $rec['domain'] . '. 3600 TXT v=DKIM1; t=s; p=' . $dns_key; + $app->tpl->setVar('dkim_selector', $rec['dkim_selector']); + $app->tpl->setVar('dkim_private', $rec['dkim_private']); + $app->tpl->setVar('dkim_public', $rec['dkim_public']); + if (!empty($rec['dkim_public'])) $app->tpl->setVar('dns_record', $dns_record); + parent::onShowEnd(); } @@ -286,36 +296,6 @@ class page_action extends tform_actions { } } // endif spamfilter policy - //* create dns-record with dkim-values if the zone exists - if ( (isset($this->dataRecord['dkim']) && $this->dataRecord['dkim'] == 'y') && (isset($this->dataRecord['active']) && $this->dataRecord['active'] == 'y') ) { - $soa_rec = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain'].'.'); - if ( isset($soa_rec) && !empty($soa_rec) ) { - //* check for a dkim-record in the dns - $dns_data = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE name = ? AND sys_groupid = ?", $this->dataRecord['dkim_selector'].'._domainkey.'.$this->dataRecord['domain'].'.', $_SESSION["s"]["user"]['sys_groupid']); - if ( isset($dns_data) && !empty($dns_data) ) { - $dns_data['data'] = 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $this->dataRecord['dkim_public']); - $dns_data['active'] = 'Y'; - $dns_data['stamp'] = date('Y-m-d H:i:s'); - $dns_data['serial'] = $app->validate_dns->increase_serial($dns_data['serial']); - $app->db->datalogUpdate('dns_rr', $dns_data, 'id', $dns_data['id']); - $zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ?", $dns_data['zone']); - $new_serial = $app->validate_dns->increase_serial($zone['serial']); - $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']); - } else { //* no dkim-record found - create new record - $dns_data = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain'].'.'); - $dns_data['name'] = $this->dataRecord['dkim_selector'].'._domainkey.'.$this->dataRecord['domain'].'.'; - $dns_data['type'] = 'TXT'; - $dns_data['data'] = 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $this->dataRecord['dkim_public']); - $dns_data['aux'] = 0; - $dns_data['active'] = 'Y'; - $dns_data['stamp'] = date('Y-m-d H:i:s'); - $dns_data['serial'] = $app->validate_dns->increase_serial($dns_data['serial']); - $app->db->datalogInsert('dns_rr', $dns_data, 'id', $dns_data['zone']); - $new_serial = $app->validate_dns->increase_serial($soa_rec['serial']); - $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $soa_rec['zone']); - } - } - } //* endif add dns-record } function onBeforeUpdate() { @@ -343,68 +323,6 @@ class page_action extends tform_actions { unset($rec); } - //* update dns-record when the dkim record was changed - // NOTE: only if the domain-name was not changed - - //* get domain-data from the db - $mail_data = $app->db->queryOneRecord("SELECT * FROM mail_domain WHERE domain = ?", $this->dataRecord['domain']); - - if ( isset($mail_data) && !empty($mail_data) ) { - $post_data = $mail_data; - $post_data['dkim_selector'] = $this->dataRecord['dkim_selector']; - $post_data['dkim_public'] = $this->dataRecord['dkim_public']; - $post_data['dkim_private'] = $this->dataRecord['dkim_private']; - if ( isset($this->dataRecord['dkim']) ) $post_data['dkim'] = 'y'; else $post_data['dkim'] = 'n'; - if ( isset($this->dataRecord['active']) ) $post_data['active'] = 'y'; else $post_data['active'] = 'n'; - } - - //* dkim-value changed - if ( $mail_data != $post_data ) { - //* get the dns-record for the public from the db - $dns_data = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE name = ? AND sys_groupid = ?", $mail_data['dkim_selector'].'._domainkey.'.$mail_data['domain'].'.', $mail_data['sys_groupid']); - - //* we modify dkim dns-values for active mail-domains only - if ( $post_data['active'] == 'y' ) { - if ( $post_data['dkim'] == 'n' ) { - $new_dns_data['active'] = 'N'; - } else { - if ( $post_data['dkim_selector'] != $mail_data['dkim_selector'] ) - $new_dns_data['name'] = $post_data['dkim_selector'].'._domainkey.'.$post_data['domain'].'.'; - if ( $post_data['dkim'] != $mail_data['dkim'] ) - $new_dns_data['active'] = 'Y'; - if ( $post_data['active'] != $mail_data['active'] && $post_data['active'] == 'y' ) - $new_dns_data['active'] = 'Y'; - if ( $post_data['dkim_public'] != $mail_data['dkim_public'] ) - $new_dns_data['data'] = 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $post_data['dkim_public']); - } - } else $new_dns_data['active'] = 'N'; - - if ( isset($dns_data) && !empty($dns_data) && isset($new_dns_data) ) { - //* update dns-record - $new_dns_data['serial'] = $app->validate_dns->increase_serial($dns_data['serial']); - $app->db->datalogUpdate('dns_rr', $new_dns_data, 'id', $dns_data['id']); - $zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ?", $dns_data['zone']); - $new_serial = $app->validate_dns->increase_serial($zone['serial']); - $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']); - } else { - //* create a new dns-record - $new_dns_data = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $mail_data['domain'].'.'); - //* create a new record only if the dns-zone exists - if ( isset($new_dns_data) && !empty($new_dns_data) && $post_data['dkim'] == 'y' ) { - $new_dns_data['name'] = $post_data['dkim_selector'].'._domainkey.'.$post_data['domain'].'.'; - $new_dns_data['type'] = 'TXT'; - $new_dns_data['data'] = 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $post_data['dkim_public']); - $new_dns_data['aux'] = 0; - $new_dns_data['active'] = 'Y'; - $new_dns_data['stamp'] = date('Y-m-d H:i:s'); - $new_dns_data['serial'] = $app->validate_dns->increase_serial($new_dns_data['serial']); - $app->db->datalogInsert('dns_rr', $new_dns_data, 'id', $new_dns_data['zone']); - $zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ?", $new_dns_data['zone']); - $new_serial = $app->validate_dns->increase_serial($zone['serial']); - $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']); - } - } - } //* endif $mail_data != $post_data } function onAfterUpdate() { @@ -482,6 +400,65 @@ class page_action extends tform_actions { } // end if domain name changed + //* update dns-record when the dkim record was changed + // NOTE: only if the domain-name was not changed + if ( $this->dataRecord['active'] == 'y' && $this->dataRecord['domain'] == $this->oldDataRecord['domain'] ) { + $dkim_active = @($this->dataRecord['dkim'] == 'y') ? true : false; + $selector = @($this->dataRecord['dkim_selector'] != $this->oldDataRecord['dkim_selector']) ? true : false; + $dkim_private = @($this->dataRecord['dkim_private'] != $this->oldDataRecord['dkim_private']) ? true : false; + + $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain']); + + if ( ($selector || $dkim_private || $dkim_active) && $dkim_active ) + //* create a new record only if the dns-zone exists + if ( isset($soa) && !empty($soa) ) { + $this->update_dns($this->dataRecord, $soa); + } + elseif ( !isset($this->dataRecord['dkim']) ) { + // updated existing dmarc-record to policy 'none' + $sql = "SELECT * from dns_rr WHERE name ='_dmarc.?.' AND data LIKE 'v=DMARC1%' AND ?"; + $rec = $app->db->queryOneRecord($sql, $this->dataRecord['domain'], $app->tform->getAuthSQL('r')); + if (is_array($rec)) + if (strpos($rec['data'], 'p=none=') === false) { + $rec['data'] = str_replace(array('quarantine', 'reject'), 'none', $rec['data']); + $app->db->datalogUpdate('dns_rr', $rec, 'id', $rec['id']); + $soa_id = $app->functions->intval($soa['zone']); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + } + } + } + + } + + private function update_dns($dataRecord, $new_rr) { + global $app, $conf; + + // purge old rr-record(s) + $sql = "SELECT * FROM dns_rr WHERE name LIKE '%._domainkey.?.' AND data LIKE 'v=DKIM1%' AND ? ORDER BY serial DESC"; + $rec = $app->db->queryAllRecords($sql, $dataRecord['domain'], $app->tform->getAuthSQL('r')); + if (is_array($rec[1])) { + for ($i=1; $i < count($rec); ++$i) + $app->db->datalogDelete('dns_rr', 'id', $rec[$i]['id']); + } + // also delete a dsn-records with same selector + $sql = "SELECT * from dns_rr WHERE name ='?._domainkey.?.' AND data LIKE 'v=DKIM1%' AND ?"; + $rec = $app->db->queryAllRecords($sql, $dataRecord['dkim_selector'], $dataRecord['domain'], $app->tform->getAuthSQL('r')); + if (is_array($rec)) + foreach ($rec as $del) + $app->db->datalogDelete('dns_rr', 'id', $del['id']); + + $new_rr['name'] = $dataRecord['dkim_selector'].'._domainkey.'.$dataRecord['domain'].'.'; + $new_rr['type'] = 'TXT'; + $new_rr['data'] = 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $this->dataRecord['dkim_public']); + $new_rr['aux'] = 0; + $new_rr['active'] = 'Y'; + $new_rr['stamp'] = date('Y-m-d H:i:s'); + $new_rr['serial'] = $app->validate_dns->increase_serial($new_rr['serial']); + $app->db->datalogInsert('dns_rr', $new_rr, 'id', $new_rr['zone']); + $zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ".$app->functions->intval($new_rr['zone'])); + $new_serial = $app->validate_dns->increase_serial($zone['serial']); + $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']); } } diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm index 5aa48738bc6f51dd9d7a593c3226fd4cf3c5a465..c108c1e232e97bf7e43be333b26d0466c500f264 100644 --- a/interface/web/mail/templates/mail_domain_edit.htm +++ b/interface/web/mail/templates/mail_domain_edit.htm @@ -102,7 +102,7 @@ <div class="form-group"> <label for="dkim_private" class="col-sm-3 control-label">{tmpl_var name='dkim_private_txt'}</label> <textarea name="dkim_private" id="dkim_private" rows='10' cols='30'>{tmpl_var name='dkim_private'}</textarea> -<a href="javascript:setRequest('create')">{tmpl_var name='dkim_generate_txt'}</a> + <a href="javascript:setRequest()">{tmpl_var name='dkim_generate_txt'}</a> </div> <div class="form-group"> <textarea name="dkim_public" style="display:none;" id="dkim_public" rows='5' cols='30' readonly>{tmpl_var name='dkim_public'}</textarea> diff --git a/interface/web/sites/aps_do_operation.php b/interface/web/sites/aps_do_operation.php index b4d949316623077aed39de67d28d3fe711e47587..ffc8c031d7b65b69d0f0fcee63cd1b524eefb849 100644 --- a/interface/web/sites/aps_do_operation.php +++ b/interface/web/sites/aps_do_operation.php @@ -84,29 +84,4 @@ else if($_GET['action'] == 'delete_instance') //echo $app->lng('Installation_remove'); @header('Location:aps_installedpackages_list.php'); } -else if($_GET['action'] == 'reinstall_instance') - { - // Make sure a valid package ID is given (also corresponding to the calling user) - $client_id = 0; - $is_admin = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false; - if(!$is_admin) - { - $cid = $app->db->queryOneRecord("SELECT client_id FROM client WHERE username = '".$app->db->quote($_SESSION['s']['user']['username'])."';"); - $client_id = $cid['client_id']; - } - // Assume that the given instance belongs to the currently calling client_id. Unimportant if status is admin - if(!$gui->isValidInstanceID($_GET['id'], $client_id, $is_admin)) die($app->lng('Invalid ID')); - - // We've an InstanceID, so make sure the package is not enabled and InstanceStatus is still "installed" - $check = $app->db->queryOneRecord("SELECT aps_instances.id FROM aps_instances, aps_packages - WHERE aps_instances.package_id = aps_packages.id - AND aps_instances.instance_status = ".INSTANCE_SUCCESS." - AND aps_packages.package_status = ".PACKAGE_ENABLED." - AND aps_instances.id = ".$app->db->quote($_GET['id']).";"); - if(!$check) die('Check failed'); // normally this might not happen at all, so just die - - $gui->reinstallInstance($_GET['id']); - //echo $app->lng('Installation_task'); - @header('Location:aps_installedpackages_list.php'); - } ?> diff --git a/interface/web/sites/aps_installedpackages_list.php b/interface/web/sites/aps_installedpackages_list.php index 418cc43c1120103037421cb3c167f32f9d00d4ec..a0a934ef43afbae0d8eb83cddd27d58b9ccf13f9 100644 --- a/interface/web/sites/aps_installedpackages_list.php +++ b/interface/web/sites/aps_installedpackages_list.php @@ -125,10 +125,6 @@ if(is_array($records)) else $ils = $rec['install_location']; $rec['install_location_short'] = $ils; - // Also set a boolean-like variable for the reinstall button (vlibTemplate doesn't allow variable comparisons) - // For a reinstall, the package must be already installed successfully and (still be) enabled - if($rec['instance_status'] == INSTANCE_SUCCESS && $rec['package_status'] == PACKAGE_ENABLED) - $rec['reinstall_possible'] = 'true'; // Of course an instance can only then be removed when it's not already tagged for removal if($rec['instance_status'] != INSTANCE_REMOVE && $rec['instance_status'] != INSTANCE_INSTALL) $rec['delete_possible'] = 'true'; diff --git a/interface/web/sites/backup_stats.php b/interface/web/sites/backup_stats.php new file mode 100644 index 0000000000000000000000000000000000000000..dc170c433a1e753a65ac7c6c419b27738d818954 --- /dev/null +++ b/interface/web/sites/backup_stats.php @@ -0,0 +1,39 @@ +<?php +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +$list_def_file = 'list/backup_stats.list.php'; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('sites'); + +$app->load('listform_actions','functions'); + +class list_action extends listform_actions { + + public function prepareDataRow($rec) + { + global $app; + + $rec = parent::prepareDataRow($rec); + + $rec['active'] = "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>"; + if ($rec['backup_interval'] === 'none') { + $rec['active'] = "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"; + $rec['backup_copies'] = 0; + } + + $recBackup = $app->db->queryOneRecord('SELECT COUNT(backup_id) AS backup_count FROM web_backup WHERE parent_domain_id = ?', $rec['domain_id']); + $rec['backup_copies_exists'] = $recBackup['backup_count']; + + return $rec; + } +} + +$list = new list_action; +$list->SQLExtWhere = ""; +$list->onLoad(); diff --git a/interface/web/sites/lib/lang/ar_aps_instances_list.lng b/interface/web/sites/lib/lang/ar_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/ar_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/ar_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/bg_aps_instances_list.lng b/interface/web/sites/lib/lang/bg_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/bg_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/bg_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/br_aps_instances_list.lng b/interface/web/sites/lib/lang/br_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/br_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/br_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng index 16e863ee9c23441513e2a05386e9756021039ee6..8f7c248a60d7db5a1e85af89de2ca3648a26ba8a 100644 --- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng @@ -6,9 +6,7 @@ $wb['customer_txt'] = 'Klient'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'UmÃstÄ›nà instalace'; $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?'; -$wb['pkg_reinstall_confirmation'] = 'Opravdu chcete pÅ™einstalovat tento balÃÄek se stejným nastavenÃm ?'; $wb['filter_txt'] = 'Hledat'; $wb['delete_txt'] = 'Smazat'; -$wb['reinstall_txt'] = 'PÅ™einstalovat'; ?> diff --git a/interface/web/sites/lib/lang/de_aps_instances_list.lng b/interface/web/sites/lib/lang/de_aps_instances_list.lng index e5f8b7b7f12728cbf57937ea40aa369f517176de..ba381e8bd7fb8fceac966ed51739a1be950d7f13 100644 --- a/interface/web/sites/lib/lang/de_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/de_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Kunde'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Installationsort'; $wb['pkg_delete_confirmation'] = 'Soll diese Installation wirklich gelöscht werden?'; -$wb['pkg_reinstall_confirmation'] = 'Soll das Paket wirklich mit den gleichen Einstellungen erneut installiert werden?'; $wb['filter_txt'] = 'Suche'; $wb['delete_txt'] = 'Löschen'; -$wb['reinstall_txt'] = 'Neuinstallieren'; ?> diff --git a/interface/web/sites/lib/lang/de_backup_stats_list.lng b/interface/web/sites/lib/lang/de_backup_stats_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..d4451dd32b2c99b813a3edba6090d33385ddddc0 --- /dev/null +++ b/interface/web/sites/lib/lang/de_backup_stats_list.lng @@ -0,0 +1,9 @@ +<?php +$wb["list_head_txt"] = 'Backup Statistiken'; +$wb["database_name_txt"] = ''; +$wb['active_txt'] = 'Aktiv'; +$wb['domain_txt'] = 'Domain'; +$wb['backup_count_txt'] = 'Anz. Backups'; +$wb['backup_server_txt'] = 'Server'; +$wb['backup_interval_txt'] = 'Intervall / Anz.'; +?> diff --git a/interface/web/sites/lib/lang/el_aps_instances_list.lng b/interface/web/sites/lib/lang/el_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/el_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/el_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/en_aps_instances_list.lng b/interface/web/sites/lib/lang/en_aps_instances_list.lng index 611c37efa63656420e4a25c5beb71d9b11c3047d..ce6df1a3fd182725702b1921dbffa7062bfd4003 100644 --- a/interface/web/sites/lib/lang/en_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/en_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_backup_stats_list.lng b/interface/web/sites/lib/lang/en_backup_stats_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..47e81bf2d28acab3ee8c05b88df64f18c6e6c891 --- /dev/null +++ b/interface/web/sites/lib/lang/en_backup_stats_list.lng @@ -0,0 +1,9 @@ +<?php +$wb["list_head_txt"] = 'Backup Stats'; +$wb["database_name_txt"] = ''; +$wb['active_txt'] = 'Active'; +$wb['domain_txt'] = 'Domain'; +$wb['backup_count_txt'] = 'Backup count'; +$wb['backup_server_txt'] = 'Server'; +$wb['backup_interval_txt'] = 'Interval / cnt.'; +?> diff --git a/interface/web/sites/lib/lang/es_aps_instances_list.lng b/interface/web/sites/lib/lang/es_aps_instances_list.lng index f302a7a29ecb9acafcb3b1208b8124d2c2359a76..71ccd53fa5be0c547a7150af8bc2fe11718ddb1f 100644 --- a/interface/web/sites/lib/lang/es_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/es_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Cliente'; $wb['status_txt'] = 'Estado'; $wb['install_location_txt'] = 'Localización de instalación'; $wb['pkg_delete_confirmation'] = '¿Realmente quieres eliminar esta instalación?'; -$wb['pkg_reinstall_confirmation'] = '¿Realmente quieres reinstalar este paquete con la misma configuración?'; $wb['filter_txt'] = 'Buscar'; $wb['delete_txt'] = 'Eliminar'; -$wb['reinstall_txt'] = 'Reinstalar'; ?> diff --git a/interface/web/sites/lib/lang/fi_aps_instances_list.lng b/interface/web/sites/lib/lang/fi_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/fi_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/fi_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps_instances_list.lng b/interface/web/sites/lib/lang/fr_aps_instances_list.lng index 6a2dba1e84c72745faac5cfdb30e456f2e598556..63145b04f3a5d8e412ee9a92b7fd494b41df917d 100644 --- a/interface/web/sites/lib/lang/fr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/fr_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Statut'; $wb['install_location_txt'] = 'Chemin d\'installation'; $wb['pkg_delete_confirmation'] = 'Etes-vous sûr de vouloir supprimer cette installation ?'; -$wb['pkg_reinstall_confirmation'] = 'Etes-vous sûr de vouloir réinstaller ce package avec la même configuration ?'; $wb['filter_txt'] = 'Chercher'; $wb['delete_txt'] = 'Supprimer'; -$wb['reinstall_txt'] = 'Réinstaller'; ?> diff --git a/interface/web/sites/lib/lang/hr_aps_instances_list.lng b/interface/web/sites/lib/lang/hr_aps_instances_list.lng index 2d737a6f7a820cef9a1a254a41a4a018ea8a7971..5215f3596cc944be04bfeb2de3849d1c87fe6281 100644 --- a/interface/web/sites/lib/lang/hr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/hr_aps_instances_list.lng @@ -6,10 +6,8 @@ $wb['customer_txt'] = 'Klijent'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Lokacija instalacije'; $wb['pkg_delete_confirmation'] = 'Da li stvarno želite obrisati ovu instalaciju?'; -$wb['pkg_reinstall_confirmation'] = 'Da li stvarno želite reinstalirati ovaj paket sa istim postavkama?'; $wb['filter_txt'] = 'Traži'; $wb['delete_txt'] = 'ObriÅ¡i'; -$wb['reinstall_txt'] = 'Reinstaliraj'; ?> diff --git a/interface/web/sites/lib/lang/hu_aps_instances_list.lng b/interface/web/sites/lib/lang/hu_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/hu_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/hu_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/id_aps_instances_list.lng b/interface/web/sites/lib/lang/id_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/id_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/id_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/it_aps_instances_list.lng b/interface/web/sites/lib/lang/it_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/it_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/it_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/ja_aps_instances_list.lng b/interface/web/sites/lib/lang/ja_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/ja_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/ja_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/nl_aps_instances_list.lng b/interface/web/sites/lib/lang/nl_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/nl_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/nl_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/pl_aps_instances_list.lng b/interface/web/sites/lib/lang/pl_aps_instances_list.lng index 186dc7dc1a965f8af22f9627e4efa70ba6d27f61..b587dc74e8e4dd8fb0e96ba09889ad5a656e147a 100644 --- a/interface/web/sites/lib/lang/pl_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/pl_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Klient'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Lokalizacja instalacji'; $wb['pkg_delete_confirmation'] = 'Na pewno chcesz usunąć tÄ™ instalacjÄ™?'; -$wb['pkg_reinstall_confirmation'] = 'Na pewno chcesz przeinstalować ten pakiet z tymi samymi ustawieniami?'; $wb['filter_txt'] = 'Szukaj'; $wb['delete_txt'] = 'UsuÅ„'; -$wb['reinstall_txt'] = 'Przeinstaluj'; ?> diff --git a/interface/web/sites/lib/lang/pt_aps_instances_list.lng b/interface/web/sites/lib/lang/pt_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/pt_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/pt_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/ro_aps_instances_list.lng b/interface/web/sites/lib/lang/ro_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/ro_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/ro_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps_instances_list.lng b/interface/web/sites/lib/lang/ru_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/ru_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/ru_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/se_aps_instances_list.lng b/interface/web/sites/lib/lang/se_aps_instances_list.lng index a9428aa737cddf82caa51be17abb3a06d26ff1a1..ae2791d639dd06b1be0a9ba8706827651803ed68 100644 --- a/interface/web/sites/lib/lang/se_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/se_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Kund'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Installationsplats'; $wb['pkg_delete_confirmation'] = 'Vill du verkligen radera denna installation?'; -$wb['pkg_reinstall_confirmation'] = 'Vill du verkligen installera om det här paketet med samma inställningar?'; $wb['filter_txt'] = 'Sök'; $wb['delete_txt'] = 'Radera'; -$wb['reinstall_txt'] = 'Ominstallera'; ?> diff --git a/interface/web/sites/lib/lang/sk_aps_instances_list.lng b/interface/web/sites/lib/lang/sk_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/sk_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/sk_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps_instances_list.lng b/interface/web/sites/lib/lang/tr_aps_instances_list.lng index 052d834a7174000d1bdc2e1d87354299a5906f2a..5742b7a6e9bb2f6063c4b62a5ba4bb5dbb3fcbb2 100644 --- a/interface/web/sites/lib/lang/tr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/tr_aps_instances_list.lng @@ -6,8 +6,6 @@ $wb['customer_txt'] = 'Client'; $wb['status_txt'] = 'Status'; $wb['install_location_txt'] = 'Install location'; $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; $wb['filter_txt'] = 'Search'; $wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; ?> diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php index 5b3a2f84adf1ebd3994d342f28c59573135cb5bb..b6d506a1573eefd9d41d7b7287583f26ae5af321 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -189,6 +189,13 @@ $items[] = array( 'title' => 'Database quota', 'link' => 'sites/database_quota_stats.php', 'html_id' => 'databse_quota_stats'); +$items[] = array ( + 'title' => 'Backup Stats', + 'target' => 'content', + 'link' => 'sites/backup_stats.php', + 'html_id' => 'backup_stats' +); + $module['nav'][] = array( 'title' => 'Statistics', 'open' => 1, 'items' => $items); diff --git a/interface/web/sites/lib/remote.conf.php b/interface/web/sites/lib/remote.conf.php index 30e41b929220b2ef939bccacaa71d1543ddc946d..5ba2b7d6fa15cd0bd02eac9b0ece38da936be4cc 100644 --- a/interface/web/sites/lib/remote.conf.php +++ b/interface/web/sites/lib/remote.conf.php @@ -8,6 +8,6 @@ $function_list['sites_web_domain_get,sites_web_domain_add,sites_web_domain_updat $function_list['sites_web_domain_backup'] = 'Sites Backup functions'; $function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; $function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; - +$function_list['sites_aps_update_package_list,sites_aps_available_packages_list,sites_aps_install_package,sites_aps_get_package_details,sites_aps_get_package_file,sites_aps_get_package_settings,sites_aps_instance_get,sites_aps_instance_delete''] = 'Sites APS functions'; ?> diff --git a/interface/web/sites/list/backup_stats.list.php b/interface/web/sites/list/backup_stats.list.php new file mode 100644 index 0000000000000000000000000000000000000000..cc7358b99748b1ae8957bce61b6b28f872a7d723 --- /dev/null +++ b/interface/web/sites/list/backup_stats.list.php @@ -0,0 +1,52 @@ +<?php +// Name of the list +$liste["name"] = "backup_stats"; + +// Database table +$liste["table"] = "web_domain"; + +// Index index field of the database table +$liste["table_idx"] = "domain_id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = "15"; + +// Script File of the list +$liste["file"] = "backup_stats.php"; + +// Script file of the edit form +$liste["edit_file"] = "backup_stats_edit.php"; + +// Paging Template +$liste["paging_tpl"] = "templates/paging.tpl.htm"; + +// Enable auth +$liste["auth"] = "yes"; + +// mark columns for php sorting (no real mySQL columns) +$liste["phpsort"] = array('used_sort', 'files'); + + +/***************************************************** +* Suchfelder +*****************************************************/ + +$liste['item'][] = array ( + 'field' => 'server_id', + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'op' => '=', + 'prefix' => '', + 'width' => '', + 'value' => '', + 'suffix' => '', + 'datasource' => array ( + 'type' => 'SQL', + 'querystring' => 'SELECT a.server_id, a.server_name FROM server a, web_domain b WHERE (a.server_id = b.server_id) ORDER BY a.server_name', + 'keyfield' => 'server_id', + 'valuefield' => 'server_name' + ) +); diff --git a/interface/web/sites/templates/aps_instances_list.htm b/interface/web/sites/templates/aps_instances_list.htm index bb659999f3baace9bd9b95b12075375eeaa15404..7adc149948471e3447b85170c3ef7a9f131b2630 100644 --- a/interface/web/sites/templates/aps_instances_list.htm +++ b/interface/web/sites/templates/aps_instances_list.htm @@ -42,10 +42,7 @@ <tmpl_if name='delete_possible'> <a class="btn btn-default formbutton-delete" href="javascript: del_record('sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}','{tmpl_var name='pkg_delete_confirmation'}')">{tmpl_var name='delete_txt'}</button> </tmpl_if> - <tmpl_if name='reinstall_possible'> - <a class="btn btn-default formbutton-default" href="javascript: del_record('sites/aps_do_operation.php?action=reinstall_instance&id={tmpl_var name='id'}','{tmpl_var name='pkg_reinstall_confirmation'}')">{tmpl_var name='reinstall_txt'}</button> - </tmpl_if> - </td> + </td> </tr> </tmpl_loop> </tbody> diff --git a/interface/web/sites/templates/backup_stats_list.htm b/interface/web/sites/templates/backup_stats_list.htm new file mode 100644 index 0000000000000000000000000000000000000000..5e42335bfdf3b2cbb31a565b0d9a506203969874 --- /dev/null +++ b/interface/web/sites/templates/backup_stats_list.htm @@ -0,0 +1,48 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_backup_stats"> + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr class="caption"> + <th class="tbl_col_active" scope="col"> + <tmpl_var name="active_txt"> + </th> + <th class="tbl_col_domain" scope="col"> + <tmpl_var name="domain_txt"> + </th> + <th class="tbl_col_server" scope="col"> + <tmpl_var name="backup_server_txt"> + </th> + <th class="tbl_col_interval" scope="col"> + <tmpl_var name="backup_interval_txt"> + </th> + <th class="tbl_col_backup_count" scope="col"> + <tmpl_var name="backup_count_txt"> + </th> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_{tmpl_if name='__EVEN__'}even{tmpl_else}uneven{/tmpl_if}"> + <td class="tbl_col_active"> <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a> </td> + <td class="tbl_col_domain"> <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a> </td> + <td class="tbl_col_server"> <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a> </td> + <td class="tbl_col_interval"> <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="backup_interval"}</a> / <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="backup_copies"}</a> </td> + <td class="tbl_col_backup_count"> <a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="backup_copies_exists"}</a> </td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="5"> + <tmpl_var name="paging"> + </td> + </tr> + </tfoot> + </table> + </fieldset> + </div> +</div> diff --git a/remoting_client/API-docs/navigation.html b/remoting_client/API-docs/navigation.html index e0eebb000eaa73a80d86a910d108edb3b99e2e26..6829df5ca897bec72fb5fd5d0bcf084517953088 100644 --- a/remoting_client/API-docs/navigation.html +++ b/remoting_client/API-docs/navigation.html @@ -196,6 +196,15 @@ <h3>S</h3> <p><a href="server_get.html" target="content">server_get</a></p> <p><a href="server_get_serverid_by_ip.html" target="content">server_get_serverid_by_ip</a></p> +<p><a href="sites_aps_available_packages_list.html" target="content">sites_aps_available_packages_list</a></p> +<p><a href="sites_aps_get_package_details.html" target="content">sites_aps_get_package_details</a></p> +<p><a href="sites_aps_get_package_file.html" target="content">sites_aps_get_package_file</a></p> +<p><a href="sites_aps_get_package_settings.html" target="content">sites_aps_get_package_settings</a></p> +<p><a href="sites_aps_install_package.html" target="content">sites_aps_install_package</a></p> +<p><a href="sites_aps_instance_get.html" target="content">sites_aps_instance_get</a></p> +<p><a href="sites_aps_instance_delete.html" target="content">sites_aps_instance_delete</a></p> +<p><a href="sites_aps_instance_settings_get.html" target="content">sites_aps_instance_settings_get</a></p> +<p><a href="sites_aps_update_package_list.html" target="content">sites_aps_update_package_list</a></p> <p><a href="sites_cron_add.html" target="content">sites_cron_add</a></p> <p><a href="sites_cron_delete.html" target="content">sites_cron_delete</a></p> <p><a href="sites_cron_get.html" target="content">sites_cron_get</a></p> @@ -226,7 +235,7 @@ <p><a href="sites_web_domain_get.html" target="content">sites_web_domain_get</a></p> <p><a href="sites_web_domain_set_status.html" target="content">sites_web_domain_set_status</a></p> <p><a href="sites_web_domain_update.html" target="content">sites_web_domain_update</a></p> - p><a href="sites_web_domain_backup_list.html" target="content">sites_web_domain_backup_list</a></p> +<p><a href="sites_web_domain_backup_list.html" target="content">sites_web_domain_backup_list</a></p> <p><a href="sites_web_domain_backup.html" target="content">sites_web_domain_backup</a></p> <p><a href="sites_web_subdomain_add.html" target="content">sites_web_subdomain_add</a></p> <p><a href="sites_web_subdomain_delete.html" target="content">sites_web_subdomain_delete</a></p> diff --git a/remoting_client/API-docs/sites_aps_available_packages_list.html b/remoting_client/API-docs/sites_aps_available_packages_list.html new file mode 100644 index 0000000000000000000000000000000000000000..1d069debc9e4a3807d922bcac3d21501ce666bf3 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_available_packages_list.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_available_packages_list(<span class="var">$session_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Reads all available packages with state PACKAGE_ENABLED. If set param all_packages to true, also includes PACKAGE_LOCKED.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> all_packages (<span class="paratype">boolean</span>) </p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns array with all selected package records.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_get_package_details.html b/remoting_client/API-docs/sites_aps_get_package_details.html new file mode 100644 index 0000000000000000000000000000000000000000..56049d8b13901b1c33e752d9d36f6657c65c48a0 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_get_package_details.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_get_package_details(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Gets all possible details for selected package.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns array with all details of selected package.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_get_package_file.html b/remoting_client/API-docs/sites_aps_get_package_file.html new file mode 100644 index 0000000000000000000000000000000000000000..9a6472db07616a91483d8fb894d97a4555036c2f --- /dev/null +++ b/remoting_client/API-docs/sites_aps_get_package_file.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_get_package_file(<span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$filename</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Gets the file with given name (like screenshots or icon) of the selected package. Use sites_aps_get_package_details to get all available files of this package.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$filename</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns base64_encoded file content of selected file.<br />Use the followoing example code to save file content over remote api:<br /><span class="var">file_put_contents($file, base64_decode(sites_aps_get_package_file($session_id, $primary_id, $filename)));</span></p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_get_package_settings.html b/remoting_client/API-docs/sites_aps_get_package_settings.html new file mode 100644 index 0000000000000000000000000000000000000000..4a47c9b9dd9715c3b0a8b714cf23be0d280c50d6 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_get_package_settings.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_get_package_settings(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Gets all possible settings for selected package.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns array with all settings of selected package.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_install_package.html b/remoting_client/API-docs/sites_aps_install_package.html new file mode 100644 index 0000000000000000000000000000000000000000..340dc8253f84cedd4258c620d179b7917998ea55 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_install_package.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_install_package(<span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Starts installation of the selected package in given main_domains webfolder.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> main_domain (<span class="paratype">varchar(255)</span>) </p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns new instance id or false.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_instance_delete.html b/remoting_client/API-docs/sites_aps_instance_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..654a3c5df9235e838be97738f4bfd4019b252805 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_instance_delete.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_instance_delete(<span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Starts deletion of the selected APS instance. If param keep_database is set true, database will not be deleted.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> keep_database (<span class="paratype">boolean</span>) </p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns true if deletion is started.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_instance_get.html b/remoting_client/API-docs/sites_aps_instance_get.html new file mode 100644 index 0000000000000000000000000000000000000000..64bfbe51e813eb77face9b944205531423ad50e1 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_instance_get.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_instance_get(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Gets record of given instance id.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns record of APS instance.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_instance_settings_get.html b/remoting_client/API-docs/sites_aps_instance_settings_get.html new file mode 100644 index 0000000000000000000000000000000000000000..bf793d892d69d1f2d3c77b3dd165ad5da14a3e24 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_instance_settings_get.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_instance_settings_get(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Gets record of given instance ids settings.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns record of APS instance settings.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_aps_update_package_list.html b/remoting_client/API-docs/sites_aps_update_package_list.html new file mode 100644 index 0000000000000000000000000000000000000000..e581a723008927ce5e1f2512ef1c27603f221ef3 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_update_package_list.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_update_package_list(<span class="var">$session_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Update available package list. Starts the ApsCrawler in server mode. May take a while.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> always true</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/server/conf/bastille-firewall.cfg.master b/server/conf/bastille-firewall.cfg.master index b2b65362538bf23d83c325189c3c531ca6ef03e7..2bb1bf28e1f78fc6a0d4aab055aea7709be87f12 100644 --- a/server/conf/bastille-firewall.cfg.master +++ b/server/conf/bastille-firewall.cfg.master @@ -75,7 +75,7 @@ DNS_SERVERS="{DNS_SERVERS}" # use the "\" continuation character (so Bastille can change the # values if it is run more than once) TRUSTED_IFACES="lo" # MINIMAL/SAFEST -PUBLIC_IFACES="eth+ ppp+ slip+ venet+ bond+" # SAFEST +PUBLIC_IFACES="eth+ ppp+ slip+ venet+ bond+ eno+" # SAFEST INTERNAL_IFACES="" # SAFEST diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 089c7ab22a6535d2e437d1ba8fd20179c5fd8b57..fbb807968e16a083c7c963205faf8427a000c624 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -376,7 +376,7 @@ class ApsInstaller extends ApsBase setups get enough time to create the database */ if($this->handle_type == 'install') { for($n = 1; $n < 15; $n++) { - $link = mysql_connect($newdb_host, $newdb_login, $newdb_pw); + $link = mysqli_connect($newdb_host, $newdb_login, $newdb_pw); if (!$link) { unset($link); sleep(5); diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index 2473afe26fe37073893ce2b9897f34990efdfeb7..ac937f9fc7cd85284aa384392af81d8630630e42 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -75,10 +75,10 @@ class cronjob_backup_mail extends cronjob { foreach($records as $rec) { //* Do the mailbox backup if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) { - $email = $rec['email']; - $email=explode("@",$email)[1]; - $domain_rec=$app->db->queryOneRecord("SELECT * FROM mail_domain WHERE domain = ?", $email); - unset($email); + $temp = explode("@",$email); + $domain = $temp[1]; + unset($temp);; + $domain_rec=$app->db->queryOneRecord("SELECT * FROM mail_domain WHERE domain = ?", $domain); $mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id']; if(!is_dir($mail_backup_dir)) mkdir($mail_backup_dir, 0750); diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 3e00ada4a99906ded7986f74a1869a82657c6f8b..9fb927ee7e3e695038569aa5124b08f7beaaba56 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -143,7 +143,12 @@ class mail_plugin_dkim { mkdir($mail_config['dkim_path'], 0755, true); $app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path'], LOGLEVEL_WARNING); } - } + } else { + if (!$app->system->checkpath($mail_config['dkim_path'])) { + $app->log('Unable to write DKIM settings - invalid DKIM-Path (symlink?)', LOGLEVEL_ERROR); + $check=false; + } + } if (!is_writeable($mail_config['dkim_path'])) { $app->log('DKIM Path '.$mail_config['dkim_path'].' not writeable.', LOGLEVEL_ERROR);