From 42539643c396f9d8865dcf9a51b13dc869709d16 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Wed, 13 Aug 2014 07:16:50 -0400 Subject: [PATCH] Merge remote-tracking branch 'ispc/stable-3.0.5' into stable-3.0.5 --- interface/web/help/lib/lang/se_support_message.lng | 1 interface/web/dns/lib/lang/se_dns_template_list.lng | 1 interface/web/admin/lib/lang/se_language_edit.lng | 1 interface/web/sites/lib/lang/se_ftp_user.lng | 3 interface/web/sites/lib/lang/se_web_backup_list.lng | 1 interface/web/admin/lib/lang/es_server_config.lng | 52 interface/web/sites/lib/lang/fr_shell_user.lng | 3 interface/web/sites/lib/lang/se_web_domain.lng | 1 interface/web/mail/lib/lang/se_mail_user_filter.lng | 1 interface/web/mailuser/lib/lang/se_mail_user_cc.lng | 1 interface/web/admin/lib/lang/de_server_config.lng | 52 interface/web/admin/lib/lang/nl_server_config.lng | 52 interface/web/designer/lib/lang/se_form_show.lng | 1 interface/web/sites/lib/lang/en_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/se_web_sites_stats_list.lng | 1 interface/web/admin/lib/lang/se_software_package_list.lng | 1 interface/web/sites/lib/lang/nl_web_folder_list.lng | 1 interface/web/sites/lib/lang/se_database_list.lng | 1 interface/web/admin/lib/lang/se_remote_user_list.lng | 1 interface/web/admin/lib/lang/se_groups.lng | 1 interface/web/help/lib/lang/se.lng | 1 interface/web/admin/lib/lang/se_language_list.lng | 1 interface/web/designer/lib/lang/se.lng | 1 interface/web/client/lib/lang/fr_client.lng | 2 interface/web/sites/lib/lang/fr_aps.lng | 16 interface/web/sites/lib/lang/ja_shell_user.lng | 3 interface/web/dns/lib/lang/en_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/hu_ftp_user.lng | 2 interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng | 1 interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng | 11 install/tpl/opensuse_postfix.conf.master | 6 interface/web/admin/templates/server_config_server_edit.htm | 4 interface/web/sites/lib/lang/cz_web_folder_list.lng | 1 interface/web/admin/language_edit.php | 2 install/tpl/apps_php_fpm_pool.conf.master | 2 interface/web/admin/lib/lang/ru_server_config.lng | 52 install/lib/install.lib.php | 21 interface/web/mailuser/lib/lang/se_index.lng | 1 interface/web/admin/lib/lang/se_system_config.lng | 3 interface/web/sites/lib/lang/ar_web_folder_list.lng | 1 interface/web/sites/lib/lang/id_shell_user.lng | 3 server/plugins-available/shelluser_jailkit_plugin.inc.php | 14 server/plugins-available/cron_jailkit_plugin.inc.php | 16 docs/autoinstall_samples/autoinstall.ini.sample | 50 interface/web/admin/lib/lang/en_server_config.lng | 52 server/scripts/ispconfig_update.php | 4 interface/web/sites/lib/lang/id_ftp_user.lng | 2 interface/web/admin/lib/lang/se_server_ip_list.lng | 1 interface/web/dns/lib/lang/es_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_mail_alias.lng | 1 interface/web/sites/lib/lang/sk_web_folder_list.lng | 1 interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng | 10 interface/web/dns/lib/lang/se_dns_txt.lng | 1 interface/web/mail/lib/lang/se_mail_get_list.lng | 1 interface/web/sites/lib/lang/se_webdav_user.lng | 1 interface/web/strengthmeter/lib/lang/se_strengthmeter.lng | 1 interface/web/vm/lib/lang/se.lng | 1 interface/web/admin/lib/lang/se_software_package.lng | 1 interface/web/sites/lib/lang/cz_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/fr_web_folder_user_list.lng | 1 interface/web/admin/lib/lang/hu_server_config.lng | 52 interface/web/admin/lib/lang/el_server_config.lng | 52 server/plugins-available/apache2_plugin.inc.php | 35 interface/web/tools/lib/lang/se_index.lng | 1 interface/web/help/lib/lang/se_faq_form.lng | 1 interface/web/dns/lib/lang/se_dns_import.lng | 1 interface/web/mail/lib/lang/se_mail_forward.lng | 1 interface/web/sites/lib/lang/ar_web_folder_user_list.lng | 1 interface/web/sites/web_vhost_subdomain_edit.php | 2 interface/lib/classes/session.inc.php | 21 interface/web/sites/lib/lang/se_database_user.lng | 1 interface/web/sites/lib/lang/sk_web_folder_user_list.lng | 1 interface/web/dns/lib/lang/br_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_mail_aliasdomain.lng | 1 interface/lib/config.inc.php | 2 interface/web/sites/lib/lang/hr_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/hu_shell_user.lng | 3 interface/web/dns/lib/lang/se_dns_a_list.lng | 1 interface/web/sites/lib/lang/it_ftp_user.lng | 2 interface/web/tools/lib/lang/se_interface.lng | 1 interface/web/mail/lib/lang/se_mail_user_filter_list.lng | 1 interface/web/designer/lib/lang/se_module_nav_item_edit.lng | 1 interface/web/sites/lib/lang/el_ftp_user.lng | 2 interface/web/help/lib/lang/se_faq_manage_questions_list.lng | 1 interface/web/admin/lib/lang/se.lng | 1 interface/web/sites/lib/lang/pl_web_folder_list.lng | 1 interface/web/admin/lib/lang/ro_server_config.lng | 52 interface/web/sites/lib/lang/hu_web_folder_list.lng | 1 install/tpl/opensuse_dovecot-sql.conf.master | 4 server/plugins-available/nginx_plugin.inc.php | 16 install/tpl/apache_ispconfig.conf.master | 3 interface/web/admin/lib/lang/br_server_config.lng | 52 interface/web/admin/lib/lang/hr_server_config.lng | 52 interface/web/sites/lib/lang/bg_ftp_user.lng | 2 interface/web/sites/lib/lang/ja_web_folder_user_list.lng | 1 interface/web/monitor/lib/lang/se_syslog_list.lng | 1 interface/web/designer/lib/lang/se_form_list.lng | 1 interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng | 11 interface/web/dns/lib/lang/se_dns_mx.lng | 1 interface/web/admin/lib/lang/se_remote_user.lng | 1 server/plugins-available/cron_plugin.inc.php | 9 install/tpl/gentoo_postfix.conf.master | 2 interface/web/dns/lib/lang/se_dns_hinfo.lng | 1 interface/web/admin/lib/lang/se_firewall_list.lng | 1 server/plugins-available/shelluser_base_plugin.inc.php | 14 interface/web/mailuser/lib/lang/se_mail_user_filter.lng | 1 interface/web/sites/lib/lang/se_aps_update_packagelist.lng | 1 interface/web/sites/lib/lang/bg_shell_user.lng | 3 interface/lib/classes/validate_password.inc.php | 5 interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng | 11 interface/web/admin/lib/lang/ja_server_config.lng | 52 interface/web/mail/lib/lang/se_mail_get.lng | 3 interface/web/sites/web_aliasdomain_edit.php | 10 interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_spamfilter_blacklist.lng | 1 interface/web/admin/lib/lang/tr_server_config.lng | 52 interface/lib/classes/validate_domain.inc.php | 137 - interface/web/monitor/lib/lang/se_datalog_list.lng | 1 interface/web/dns/lib/lang/el_dns_slave_admin_list.lng | 10 server/conf/vhost.conf.master | 40 interface/web/sites/lib/lang/se_aps.lng | 17 interface/web/tools/lib/lang/se.lng | 1 interface/web/sites/lib/lang/hr_web_folder_list.lng | 1 interface/web/dns/lib/lang/se_dns_slave_list.lng | 1 interface/web/help/lib/lang/se_support_message_list.lng | 1 interface/web/sites/lib/lang/nl_shell_user.lng | 3 interface/web/admin/lib/lang/se_server_config.lng | 53 interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_spamfilter_users.lng | 1 interface/web/mail/lib/lang/se_spamfilter_config_list.lng | 1 interface/web/sites/lib/lang/es_shell_user.lng | 3 interface/web/admin/form/system_config.tform.php | 2 interface/web/sites/lib/lang/ro_ftp_user.lng | 2 interface/web/mail/lib/lang/se_mail_relay_recipient.lng | 1 interface/web/sites/lib/lang/el_shell_user.lng | 3 interface/web/sites/lib/lang/en_web_folder_list.lng | 1 interface/web/dns/lib/lang/it_dns_slave_admin_list.lng | 10 interface/web/sites/lib/lang/de_web_folder_list.lng | 1 interface/web/sites/lib/lang/id_web_folder_user_list.lng | 1 interface/web/admin/lib/lang/fr_system_config.lng | 2 interface/web/mail/form/mail_whitelist.tform.php | 2 interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng | 1 interface/web/client/lib/lang/se_client_template_list.lng | 1 interface/web/sites/lib/lang/fi_shell_user.lng | 3 interface/web/sites/lib/lang/se_database_user_admin_list.lng | 1 interface/web/sites/lib/lang/tr_ftp_user.lng | 2 interface/web/admin/lib/lang/se_language_complete.lng | 1 interface/web/sites/lib/lang/el_web_folder_list.lng | 1 interface/web/mail/lib/lang/se_mail_domain.lng | 1 interface/web/designer/lib/lang/se_form_edit.lng | 1 install/tpl/fedora_dovecot-sql.conf.master | 4 interface/web/dns/lib/lang/se_dns_wizard.lng | 1 interface/web/mail/lib/lang/se_mail_domain_list.lng | 1 install/dist/lib/opensuse.lib.php | 12 interface/web/sites/lib/lang/fi_web_folder_list.lng | 1 interface/web/sites/web_domain_edit.php | 6 interface/web/admin/lib/lang/se_tpl_default_admin.lng | 1 interface/web/admin/lib/lang/cz_server_config.lng | 52 interface/web/sites/lib/lang/se.lng | 3 interface/web/mail/lib/lang/se_mail_alias_list.lng | 1 interface/web/vm/lib/lang/se_openvz_template_list.lng | 1 interface/lib/app.inc.php | 6 server/plugins-available/firewall_plugin.inc.php | 30 interface/web/vm/lib/lang/se_openvz_ip_list.lng | 1 server/lib/classes/ispcmail.inc.php | 869 ++++++++++ interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng | 1 install/dist/lib/fedora.lib.php | 10 interface/web/dns/lib/lang/se_dns_a.lng | 1 interface/web/admin/lib/lang/se_users_list.lng | 1 interface/web/dns/lib/lang/it_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/se_database_user_list.lng | 1 install/lib/installer_base.lib.php | 52 interface/web/sites/lib/lang/se_web_domain_list.lng | 1 interface/web/mail/lib/lang/se_mail_content_filter.lng | 1 interface/web/sites/form/ftp_user.tform.php | 21 interface/web/sites/lib/lang/id_web_folder_list.lng | 1 interface/web/client/lib/lang/se_domain_list.lng | 1 interface/web/sites/lib/lang/se_aps_packages_list.lng | 1 interface/web/dns/lib/lang/id_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_mail_blacklist_list.lng | 1 interface/web/client/lib/lang/se_domain.lng | 1 interface/web/dns/lib/lang/se.lng | 1 interface/web/admin/lib/lang/se_software_package_install.lng | 1 interface/web/dns/lib/lang/se_dns_srv.lng | 1 interface/web/mail/lib/lang/se_mail_forward_list.lng | 1 interface/web/admin/lib/lang/se_language_import.lng | 1 interface/web/admin/lib/lang/se_remote_action.lng | 1 interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng | 1 interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng | 1 interface/web/sites/lib/lang/tr_web_folder_user_list.lng | 1 interface/web/dns/lib/lang/se_dns_aaaa.lng | 1 interface/web/sites/lib/lang/bg_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/en_ftp_user.lng | 2 interface/web/admin/lib/lang/se_server.lng | 1 interface/web/mail/lib/lang/se_mail_transport_list.lng | 1 interface/web/sites/lib/lang/se_database.lng | 1 interface/web/mail/mail_domain_edit.php | 11 interface/web/mail/lib/lang/fr_mail_get.lng | 2 interface/web/admin/lib/lang/se_directive_snippets_list.lng | 1 interface/web/client/lib/lang/se_client_circle.lng | 1 interface/web/admin/lib/lang/it_server_config.lng | 52 install/tpl/fedora_postfix.conf.master | 4 interface/web/client/lib/lang/se_client_circle_list.lng | 1 interface/web/monitor/lib/lang/se.lng | 1 interface/web/sites/lib/lang/ro_web_folder_user_list.lng | 1 interface/web/dns/list/dns_slave.list.php | 22 interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng | 11 interface/web/client/lib/lang/se_client_message_template.lng | 1 interface/web/mail/mail_user_edit.php | 3 interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng | 10 interface/web/tools/lib/lang/se_tpl_default.lng | 1 interface/web/mailuser/lib/lang/se.lng | 1 interface/web/mailuser/mail_user_password_edit.php | 3 server/plugins-available/mysql_clientdb_plugin.inc.php | 11 interface/web/tools/lib/lang/se_import_ispconfig.lng | 1 interface/web/sites/lib/lang/pt_shell_user.lng | 3 interface/web/admin/lib/lang/se_software_repo.lng | 1 interface/web/vm/lib/lang/se_openvz_ostemplate.lng | 1 interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng | 10 interface/web/sites/lib/lang/de_ftp_user.lng | 2 server/plugins-available/backup_plugin.inc.php | 4 interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_mail_spamfilter_list.lng | 1 interface/web/admin/lib/lang/fi_server_config.lng | 52 interface/web/themes/default_no_navimg/templates/main.tpl.htm | 1 interface/web/sites/lib/lang/tr_web_folder_list.lng | 1 interface/web/sites/lib/lang/se_webdav_user_list.lng | 1 interface/web/admin/lib/lang/el_system_config.lng | 2 docs/autoinstall_samples/autoinstall.conf_sample.php | 52 interface/web/client/lib/lang/se_client_message.lng | 1 interface/web/sites/lib/lang/se_ftp_user_list.lng | 1 interface/web/vm/lib/lang/se_openvz_vm.lng | 1 interface/web/admin/lib/lang/se_directive_snippets.lng | 1 install/tpl/debian_dovecot-sql.conf.master | 4 interface/web/admin/lib/lang/se_server_php_list.lng | 1 install/tpl/debian_postfix.conf.master | 4 interface/web/designer/lib/lang/se_module_show.lng | 1 interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng | 11 interface/web/mail/lib/lang/se_mail_content_filter_list.lng | 1 interface/web/sites/lib/lang/fr.lng | 2 server/lib/classes/monitor_tools.inc.php | 21 interface/web/sites/lib/lang/se_aps_instances_list.lng | 1 interface/web/client/lib/lang/se_client_template.lng | 1 interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng | 10 interface/web/designer/lib/lang/se_module_nav_edit.lng | 1 interface/web/dns/lib/lang/se_dns_ns.lng | 1 interface/web/themes/default-304/templates/main.tpl.htm | 1 interface/web/client/lib/lang/se_client.lng | 3 interface/web/help/lib/lang/se_faq_sections_form.lng | 1 interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng | 10 interface/web/sites/form/database.tform.php | 4 interface/web/mail/lib/lang/se_user_quota_stats_list.lng | 1 interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng | 10 interface/web/sites/lib/lang/se_web_folder.lng | 1 interface/web/sites/lib/lang/ar_ftp_user.lng | 2 server/lib/classes/system.inc.php | 65 interface/web/dns/templates/dns_soa_admin_list.htm | 86 + interface/lib/lang/el.lng | 2 interface/web/sites/lib/lang/se_cron.lng | 1 interface/web/themes/default_combobox/templates/main.tpl.htm | 1 interface/web/sites/lib/lang/fi_ftp_user.lng | 2 interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng | 10 interface/web/dns/lib/lang/se_dns_soa.lng | 1 install/install.php | 111 interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng | 1 interface/web/sites/lib/lang/br_ftp_user.lng | 2 interface/web/dns/lib/lang/el_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/el_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/fr_web_subdomain.lng | 2 interface/web/dns/lib/lang/de_dns_soa_admin_list.lng | 11 interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng | 1 interface/web/dashboard/lib/lang/se_dashlet_modules.lng | 1 interface/web/sites/lib/lang/se_web_aliasdomain.lng | 1 install/sql/ispconfig3.sql | 8 interface/web/admin/lib/lang/pl_server_config.lng | 52 interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng | 1 interface/web/mail/lib/lang/se_mail_user.lng | 1 interface/web/sites/lib/lang/ja_ftp_user.lng | 2 interface/web/client/lib/lang/se_reseller.lng | 1 interface/web/dns/lib/lang/es_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/en_shell_user.lng | 3 interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng | 11 interface/web/js/scrigo.js.php | 2 interface/web/sites/lib/lang/bg_web_folder_list.lng | 1 interface/web/sites/lib/lang/br_shell_user.lng | 3 interface/web/vm/lib/lang/se_openvz_vm_list.lng | 1 interface/web/sites/lib/lang/se_database_admin_list.lng | 1 interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng | 10 interface/web/mail/lib/lang/se_mail_domain_catchall.lng | 1 interface/web/sites/lib/lang/ru_web_folder_user_list.lng | 1 interface/web/admin/lib/lang/se_server_list.lng | 1 interface/web/themes/blue/ispconfig_version | 2 interface/web/admin/lib/lang/se_server_php.lng | 1 interface/web/mail/lib/lang/se_mail_mailinglist_list.lng | 1 interface/web/mail/lib/lang/se_mail_transport.lng | 1 interface/web/admin/lib/lang/sk_server_config.lng | 52 server/conf/apps_php_fpm_pool.conf.master | 2 interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/it_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/es_web_folder_list.lng | 1 interface/web/admin/lib/lang/id_server_config.lng | 52 interface/web/sites/lib/lang/se_web_subdomain_list.lng | 1 interface/web/dns/lib/lang/se_dns_slave.lng | 1 interface/web/admin/lib/lang/se_software_update_list.lng | 1 interface/web/sites/lib/lang/ja_web_folder_list.lng | 1 interface/web/dns/lib/lang/se_dns_cname.lng | 1 interface/web/dns/lib/lang/se_dns_soa_admin_list.lng | 11 interface/web/mail/form/mail_user_filter.tform.php | 2 interface/web/admin/form/server_config.tform.php | 368 +++- interface/web/mail/lib/lang/se_mail_blacklist.lng | 1 interface/web/sites/lib/lang/se_web_vhost_subdomain.lng | 1 interface/web/dns/lib/lang/de_dns_slave_admin_list.lng | 10 interface/web/sites/shell_user_edit.php | 7 interface/web/sites/lib/lang/se_cron_list.lng | 1 interface/web/sites/form/shell_user.tform.php | 27 interface/web/sites/lib/lang/tr_shell_user.lng | 3 interface/web/sites/lib/lang/se_web_aliasdomain_list.lng | 1 interface/web/sites/lib/lang/hr_shell_user.lng | 3 server/cron_daily.php | 12 interface/web/admin/lib/lang/fr_server_config.lng | 52 interface/web/designer/lib/lang/se_module_edit.lng | 1 interface/web/themes/default/templates/main.tpl.htm | 1 interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/cz_shell_user.lng | 3 interface/web/sites/lib/lang/sk_ftp_user.lng | 2 interface/web/sites/lib/lang/se_shell_user_list.lng | 1 interface/web/client/lib/lang/fr_reseller.lng | 2 interface/web/client/lib/lang/se.lng | 1 interface/web/help/lib/lang/se_help_faq_sections_list.lng | 1 interface/web/vm/lib/lang/se_openvz_template.lng | 1 interface/web/dns/list/dns_soa.list.php | 22 interface/web/admin/lib/lang/ar_server_config.lng | 52 interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng | 10 interface/lib/classes/aps_guicontroller.inc.php | 2 interface/web/client/lib/lang/se_client_del.lng | 1 interface/web/sites/lib/lang/es_ftp_user.lng | 2 interface/web/sites/lib/lang/se_web_folder_user.lng | 1 interface/web/sites/lib/lang/se_user_quota_stats_list.lng | 1 interface/lib/classes/validate_systemuser.inc.php | 64 interface/web/sites/lib/lang/se_web_subdomain.lng | 3 interface/web/dns/templates/dns_slave_admin_list.htm | 83 + interface/web/dns/lib/lang/se_dns_alias.lng | 1 interface/web/mail/lib/lang/se_mail_whitelist.lng | 1 interface/web/sites/lib/lang/ru_shell_user.lng | 3 interface/web/admin/lib/lang/se_server_config_list.lng | 1 interface/web/sites/lib/lang/fi_web_folder_user_list.lng | 1 interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/de_web_folder_user_list.lng | 1 interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng | 1 install/tpl/php_fpm_pool.conf.master | 2 interface/web/dns/lib/lang/br_dns_soa_admin_list.lng | 11 interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng | 11 interface/web/admin/lib/lang/se_package_install.lng | 1 interface/web/admin/lib/lang/se_iptables.lng | 1 interface/web/sites/lib/lang/br_web_folder_user_list.lng | 1 interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng | 10 install/tpl/debian6_dovecot-sql.conf.master | 4 interface/web/sites/lib/lang/ro_shell_user.lng | 3 interface/web/client/lib/lang/se_clients_list.lng | 1 interface/web/mail/lib/lang/se_spamfilter_whitelist.lng | 1 interface/web/sites/lib/lang/ro_web_folder_list.lng | 1 interface/web/dashboard/lib/lang/se_dashlet_limits.lng | 1 interface/web/dns/lib/lang/se_dns_soa_list.lng | 1 interface/web/mail/lib/lang/se_mail_mailinglist.lng | 1 interface/web/dashboard/lib/lang/se_dashlet_quota.lng | 1 interface/web/sites/lib/lang/se_web_domain_admin_list.lng | 1 interface/web/mail/lib/lang/se_mail_domain_admin_list.lng | 1 interface/web/admin/lib/lang/se_software_repo_list.lng | 1 interface/web/sites/lib/lang/fr_web_folder_list.lng | 1 interface/web/vm/lib/lang/se_openvz_action.lng | 1 interface/web/sites/lib/lang/ru_web_folder_list.lng | 1 interface/web/admin/lib/lang/se_language_export.lng | 1 interface/web/mail/lib/lang/se_spamfilter_config.lng | 1 server/plugins-available/mail_plugin.inc.php | 14 interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/se_web_folder_user_list.lng | 2 interface/web/mail/lib/lang/se_spamfilter_policy_list.lng | 1 interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng | 11 interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng | 10 interface/web/tools/lib/lang/se_usersettings.lng | 1 interface/web/sites/lib/lang/de_shell_user.lng | 3 server/conf/apache_ispconfig.conf.master | 2 interface/web/mail/lib/lang/se_mail_user_stats_list.lng | 1 install/sql/incremental/upd_0078.sql | 1 interface/lib/classes/tform.inc.php | 10 interface/web/sites/lib/lang/it_shell_user.lng | 3 interface/web/dns/lib/lang/se_dns_template.lng | 1 interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng | 10 interface/web/admin/templates/users_list.htm | 2 interface/web/sites/lib/lang/se_shell_user.lng | 4 server/plugins-available/bind_dlz_plugin.inc.php | 10 interface/web/admin/lib/lang/bg_server_config.lng | 52 interface/web/sites/lib/lang/cz_ftp_user.lng | 2 interface/lib/lang/fr.lng | 2 install/tpl/config.inc.php.master | 2 interface/web/sites/lib/lang/hr_ftp_user.lng | 2 interface/web/sites/lib/lang/pt_web_folder_user_list.lng | 1 interface/web/vm/lib/lang/se_openvz_ip.lng | 1 install/update.php | 73 interface/web/client/lib/lang/se_resellers_list.lng | 1 interface/web/sites/lib/lang/pl_shell_user.lng | 3 interface/web/sites/lib/lang/nl_web_folder_user_list.lng | 1 interface/web/dns/lib/lang/en_dns_slave_admin_list.lng | 10 interface/web/sites/lib/lang/br_web_folder_list.lng | 1 interface/web/mail/lib/lang/se_spamfilter_policy.lng | 1 server/plugins-available/network_settings_plugin.inc.php | 51 interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng | 1 interface/web/themes/default_64_navimg/templates/main.tpl.htm | 1 interface/web/sites/ftp_user_edit.php | 7 interface/lib/lang/se.lng | 3 interface/lib/classes/auth.inc.php | 2 interface/web/dashboard/lib/lang/se.lng | 1 interface/web/mailuser/lib/lang/se_mail_user_password.lng | 1 interface/web/sites/web_subdomain_edit.php | 9 interface/web/client/lib/lang/se_client_message_template_list.lng | 1 interface/web/designer/lib/lang/se_module_list.lng | 1 interface/web/dns/lib/lang/se_dns_ptr.lng | 1 interface/web/sites/lib/lang/ru_ftp_user.lng | 2 interface/web/admin/lib/lang/se_firewall.lng | 1 interface/lib/classes/functions.inc.php | 28 interface/web/dns/lib/lang/id_dns_soa_admin_list.lng | 11 interface/web/mail/lib/lang/se.lng | 1 interface/web/admin/lib/lang/se_iptables_list.lng | 1 interface/web/mail/lib/lang/se_spamfilter_users_list.lng | 1 interface/web/dns/lib/lang/se_dns_slave_admin_list.lng | 10 interface/web/sites/lib/lang/ar_shell_user.lng | 3 interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng | 11 interface/web/client/lib/lang/el_reseller.lng | 2 install/tpl/server.ini.master | 1 interface/web/login/lib/lang/se.lng | 1 interface/web/admin/lib/lang/se_language_add.lng | 1 interface/web/sites/lib/lang/fr_ftp_user.lng | 2 interface/web/admin/lib/lang/se_server_ip.lng | 1 interface/web/help/lib/lang/se_help_faq_list.lng | 1 interface/web/sites/lib/lang/sk_shell_user.lng | 3 interface/web/sites/lib/lang/nl_ftp_user.lng | 2 interface/web/sites/lib/lang/se_web_folder_list.lng | 2 interface/web/sites/lib/lang/hu_web_folder_user_list.lng | 1 interface/lib/classes/listform.inc.php | 6 interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng | 1 interface/web/sites/lib/lang/pl_ftp_user.lng | 2 interface/web/login/lib/lang/se_login_as.lng | 7 interface/web/dns/lib/lang/se_dns_rp.lng | 1 install/dist/lib/gentoo.lib.php | 10 interface/web/admin/lib/lang/se_groups_list.lng | 1 interface/web/themes/blue/templates/main.tpl.htm | 1 interface/web/sites/lib/lang/pt_web_folder_list.lng | 1 interface/web/sites/lib/lang/it_web_folder_list.lng | 1 interface/web/admin/lib/lang/se_users.lng | 1 /dev/null | 12 interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng | 11 interface/web/sites/lib/lang/pl_web_folder_user_list.lng | 1 interface/web/mail/lib/lang/se_mail_user_list.lng | 1 install/dist/lib/debian60.lib.php | 1 interface/web/sites/lib/lang/es_web_folder_user_list.lng | 1 interface/web/sites/lib/lang/pt_ftp_user.lng | 2 interface/web/admin/lib/lang/pt_server_config.lng | 52 interface/web/mail/lib/lang/se_mail_spamfilter.lng | 1 interface/web/mail/lib/lang/se_mail_whitelist_list.lng | 1 460 files changed, 4,088 insertions(+), 719 deletions(-) diff --git a/docs/autoinstall_samples/autoinstall.conf_sample.php b/docs/autoinstall_samples/autoinstall.conf_sample.php new file mode 100644 index 0000000..ccd36aa --- /dev/null +++ b/docs/autoinstall_samples/autoinstall.conf_sample.php @@ -0,0 +1,52 @@ +<?php +$autoinstall['language'] = 'en'; // de, en (default) +$autoinstall['install_mode'] = 'standard'; // standard (default), expert + +$autoinstall['hostname'] = 'server1.example.com'; // default +$autoinstall['mysql_hostname'] = 'localhost'; // default: localhost +$autoinstall['mysql_root_user'] = 'root'; // default: root +$autoinstall['mysql_root_password'] = 'howtoforge'; +$autoinstall['mysql_database'] = 'dbispconfig'; // default: dbispcongig +$autoinstall['mysql_charset'] = 'utf8'; // default: utf8 +$autoinstall['http_server'] = 'nginx'; // apache (default), nginx +$autoinstall['ispconfig_port'] = '8080'; // default: 8080 +$autoinstall['ispconfig_use_ssl'] = 'y'; // y (default), n + +/* SSL Settings */ +$autoinstall['ssl_cert_country'] = 'AU'; +$autoinstall['ssl_cert_state'] = 'Some-State'; +$autoinstall['ssl_cert_locality'] = 'Chicago'; +$autoinstall['ssl_cert_organisation'] = 'Internet Widgits Pty Ltd'; +$autoinstall['ssl_cert_organisation_unit'] = 'IT department'; +$autoinstall['ssl_cert_common_name'] = $autoinstall['hostname']; + +/* optional expert mode settings, needed only for expert mode */ +$autoinstall['mysql_ispconfig_user'] = 'ispconfig'; // default: ispconfig +$autoinstall['mysql_ispconfig_password'] = md5(uniqid(rand())); +$autoinstall['join_multiserver_setup'] = 'n'; // y, n (default) +$autoinstall['mysql_master_hostname'] = 'master.example.com'; +$autoinstall['mysql_master_root_user'] = 'root'; +$autoinstall['mysql_master_root_password'] = 'howtoforge'; +$autoinstall['mysql_master_database'] = 'dbispconfig'; // default: dbispconfig +$autoinstall['configure_mail'] = 'y'; // y (default), n +$autoinstall['configure_jailkit'] = 'y'; // y (default), n +$autoinstall['configure_ftp'] = 'y'; // y (default), n +$autoinstall['configure_dns'] = 'y'; // y (default), n +$autoinstall['configure_apache'] = 'y'; // y (default), n +$autoinstall['configure_nginx'] = 'y'; // y (default), n +$autoinstall['configure_firewall'] = 'y'; // y (default), n +$autoinstall['install_ispconfig_web_interface'] = 'y'; // y (default), n + +/* optional update settings, needed only for updates */ +$autoupdate['do_backup'] = 'yes'; // yes (default), no +$autoupdate['mysql_root_password'] = 'howtoforge'; +$autoupdate['mysql_master_hostname'] = 'master.example.com'; +$autoupdate['mysql_master_root_user'] = 'root'; +$autoupdate['mysql_master_root_password'] = 'howtoforge'; +$autoupdate['mysql_master_database'] = 'dbispconfig'; // default: dbispconfig +$autoupdate['reconfigure_permissions_in_master_database'] = 'no'; // no (default), yes +$autoupdate['reconfigure_services'] = 'yes'; // yes (default), no +$autoupdate['ispconfig_port'] = '8080'; // default: 8080 +$autoupdate['create_new_ispconfig_ssl_cert'] = 'no'; // no (default), yes +$autoupdate['reconfigure_crontab'] = 'yes'; // yes (default), no +?> \ No newline at end of file diff --git a/docs/autoinstall_samples/autoinstall.ini.sample b/docs/autoinstall_samples/autoinstall.ini.sample new file mode 100644 index 0000000..1f4d9d7 --- /dev/null +++ b/docs/autoinstall_samples/autoinstall.ini.sample @@ -0,0 +1,50 @@ +[install] +language=en +install_mode=standard +hostname=server1.example.com +mysql_hostname=localhost +mysql_root_user=root +mysql_root_password=ispconfig +mysql_database=dbispconfig +mysql_charset=utf8 +http_server=apache +ispconfig_port=8080 +ispconfig_use_ssl=y + +[ssl_cert] +ssl_cert_country=AU +ssl_cert_state=Some-State +ssl_cert_locality=Chicago +ssl_cert_organisation=Internet Widgits Pty Ltd +ssl_cert_organisation_unit=IT department +ssl_cert_common_name=server1.example.com + +[expert] +mysql_ispconfig_user=ispconfig +mysql_ispconfig_password=afStEratXBsgatRtsa42CadwhQ +join_multiserver_setup=n +mysql_master_hostname=master.example.com +mysql_master_root_user=root +mysql_master_root_password=ispconfig +mysql_master_database=dbispconfig +configure_mail=y +configure_jailkit=y +configure_ftp=y +configure_dns=y +configure_apache=y +configure_nginx=y +configure_firewall=y +install_ispconfig_web_interface=y + +[update] +do_backup=yes +mysql_root_password=ispconfig +mysql_master_hostname=master.example.com +mysql_master_root_user=root +mysql_master_root_password=ispconfig +mysql_master_database=dbispconfig +reconfigure_permissions_in_master_database=no +reconfigure_services=yes +ispconfig_port=8080 +create_new_ispconfig_ssl_cert=no +reconfigure_crontab=yes \ No newline at end of file diff --git a/install/autoupdate.php b/install/autoupdate.php deleted file mode 100644 index 8960e13..0000000 --- a/install/autoupdate.php +++ /dev/null @@ -1,338 +0,0 @@ -<?php -/* -Copyright (c) 2007-2010, 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. -*/ - -/* - ISPConfig 3 updater. -*/ - -die("Autoupdate has been removed.\nPlease start the update on the shell with the command ispconfig_update.sh as root user.\n"); - -error_reporting(E_ALL|E_STRICT); - -/* - * If the auto-updater flag is not on (the file does not exist) then cancel the auto-update! -*/ -if (!file_exists('autoupdate')) { - - //** The banner on the command line - echo "\n\n".str_repeat('-', 80)."\n"; - echo " _____ ___________ _____ __ _ ____ -|_ _/ ___| ___ \ / __ \ / _(_) /__ \ - | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / - | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | - _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ - \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ - __/ | - |___/ "; - echo "\n".str_repeat('-', 80)."\n"; - echo "\n\n>>This script is for internal use only! Please use update.php! \n\n"; - exit; -} - -//** Include the library with the basic installer functions -require_once 'lib/install.lib.php'; - -//** Include the library with the basic updater functions -require_once 'lib/update.lib.php'; - -//** Include the base class of the installer class -require_once 'lib/installer_base.lib.php'; - -//** Ensure that current working directory is install directory -$cur_dir = getcwd(); -if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); - -//** Install logfile -define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); -define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); - -//** Get distribution identifier -$dist = get_distname(); - -include_once "/usr/local/ispconfig/server/lib/config.inc.php"; -$conf_old = $conf; -unset($conf); - -if($dist['id'] == '') die('Linux distribution or version not recognized.'); - -//** Include the distribution-specific installer class library and configuration -if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; -include_once 'dist/lib/'.$dist['id'].'.lib.php'; -include_once 'dist/conf/'.$dist['id'].'.conf.php'; - -//** Get hostname -exec('hostname -f', $tmp_out); -$conf['hostname'] = $tmp_out[0]; -unset($tmp_out); - -//** Set the mysql login information -$conf["mysql"]["host"] = $conf_old["db_host"]; -$conf["mysql"]["database"] = $conf_old["db_database"]; -$conf['mysql']['charset'] = 'utf8'; -$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; -$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; -$conf['language'] = $conf_old['language']; -if($conf['language'] == '{language}') $conf['language'] = 'en'; - -if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; -if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; -if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; -if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; - -//* Check if this is a master / slave setup -$conf['mysql']['master_slave_setup'] = 'n'; -if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { - $conf['mysql']['master_slave_setup'] = 'y'; -} - -// Resolve the IP address of the mysql hostname. -if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); - -$conf['server_id'] = intval($conf_old["server_id"]); -$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; - -$inst = new installer(); -$inst->is_update = true; - -//** Detect the installed applications -$inst->find_installed_apps(); - -//** Initialize the MySQL server connection -include_once 'lib/mysql.lib.php'; - -//** Database update is a bit brute force and should be rebuild later ;) - -/* - * Try to read the DB-admin settings - */ -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; -include_once "/usr/local/ispconfig/server/lib/mysql_clientdb.conf"; -$conf["mysql"]["admin_user"] = $clientdb_user; -$conf["mysql"]["admin_password"] = $clientdb_password; -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; - -//** There is a error if user for mysql admin_password if empty -if( empty($conf["mysql"]["admin_password"]) ) { - die("internal error - MYSQL-Root passord not known"); -} - -//** Test mysql root connection -if(!@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) { - die("internal error - MYSQL-Root passord wrong"); -} - -/* - * Check all tables -*/ -checkDbHealth(); - -/* - * Prepare the dump of the database -*/ -prepareDBDump(); - -//* initialize the database -$inst->db = new db(); - -/* - * The next line is a bit tricky! - * At the automated update we have no connection to the master-db (we don't need it, because - * there are only TWO points, where this is needed) - * 1) update the rights --> the autoupdater sets the rights of all clients when the server is - * autoupdated) - * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates - * doesn't change any of this settings, so there ist no need to update this. - * This means, the autoupdater did not need any connection to the master-db (only to the local bd - * of the master-server). To avoid any problems, we set the master-db to the local one. - */ -$inst->dbmaster = $inst->db; - -/* - * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights -*/ -if($conf['mysql']['master_slave_setup'] != 'y') { - $inst->grant_master_database_rights(true); -} - -/* - * dump the new Database and reconfigure the server.ini - */ -updateDbAndIni(); - -/* - * Reconfigure all Services - */ -if($conf['services']['mail'] == true) { - //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); - - //** Configure mailman - if($conf['mailman']['installed'] == true) { - swriteln('Configuring Mailman'); - $inst->configure_mailman('update'); - } - - //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - - if($conf['dovecot']['installed'] == true) { - //* Configure dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - //** Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //** Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //** Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); -} - -if($conf['services']['web'] == true) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); -} - -if($conf['services']['dns'] == true) { - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - } -} - -if($conf['services']['web']) { - if($conf['webserver']['server_type'] == 'apache'){ - //** Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure vlogger - swriteln('Configuring vlogger'); - $inst->configure_vlogger(); - } else { - //** Configure nginx - swriteln('Configuring nginx'); - $inst->configure_nginx(); - } - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); -} - - -//* Configure DBServer -swriteln('Configuring Database'); -$inst->configure_dbserver(); - - -//if(@is_dir('/etc/Bastille')) { -//* Configure Firewall -swriteln('Configuring Firewall'); -$inst->configure_firewall(); -//} - -//** Configure ISPConfig -swriteln('Updating ISPConfig'); - - -//** Customise the port ISPConfig runs on -$conf['apache']['vhost_port'] = get_ispconfig_port_number(); - -$inst->install_ispconfig(); - -//** Configure Crontab -swriteln('Updating Crontab'); -$inst->install_crontab(); - -//** Restart services: -swriteln('Restarting services ...'); -if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'reload')); -if($conf['services']['mail']) { - if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); - if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); - if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); - if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); - if($conf['courier']['installed'] == true){ - if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); - if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart')); - if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart')); - if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart')); - if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart')); - } - if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart')); - if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system($inst->getinitcommand($conf['mailman']['init_script'], 'restart')); -} -if($conf['services']['web']) { - if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart')); - //* Reload is enough for nginx - if($conf['webserver']['server_type'] == 'nginx' && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload')); - if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); -} -if($conf['services']['dns']) { - if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null'); - if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null'); - if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null'); -} - -echo "Update finished.\n"; - -?> diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 42da878..4932723 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -111,6 +111,7 @@ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf($config_dir.'/'.$configfile, $content); chmod($config_dir.'/'.$configfile, 0600); diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 87fadb0..7a08f93 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -229,8 +229,13 @@ if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".$autoinstall['ssl_cert_country']."/ST=".$autoinstall['ssl_cert_state']."/L=".$autoinstall['ssl_cert_locality']."/O=".$autoinstall['ssl_cert_organisation']."/OU=".$autoinstall['ssl_cert_organisation_unit']."/CN=".$autoinstall['ssl_cert_common_name']."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; @@ -445,6 +450,7 @@ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf("$config_dir/$configfile", $content); exec("chmod 600 $config_dir/$configfile"); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index b14cffe..4200a01 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -119,9 +119,13 @@ //* Create the SSL certificate if (!stristr($options, 'dont-create-certs')) { - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; - exec($command); + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 6e6a618..f990e91 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -125,6 +125,7 @@ //* Create aliasaes exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); } function configure_postfix($options = '') @@ -256,9 +257,13 @@ if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; - exec($command); + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); @@ -494,6 +499,7 @@ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf("$config_dir/$configfile", $content); exec("chmod 600 $config_dir/$configfile"); diff --git a/install/install.php b/install/install.php index 796b027..108ed05 100644 --- a/install/install.php +++ b/install/install.php @@ -30,6 +30,30 @@ /* ISPConfig 3 installer. + + ------------------------------------------------------------------------------------- + - Interactive install + ------------------------------------------------------------------------------------- + run: + + php install.php + + ------------------------------------------------------------------------------------- + - Noninteractive (autoinstall) mode + ------------------------------------------------------------------------------------- + + The autoinstall mode can read the installer questions from a .ini style file or from + a php config file. Examples for both file types are in the docs folder. + See autoinstall.ini.sample and autoinstall.conf_sample.php. + + run: + + php install.php --autoinstall=autoinstall.ini + + or + + php install.php --autoinstall=autoinstall.conf.php + */ error_reporting(E_ALL|E_STRICT); @@ -78,6 +102,30 @@ if($dist['id'] == '') die('Linux distribution or version not recognized.'); +//** Include the autoinstaller configuration (for non-interactive setups) +error_reporting(E_ALL ^ E_NOTICE); + +//** Get commandline options +$cmd_opt = getopt('', array('autoinstall::')); + +//** Load autoinstall file +if(isset($cmd_opt['autoinstall']) && is_file($cmd_opt['autoinstall'])) { + $path_parts = pathinfo($cmd_opt['autoinstall']); + if($path_parts['extension'] == 'php') { + include_once $cmd_opt['autoinstall']; + } elseif($path_parts['extension'] == 'ini') { + $tmp = ini_to_array(file_get_contents('autoinstall.ini')); + $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update']; + unset($tmp); + } + unset($path_parts); + define('AUTOINSTALL', true); +} else { + $autoinstall = array(); + define('AUTOINSTALL', false); +} + + //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; include_once 'dist/lib/'.$dist['id'].'.lib.php'; @@ -109,7 +157,7 @@ $inst->find_installed_apps(); //** Select the language and set default timezone -$conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en'); +$conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en','language'); $conf['timezone'] = get_system_timezone(); //* Set default theme @@ -117,13 +165,13 @@ $conf['language_file_import_enabled'] = true; //** Select installation mode -$install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard'); +$install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard','install_mode'); //** Get the hostname $tmp_out = array(); exec('hostname -f', $tmp_out); -$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0]); +$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0],'hostname'); unset($tmp_out); // Check if the mysql functions are loaded in PHP @@ -132,16 +180,17 @@ //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']); - $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset']); - + $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host'],'mysql_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user'],'mysql_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database'],'mysql_database'); + $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset'],'mysql_charset'); + if($install_mode == 'expert') { swriteln("The next two questions are about the internal ISPConfig database user and password.\nIt is recommended to accept the defaults which are 'ispconfig' as username and a random password.\nIf you use a different password, use only numbers and chars for the password.\n"); - $conf['mysql']['ispconfig_user'] = $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user']); - $conf['mysql']['ispconfig_password'] = $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password']); + + $conf['mysql']['ispconfig_user'] = $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user'],'mysql_ispconfig_user'); + $conf['mysql']['ispconfig_password'] = $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password'],'mysql_ispconfig_password'); } //* Initialize the MySQL server connection @@ -176,7 +225,7 @@ //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server'); if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -293,12 +342,12 @@ swriteln('Installing ISPConfig'); //** Customize the port ISPConfig runs on - $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080'); + $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') { $inst->make_ispconfig_ssl_cert(); } @@ -354,17 +403,16 @@ //** Get Server ID // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1'); // Server ID is an autoInc value of the mysql database now - - if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n')) == 'y') { + if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n','join_multiserver_setup')) == 'y') { $conf['mysql']['master_slave_setup'] = 'y'; //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database'); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -397,7 +445,7 @@ //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server'); if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -410,8 +458,7 @@ swriteln(''); $inst->add_database_server_record(); - - if(strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y') ) == 'y') { + if(strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y','configure_mail') ) == 'y') { $conf['services']['mail'] = true; @@ -470,20 +517,20 @@ } //** Configure Jailkit - if(strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y') ) == 'y') { + if(strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y','configure_jailkit') ) == 'y') { swriteln('Configuring Jailkit'); $inst->configure_jailkit(); } //** Configure Pureftpd - if(strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y') ) == 'y') { + if(strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y','configure_ftp') ) == 'y') { swriteln('Configuring Pureftpd'); $inst->configure_pureftpd(); if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); } //** Configure DNS - if(strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y','configure_dns')) == 'y') { $conf['services']['dns'] = true; //* Configure DNS if($conf['powerdns']['installed'] == true) { @@ -522,7 +569,7 @@ //** Configure Apache if($conf['apache']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n"); - if(strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y','configure_apache')) == 'y') { $conf['services']['web'] = true; swriteln('Configuring Apache'); $inst->configure_apache(); @@ -540,7 +587,7 @@ //** Configure nginx if($conf['nginx']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure nginx Server' option.\n"); - if(strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y','configure_nginx')) == 'y') { $conf['services']['web'] = true; swriteln('Configuring nginx'); $inst->configure_nginx(); @@ -556,7 +603,7 @@ } //** Configure Firewall - if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y','configure_firewall')) == 'y') { //if($conf['bastille']['installed'] == true) { //* Configure Bastille Firewall $conf['services']['firewall'] = true; @@ -579,7 +626,7 @@ //** Configure ISPConfig :-) $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y'; - if(strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default)) == 'y') { + if(strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') { swriteln('Installing ISPConfig'); //** We want to check if the server is a module or cgi based php enabled server @@ -597,12 +644,12 @@ */ //** Customise the port ISPConfig runs on - $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080'); + $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { + if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') { $inst->make_ispconfig_ssl_cert(); } diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 379ae78..04205cc 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -86,6 +86,15 @@ $mainver = array_filter($mainver); $mainver = current($mainver).'.'.next($mainver); switch ($mainver){ + case "14.04": + $relname = "(Trusty Tahr)"; + break; + case "13.10": + $relname = "(Saucy Salamander)"; + break; + case "13.04": + $relname = "(Raring Ringtail)"; + break; case "12.10": $relname = "(Quantal Quetzal)"; break; @@ -246,6 +255,18 @@ $distid = 'centos53'; $distbaseid = 'fedora'; swriteln("Operating System: CentOS 5 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 6')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 6 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 7')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 7 or compatible\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 7d6348b..548cf93 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -56,12 +56,21 @@ echo 'WARNING: '.$msg."\n"; } - public function simple_query($query, $answers, $default) { + public function simple_query($query, $answers, $default, $name = '') { + global $autoinstall; $finished = false; do { - $answers_str = implode(',', $answers); - swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); - $input = sread(); + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } else { + $answers_str = implode(',', $answers); + swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); + $input = sread(); + } //* Stop the installation if($input == 'quit') { @@ -86,9 +95,18 @@ return $answer; } - public function free_query($query, $default) { - swrite($this->lng($query).' ['.$default.']: '); - $input = sread(); + public function free_query($query, $default, $name = '') { + global $autoinstall; + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } else { + swrite($this->lng($query).' ['.$default.']: '); + $input = sread(); + } //* Stop the installation if($input == 'quit') { @@ -638,7 +656,7 @@ } public function configure_postfix($options = '') { - global $conf; + global $conf,$autoinstall; $cf = $conf['postfix']; $config_dir = $cf['config_dir']; @@ -750,8 +768,13 @@ if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; @@ -992,6 +1015,7 @@ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf($config_dir.'/'.$configfile, $content); chmod($config_dir.'/'.$configfile, 0600); @@ -1671,7 +1695,7 @@ } public function make_ispconfig_ssl_cert() { - global $conf; + global $conf,$autoinstall; $install_dir = $conf['ispconfig_install_dir']; @@ -1683,7 +1707,11 @@ $ssl_pw = substr(md5(mt_rand()), 0, 6); exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + if(AUTOINSTALL){ + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -key $ssl_key_file -out $ssl_csr_file"); + } else { + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + } exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); rename($ssl_key_file, $ssl_key_file.'.secure'); diff --git a/install/sql/incremental/upd_0078.sql b/install/sql/incremental/upd_0078.sql new file mode 100644 index 0000000..39b8c1c --- /dev/null +++ b/install/sql/incremental/upd_0078.sql @@ -0,0 +1 @@ +ALTER TABLE `web_domain` DROP INDEX `serverdomain`, ADD UNIQUE `serverdomain` ( `server_id` , `ip_address`, `domain` ); \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 21c0644..ab5f795 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -897,8 +897,8 @@ `login` varchar(255) NOT NULL default '', `password` varchar(255) NOT NULL default '', `name` varchar(255) NOT NULL default '', - `uid` int(11) unsigned NOT NULL default '5000', - `gid` int(11) unsigned NOT NULL default '5000', + `uid` int(11) NOT NULL default '5000', + `gid` int(11) NOT NULL default '5000', `maildir` varchar(255) NOT NULL default '', `quota` bigint(20) NOT NULL default '-1', `cc` varchar(255) NOT NULL default '', @@ -1879,7 +1879,7 @@ `added_date` date NOT NULL DEFAULT '0000-00-00', `added_by` varchar(255) DEFAULT NULL, PRIMARY KEY (`domain_id`), - UNIQUE KEY `serverdomain` ( `server_id` , `domain` ) + UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2292,7 +2292,7 @@ -- Dumping data for table `sys_config` -- -INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p1'); +INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p2'); INSERT INTO sys_config VALUES ('interface','session_timeout','0'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index be6f637..cd9924a 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -3,7 +3,7 @@ # ISPConfig Logfile configuration for vlogger ################################################ -LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig +LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig <Directory /var/www/clients> @@ -18,6 +18,7 @@ # Do not allow access to the root file system of the server for security reasons <Directory /> + Options -Indexes AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all denied diff --git a/install/tpl/apps_php_fpm_pool.conf.master b/install/tpl/apps_php_fpm_pool.conf.master index ce6a92f..7997e9b 100644 --- a/install/tpl/apps_php_fpm_pool.conf.master +++ b/install/tpl/apps_php_fpm_pool.conf.master @@ -9,7 +9,7 @@ group = {fpm_group} pm = dynamic -pm.max_children = 50 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index bae6061..6f40a1c 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -56,7 +56,7 @@ //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p1'); +define('ISPC_APP_VERSION', '3.0.5.4p2'); define('DEVSYSTEM', 0); diff --git a/install/tpl/debian6_dovecot-sql.conf.master b/install/tpl/debian6_dovecot-sql.conf.master index 86eb4df..61f86c4 100644 --- a/install/tpl/debian6_dovecot-sql.conf.master +++ b/install/tpl/debian6_dovecot-sql.conf.master @@ -13,8 +13,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/debian_dovecot-sql.conf.master b/install/tpl/debian_dovecot-sql.conf.master index 9c55df3..a4d5bbd 100644 --- a/install/tpl/debian_dovecot-sql.conf.master +++ b/install/tpl/debian_dovecot-sql.conf.master @@ -120,8 +120,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index e17880e..4775002 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -1,7 +1,7 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf, hash:/var/lib/mailman/data/virtual-mailman +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -11,7 +11,7 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/fedora_dovecot-sql.conf.master b/install/tpl/fedora_dovecot-sql.conf.master index faf3be2..769e0a4 100644 --- a/install/tpl/fedora_dovecot-sql.conf.master +++ b/install/tpl/fedora_dovecot-sql.conf.master @@ -133,8 +133,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 0911f2a..330b1f9 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -1,5 +1,5 @@ virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf, hash:/etc/mailman/virtual-mailman +virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -8,7 +8,7 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index 90ed285..a775c4b 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -8,7 +8,7 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/opensuse_dovecot-sql.conf.master b/install/tpl/opensuse_dovecot-sql.conf.master index e33603a..57515af 100644 --- a/install/tpl/opensuse_dovecot-sql.conf.master +++ b/install/tpl/opensuse_dovecot-sql.conf.master @@ -133,8 +133,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 90ed285..7baa703 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -1,5 +1,7 @@ +alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases +alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -8,7 +10,7 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/php_fpm_pool.conf.master b/install/tpl/php_fpm_pool.conf.master index dfa3059..9cde75a 100644 --- a/install/tpl/php_fpm_pool.conf.master +++ b/install/tpl/php_fpm_pool.conf.master @@ -9,7 +9,7 @@ group = {fpm_group} pm = dynamic -pm.max_children = 10 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index dcac580..8af63c3 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -16,7 +16,6 @@ admin_notify_events=1 backup_dir=/var/backup backup_dir_is_mount=n -backup_dir_mount_cmd= backup_mode=rootgz monit_url= monit_user= diff --git a/install/update.php b/install/update.php index 6a1b9d1..36eb201 100644 --- a/install/update.php +++ b/install/update.php @@ -30,6 +30,30 @@ /* ISPConfig 3 updater. + + ------------------------------------------------------------------------------------- + - Interactive update + ------------------------------------------------------------------------------------- + run: + + php update.php + + ------------------------------------------------------------------------------------- + - Noninteractive (autoupdate) mode + ------------------------------------------------------------------------------------- + + The autoupdate mode can read the updater questions from a .ini style file or from + a php config file. Examples for both file types are in the docs folder. + See autoinstall.ini.sample and autoinstall.conf_sample.php. + + run: + + php update.php --autoinstall=autoinstall.ini + + or + + php update.php --autoinstall=autoinstall.conf.php + */ error_reporting(E_ALL|E_STRICT); @@ -83,6 +107,29 @@ if($dist['id'] == '') die('Linux distribution or version not recognized.'); +//** Include the autoinstaller configuration (for non-interactive setups) +error_reporting(E_ALL ^ E_NOTICE); + +//** Get commandline options +$cmd_opt = getopt('', array('autoinstall::')); + +//** Load autoinstall file +if(isset($cmd_opt['autoinstall']) && is_file($cmd_opt['autoinstall'])) { + $path_parts = pathinfo($cmd_opt['autoinstall']); + if($path_parts['extension'] == 'php') { + include_once $cmd_opt['autoinstall']; + } elseif($path_parts['extension'] == 'ini') { + $tmp = ini_to_array(file_get_contents('autoinstall.ini')); + $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update']; + unset($tmp); + } + unset($path_parts); + define('AUTOINSTALL', true); +} else { + $autoinstall = array(); + define('AUTOINSTALL', false); +} + //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; include_once 'dist/lib/'.$dist['id'].'.lib.php'; @@ -131,7 +178,8 @@ echo "This application will update ISPConfig 3 on your server.\n\n"; //* Make a backup before we start the update -$do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes'); +$do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes','do_backup'); + if($do_backup == 'yes') { //* Create the backup directory @@ -180,7 +228,7 @@ $finished = true; } else { swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); - $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); + $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password'); } } while ($finished == false); unset($finished); @@ -198,10 +246,10 @@ //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database'); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -244,7 +292,7 @@ */ //if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') { //** Update master database rights -$reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no'); +$reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no','reconfigure_permissions_in_master_database'); if($reconfigure_master_database_rights_answer == 'yes') { $inst->grant_master_database_rights(); @@ -252,7 +300,7 @@ //} //** Shall the services be reconfigured during update -$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes'); +$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services'); if($reconfigure_services_answer == 'yes') { @@ -379,15 +427,16 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { //** Customise the port ISPConfig runs on $ispconfig_port_number = get_ispconfig_port_number(); + if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number; if($conf['webserver']['server_type'] == 'nginx'){ - $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); + $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port'); } else { - $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); + $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port'); } // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n'; - if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no')) == 'yes') { + if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') { $inst->make_ispconfig_ssl_cert(); } } @@ -395,7 +444,7 @@ $inst->install_ispconfig(); //** Configure Crontab -$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes'); +$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab'); if($update_crontab_answer == 'yes') { swriteln('Updating Crontab'); $inst->install_crontab(); diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 1d80b8a..8832f45 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -78,16 +78,16 @@ $tmp = $this->ini_parser->parse_ini_string(stripslashes($tmp['config'])); if(!isset($tmp['misc']['session_allow_endless']) || $tmp['misc']['session_allow_endless'] != 'y') { $this->session->set_timeout($sess_timeout); - session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } else { // we are doing login here, so we need to set the session data $this->session->set_permanent(true); $this->session->set_timeout(365 * 24 * 3600); // one year - session_set_cookie_params(365 * 24 * 3600); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } } else { $this->session->set_timeout($sess_timeout); - session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } } else { session_set_cookie_params(0); // until browser is closed diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index 7c4208f..f6a0ff4 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -333,7 +333,7 @@ } //* Insert new package instance - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->db->quote($websrv['sys_perm_group'])."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id'); //* Insert all package settings diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 706dd04..070662f 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -50,7 +50,7 @@ $userid = $app->functions->intval($userid); $client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); - if($client['limit_client'] > 0) { + if($client['limit_client'] != 0) { return true; } else { return false; diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 5f62f52..8fed767 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -248,7 +248,7 @@ } $ips = array(); - $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$type."'"); + $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$app->db->quote($type)."'"); if(!empty($results) && is_array($results)){ foreach($results as $result){ if(preg_match($regex, $result['ip'])){ @@ -424,6 +424,32 @@ return implode("\n", $domains); } + public function is_allowed_user($username, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($username,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; + + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; + + return true; + } + + public function is_allowed_group($groupname, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($groupname,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; + + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; + + return true; + } + } ?> diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php index 14c1a13..1b613a9 100644 --- a/interface/lib/classes/listform.inc.php +++ b/interface/lib/classes/listform.inc.php @@ -97,6 +97,7 @@ $querystring = str_replace("{AUTHSQL}", $app->tform->getAuthSQL('r'), $querystring); $querystring = str_replace("{AUTHSQL-A}", $app->tform->getAuthSQL('r', 'a'), $querystring); $querystring = str_replace("{AUTHSQL-B}", $app->tform->getAuthSQL('r', 'b'), $querystring); + $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', create_function('$matches','global $app; $tmp = $app->tform->getAuthSQL("r", $matches[1]); return $tmp;'), $querystring); //* Getting the records $tmp_records = $app->db->queryAllRecords($querystring); @@ -248,6 +249,8 @@ public function getPagingSQL($sql_where = '1') { global $app, $conf; + + $old_search_limit = intval($_SESSION['search']['limit']); //* Add Global Limit from selectbox if(!empty($_POST['search_limit']) and $app->functions->intval($_POST['search_limit']) > 0){ @@ -272,6 +275,9 @@ //* set PAGE to worth request variable "PAGE" - ? setze page auf wert der request variablen "page" if(isset($_REQUEST["page"])) $_SESSION["search"][$list_name]["page"] = $app->functions->intval($_REQUEST["page"]); + + //* Set search to changed when search limit has been changed. + if(intval($_SESSION['search']['limit']) != $old_search_limit) $this->searchChanged = 1; //* PAGE to 0 set, if look for themselves ? page auf 0 setzen, wenn suche sich ge�ndert hat. if($this->searchChanged == 1) $_SESSION['search'][$list_name]['page'] = 0; diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php index dcb187b..8b3a7cf 100644 --- a/interface/lib/classes/session.inc.php +++ b/interface/lib/classes/session.inc.php @@ -88,25 +88,21 @@ // Dont write session_data to DB if session data has not been changed after reading it. if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) { $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); - $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'"); + $this->db->query("UPDATE sys_session SET last_updated = NOW() WHERE session_id = '$session_id'"); return true; } if (@$this->session_array['session_id'] == '') { $session_id = $this->db->quote($session_id); - $date_created = date('Y-m-d H:i:s'); - $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); - $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id','$date_created','$last_updated','$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; + $sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id',NOW(),NOW(),'$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; $this->db->query($sql); } else { $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); - $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data'" . ($this->permanent ? ", `permanent` = 'y'" : "") . " WHERE session_id = '$session_id'"; + $sql = "UPDATE sys_session SET last_updated = NOW(), session_data = '$session_data'" . ($this->permanent ? ", `permanent` = 'y'" : "") . " WHERE session_id = '$session_id'"; $this->db->query($sql); } @@ -128,18 +124,11 @@ /*if($this->timeout > 0) { $this->db->query("DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL " . intval($this->timeout) . " MINUTE)"); } else {*/ - $real_now = date('Y-m-d H:i:s'); - $dt1 = strtotime("$real_now -$max_lifetime seconds"); - $dt2 = date('Y-m-d H:i:s', $dt1); - - $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2' AND `permanent` != 'y'"; + $sql = "DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL " . intval($max_lifetime) . " SECOND) AND `permanent` != 'y'"; $this->db->query($sql); /* delete very old even if they are permanent */ - $dt1 = strtotime("$real_now -365 days"); - $dt2 = date('Y-m-d H:i:s', $dt1); - - $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2'"; + $sql = "DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $this->db->query($sql); //} diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 5fc0627..4522304 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -252,7 +252,9 @@ unset($tmp_recordid); $querystring = str_replace("{AUTHSQL}", $this->getAuthSQL('r'), $querystring); - $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', "self::table_auth_sql", $querystring); + //$querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', "self::table_auth_sql", $querystring); + //*Used the ld form to be compatible with php < 5.3 + $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', create_function('$matches','global $app; $tmp = $app->tform->getAuthSQL("r", $matches[1]); return $tmp;'), $querystring); // Getting the records $tmp_records = $app->db->queryAllRecords($querystring); @@ -293,10 +295,12 @@ return $values; } - + + /* function table_auth_sql($matches){ return $this->getAuthSQL('r', $matches[1]); } + */ //* If the parameter 'valuelimit' is set function applyValueLimit($limit, $values) { @@ -1509,7 +1513,7 @@ */ function _getDateTimeHTML($form_element, $default_value, $display_seconds=false) { - $_datetime = strtotime($default_value); + $_datetime = ($default_value && $default_value != '0000-00-00 00:00:00' ? strtotime($default_value) : false); $_showdate = ($_datetime === false) ? false : true; $dselect = array('day', 'month', 'year', 'hour', 'minute'); diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 988945d..d92de9b 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -123,156 +123,41 @@ } // check if domain has alias/subdomains - if we move a web to another IP, make sure alias/subdomains are checked as well - $aliassubdomains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$app->functions->intval($primary_id)." AND (type = 'alias' OR type = 'subdomain')"); + $aliassubdomains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$app->functions->intval($primary_id)." AND (type = 'alias' OR type = 'subdomain' OR type = 'vhostsubdomain')"); $additional_sql1 = ''; $additional_sql2 = ''; if(is_array($aliassubdomains) && !empty($aliassubdomains)){ foreach($aliassubdomains as $aliassubdomain){ - $additional_sql1 .= " OR `domain` = '".$app->db->quote($aliassubdomain['domain'])."'"; - $additional_sql2 .= " OR CONCAT(`subdomain`, '.', `domain`) = '".$app->db->quote($aliassubdomain['domain'])."'"; + $additional_sql1 .= " OR d.domain = '".$app->db->quote($aliassubdomain['domain'])."'"; + $additional_sql2 .= " OR CONCAT(d.subdomain, '.', d.domain) = '".$app->db->quote($aliassubdomain['domain'])."'"; } } - - //$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `domain` = '" . $app->db->quote($domain_name) . "' AND `domain_id` != " . $app->functions->intval($primary_id)); - //if($check['cnt'] > 0) return false; - - // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (`domain` = '" . $app->db->quote($domain_name) . "'".$additional_sql1.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql1 != '' ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); - + + + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (d.domain = '" . $app->db->quote($domain_name) . "'" . $additional_sql1 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . ($primary_id ? " AND d.parent_domain_id != " . $app->functions->intval($primary_id) : ""); + $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ if($domain['ip_address'] == '*') return false; if($check['ip_address'] == '*') return false; if($domain['ip_address'] != '' && $check['ip_address'] == $domain['ip_address']) return false; if($domain['ipv6_address'] != '' && $check['ipv6_address'] == $domain['ipv6_address']) return false; - // if alias/subdomain: check IP addresses of parent domain - if($check['ip_address'] == '' || $check['ipv6_address'] == ''){ - if($check['parent_domain_id'] > 0){ - $check_parent_domain = $app->db->queryOneRecord("SELECT * FROM `web_domain` WHERE `domain_id` = ".$check['parent_domain_id']); - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] == ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - } - } - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($check['ip_address'] == '' && $domain['ip_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - if($check_parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $domain['ip_address']) return false; - } - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] == ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($check['ipv6_address'] == '' && $domain['ipv6_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $domain['ipv6_address']) return false; - } - } - } } } - - + if($only_domain == false) { - //$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "' AND `domain_id` != " . $app->functions->intval($primary_id)); - //if($check['cnt'] > 0) return false; - // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "'".$additional_sql2.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql2 != '' ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (CONCAT(d.subdomain, '.', d.domain)= '" . $app->db->quote($domain_name) . "'" . $additional_sql2 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . ($primary_id ? " AND d.parent_domain_id != " . $app->functions->intval($primary_id) : ""); + $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ if($domain['ip_address'] == '*') return false; if($check['ip_address'] == '*') return false; if($domain['ip_address'] != '' && $check['ip_address'] == $domain['ip_address']) return false; if($domain['ipv6_address'] != '' && $check['ipv6_address'] == $domain['ipv6_address']) return false; - // if alias/subdomain: check IP addresses of parent domain - if($check['ip_address'] == '' || $check['ipv6_address'] == ''){ - if($check['parent_domain_id'] > 0){ - $check_parent_domain = $app->db->queryOneRecord("SELECT * FROM `web_domain` WHERE `domain_id` = ".$app->functions->intval($check['parent_domain_id'])); - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] == ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - } - } - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($check['ip_address'] == '' && $domain['ip_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - if($check_parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $domain['ip_address']) return false; - } - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] == ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($check['ipv6_address'] == '' && $domain['ipv6_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $domain['ipv6_address']) return false; - } - } - } } } - } - + return true; } diff --git a/interface/lib/classes/validate_password.inc.php b/interface/lib/classes/validate_password.inc.php index 998c37c..da044c6 100644 --- a/interface/lib/classes/validate_password.inc.php +++ b/interface/lib/classes/validate_password.inc.php @@ -53,10 +53,11 @@ $different += 1; } - if (preg_match('/[`~!@#$%^&*()_+|\\=-[]}{\';:\/?.>,<" ]/', $password)) { + if (preg_match('/[`~!@#$%^&*()_+|\\=-\[\]}{\';:\/?.>,<" ]/', $password)) { $points += 1; $different += 1; } + if ($points == 0 || $different < 3) { if ($length >= 5 && $length <= 6) { @@ -122,7 +123,7 @@ $lng_text = str_replace('{chars}', $min_password_length, $lng_text); } if(!$lng_text) $lng_text = 'weak_password_txt'; // always return a string, even if language is missing - otherwise validator is NOT MATCHING! - + if(strlen($field_value) < $min_password_length) return $lng_text; if($this->_get_password_strength($field_value) < $min_password_strength) return $lng_text; diff --git a/interface/lib/classes/validate_systemuser.inc.php b/interface/lib/classes/validate_systemuser.inc.php new file mode 100644 index 0000000..f1bbd2b --- /dev/null +++ b/interface/lib/classes/validate_systemuser.inc.php @@ -0,0 +1,64 @@ +<?php + +/* +Copyright (c) 2014, 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. +*/ + +class validate_systemuser { + + /* + Validator function to check if a given user is ok. + */ + function check_sysuser($field_name, $field_value, $validator) { + global $app; + + $errmsg = $validator['errmsg']; + $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; + + if($app->functions->is_allowed_user(trim(strtolower($field_value)),$check_names) == false) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } + } + + /* + Validator function to check if a given group is ok. + */ + function check_sysgroup($field_name, $field_value, $validator) { + global $app; + + $errmsg = $validator['errmsg']; + $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; + + if($app->functions->is_allowed_group(trim(strtolower($field_value)),$check_names) == false) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } + } + + + + +} diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php index 7fcbfe2..179acc9 100644 --- a/interface/lib/config.inc.php +++ b/interface/lib/config.inc.php @@ -44,7 +44,7 @@ //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p1'); +define('ISPC_APP_VERSION', '3.0.5.4p2'); define('DEVSYSTEM', 0); diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 5f7cb70..20f26a4 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -145,6 +145,6 @@ $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index f344dc3..613f2a3 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -145,6 +145,6 @@ $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 5f49333..41a972f 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -145,7 +145,6 @@ $wb['strength_3'] = 'Bra'; $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of "{strength}".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> - diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index e115c8b..01ac568 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -126,8 +126,11 @@ 2 => array( 'event' => 'SAVE', 'type' => 'TOLOWER') ), - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'hostname_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'hostname_error_empty'), + 1 => array ('type' => 'REGEX', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'errmsg'=> 'hostname_error_regex'), ), 'value' => '', 'width' => '40', @@ -164,8 +167,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/var/backup', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'backup_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'backup_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'backup_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -176,14 +182,6 @@ 'formtype' => 'CHECKBOX', 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') - ), - 'backup_dir_mount_cmd' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' ), 'backup_mode' => array( 'datatype' => 'VARCHAR', @@ -279,8 +277,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/home/vmail/[domain]/[localpart]/', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'maildir_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'maildir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'maildir_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -290,8 +291,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/home/vmail/', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'homedir_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'homedir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'homedir_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -313,8 +317,11 @@ 'datatype' => 'INTEGER', 'formtype' => 'TEXT', 'default' => '5000', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_uid_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_uid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_uid_error_range'), ), 'value' => '', 'width' => '10', @@ -324,8 +331,11 @@ 'datatype' => 'INTEGER', 'formtype' => 'TEXT', 'default' => '5000', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_gid_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_gid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_gid_error_range'), ), 'value' => '', 'width' => '10', @@ -335,8 +345,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => 'vmail', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_name_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_name_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_name_error_regex'), ), 'value' => '', 'width' => '10', @@ -346,8 +359,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => 'vmail', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_group_name_error_regex'), ), 'value' => '', 'width' => '10', @@ -455,8 +471,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'getmail_config_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'getmail_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'getmail_config_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -486,8 +505,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_basedir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'website_basedir_error_regex'), ), 'value' => '', 'width' => '40', @@ -497,8 +519,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_path_error_empty'), + 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', + 'errmsg' => 'website_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'website_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -508,8 +533,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_symlinks_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_symlinks_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]\:]{5,128}$/', + 'errmsg'=> 'website_symlinks_error_regex'), ), 'value' => '', 'width' => '40', @@ -541,8 +569,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -552,8 +583,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_enabled_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -563,8 +597,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -574,8 +611,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_enabled_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -584,6 +624,10 @@ 'CA_path' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/', + 'errmsg'=> 'ca_path_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -683,6 +727,13 @@ 'default' => '', 'validators' => array(0 => array('type' => 'NOTEMPTY', 'errmsg' => 'apache_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_apache_user_txt' + ), ), 'value' => '', 'width' => '40', @@ -694,6 +745,13 @@ 'default' => '', 'validators' => array(0 => array('type' => 'NOTEMPTY', 'errmsg' => 'apache_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_apache_group_txt' + ), ), 'value' => '', 'width' => '40', @@ -720,8 +778,15 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_user_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_user_txt' + ), ), 'value' => '', 'width' => '40', @@ -731,8 +796,15 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_group_txt' + ), ), 'value' => '', 'width' => '40', @@ -742,8 +814,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_apache_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_apache_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_apache_error_regex'), ), 'value' => '', 'width' => '40', @@ -753,8 +828,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_cgi_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_cgi_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_cgi_error_regex'), ), 'value' => '', 'width' => '40', @@ -764,8 +842,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_init_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,128}$/', + 'errmsg'=> 'php_fpm_init_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -775,8 +856,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_ini_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_ini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_ini_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -786,8 +870,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_pool_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_pool_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_pool_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -797,7 +884,7 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', 'errmsg' => 'php_fpm_start_port_error_empty'), ), 'value' => '', @@ -808,8 +895,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_socket_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_socket_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_socket_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -819,8 +909,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_open_basedir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_open_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\]\[\:]{1,}$/', + 'errmsg'=> 'php_open_basedir_error_regex'), ), 'value' => '', 'width' => '40', @@ -830,8 +923,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_cgi_socket_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_cgi_socket_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'nginx_cgi_socket_error_regex'), ), 'value' => '', 'width' => '40', @@ -841,8 +937,8 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'htaccess_allow_override_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'htaccess_allow_override_error_empty'), ), 'value' => '', 'width' => '40', @@ -889,6 +985,12 @@ 'awstats_data_dir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_data_dir_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_data_dir_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -897,6 +999,12 @@ 'awstats_pl' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_pl_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -905,6 +1013,12 @@ 'awstats_buildstaticpages_pl' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_buildstaticpages_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_buildstaticpages_pl_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -928,8 +1042,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_user_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_user_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_user_txt'), ), 'value' => '', 'width' => '40', @@ -939,8 +1056,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_group_txt'), ), 'value' => '', 'width' => '40', @@ -950,8 +1070,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_zonefiles_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_zonefiles_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'bind_zonefiles_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -961,8 +1084,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -972,8 +1098,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_local_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_local_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_local_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -997,8 +1126,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -1008,8 +1140,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -1019,8 +1154,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_alias_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_alias_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_alias_error_regex'), ), 'value' => '', 'width' => '40', @@ -1030,8 +1168,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_phpini_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_phpini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_phpini_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -1041,7 +1182,7 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', 'errmsg' => 'fastcgi_children_error_empty'), ), 'value' => '', @@ -1066,8 +1207,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_bin_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_bin_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_bin_error_regex'), ), 'value' => '', 'width' => '40', @@ -1100,8 +1244,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_home_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_home_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_home_error_regex'), ), 'value' => '', 'width' => '40', @@ -1111,8 +1258,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_\ ]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_app_sections_error_regex'), ), 'value' => '', 'width' => '40', @@ -1122,8 +1272,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_app_programs_error_regex'), ), 'value' => '', 'width' => '40', @@ -1133,8 +1286,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_cron_programs_error_regex'), ), 'value' => '', 'width' => '40', @@ -1222,8 +1378,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vlogger_config_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vlogger_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'vlogger_config_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -1249,8 +1408,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_init_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_]{1,30}$/', + 'errmsg'=> 'cron_init_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -1260,8 +1422,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'crontab_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'crontab_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'crontab_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -1271,8 +1436,11 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_wget_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_wget_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'cron_wget_error_regex'), ), 'value' => '', 'width' => '40', diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index ce4a0cb..c53d02b 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -449,7 +449,7 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/', 'errmsg'=> 'customer_no_template_error_regex'), ), 'default' => '', diff --git a/interface/web/admin/language_edit.php b/interface/web/admin/language_edit.php index fda70a6..8199244 100644 --- a/interface/web/admin/language_edit.php +++ b/interface/web/admin/language_edit.php @@ -57,7 +57,7 @@ $file_content = "<?php\n"; foreach($_POST['records'] as $key => $val) { $val = stripslashes($val); - $val = str_replace('"', '\"', $val); + $val = preg_replace('/(^|[^\\\\])((\\\\\\\\)*)"/', '$1$2\\"', $val); $val = str_replace('$', '', $val); $file_content .= '$wb['."'$key'".'] = "'.$val.'";'."\n"; $msg = 'File saved.'; diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 2a404c6..7f23b7d 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index ef13ef5..b15c3c6 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 66bacf2..2b0dd67 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index 41d1bf8..c2db3ba 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Zástupný symbol'; $wb['backup_dir_is_mount_txt'] = 'Připojit adresář pro zálohy ?'; -$wb['backup_dir_mount_cmd_txt'] = 'Příkaz připojení, pokud adresář pro zálohy není připojen . (např. mount ...)'; $wb['monitor_system_updates_txt'] = 'Kontrolovat aktualizace Linuxu'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 3711d4a..b040dba 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Ungültige Munin-URL'; $wb['munin_url_note_txt'] = 'Platzhalter:'; $wb['backup_dir_is_mount_txt'] = 'Backupverzeichnis ist ein eigener Mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount-Befehl, falls Backupverzeichnis nicht gemountet'; $wb['monitor_system_updates_txt'] = 'Suche nach Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 38da1e4..6ab52a9 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 41dff65..6c4f9a6 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 3dc1d0a..cc34e05 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -49,6 +49,7 @@ $wb["netmask_error_wrong"] = 'Invalid Netmask format.'; $wb["gateway_error_wrong"] = 'Invalid Gateway format.'; $wb["hostname_error_empty"] = 'Hostname is empty.'; +$wb["hostname_error_regex"] = 'Invalid Hostname.'; $wb["nameservers_error_empty"] = 'Nameserver is empty.'; $wb["config_dir_txt"] = 'Config directory'; $wb["init_script_txt"] = 'Cron init script name'; @@ -189,6 +190,55 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 1942704..42aeb09 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index a1a5c63..13ef9f3 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index cee1433..d66d977 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 9abcd05..3c07c65 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 39bbc2a..1b71f0b 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 178a323..4a17525 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 4ef6414..ac67571 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index d2a6288..fac8b35 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 06e2bb6..110148c 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index d94b567..fb97a2c 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 6d74f7d..ada9888 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index b31598c..e9fcd37 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 06b78eb..078910f 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 9c8e58f..9f881ae 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/se.lng b/interface/web/admin/lib/lang/se.lng index 5101192..0df5d1a 100644 --- a/interface/web/admin/lib/lang/se.lng +++ b/interface/web/admin/lib/lang/se.lng @@ -48,4 +48,3 @@ $wb['Do ISPConfig-Update'] = 'Utför ISPConfig-uppdatering'; $wb['Directive Snippets'] = 'Directive Snippets'; ?> - diff --git a/interface/web/admin/lib/lang/se_directive_snippets.lng b/interface/web/admin/lib/lang/se_directive_snippets.lng index 5366bf1..0f09c12 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets.lng @@ -8,4 +8,3 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; $wb['variables_txt'] = 'Variables'; ?> - diff --git a/interface/web/admin/lib/lang/se_directive_snippets_list.lng b/interface/web/admin/lib/lang/se_directive_snippets_list.lng index 3eac528..4124ea3 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets_list.lng @@ -5,4 +5,3 @@ $wb['type_txt'] = 'Type'; $wb['add_new_record_txt'] = 'Add Directive Snippet'; ?> - diff --git a/interface/web/admin/lib/lang/se_firewall.lng b/interface/web/admin/lib/lang/se_firewall.lng index 4ae1ed6..123a648 100644 --- a/interface/web/admin/lib/lang/se_firewall.lng +++ b/interface/web/admin/lib/lang/se_firewall.lng @@ -9,4 +9,3 @@ $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.'; ?> - diff --git a/interface/web/admin/lib/lang/se_firewall_list.lng b/interface/web/admin/lib/lang/se_firewall_list.lng index eff32d3..6f6f9ce 100644 --- a/interface/web/admin/lib/lang/se_firewall_list.lng +++ b/interface/web/admin/lib/lang/se_firewall_list.lng @@ -6,4 +6,3 @@ $wb['udp_port_txt'] = 'Öppna UDP-portar'; $wb['add_new_record_txt'] = 'Lägg till brandväggsinlägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_groups.lng b/interface/web/admin/lib/lang/se_groups.lng index 175a422..4bb34b1 100644 --- a/interface/web/admin/lib/lang/se_groups.lng +++ b/interface/web/admin/lib/lang/se_groups.lng @@ -3,4 +3,3 @@ $wb['name_txt'] = 'Grupp'; $wb['name_err'] = 'Gruppnamnet måste ha minst 1 och max 30 tecken.'; ?> - diff --git a/interface/web/admin/lib/lang/se_groups_list.lng b/interface/web/admin/lib/lang/se_groups_list.lng index b5486da..fe3f4be 100644 --- a/interface/web/admin/lib/lang/se_groups_list.lng +++ b/interface/web/admin/lib/lang/se_groups_list.lng @@ -5,4 +5,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny grupp'; $wb['warning_txt'] = '<b>VARNING:</b> Ändra inte några användarinställningar här. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; ?> - diff --git a/interface/web/admin/lib/lang/se_iptables.lng b/interface/web/admin/lib/lang/se_iptables.lng index 7c7dbfd..b4e6bf8 100644 --- a/interface/web/admin/lib/lang/se_iptables.lng +++ b/interface/web/admin/lib/lang/se_iptables.lng @@ -11,4 +11,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['iptables_error_unique'] = 'Det finns redan brandväggsinlägg för den här servern'; ?> - diff --git a/interface/web/admin/lib/lang/se_iptables_list.lng b/interface/web/admin/lib/lang/se_iptables_list.lng index 3d400b4..74a06df 100644 --- a/interface/web/admin/lib/lang/se_iptables_list.lng +++ b/interface/web/admin/lib/lang/se_iptables_list.lng @@ -13,4 +13,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['iptables_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_add.lng b/interface/web/admin/lib/lang/se_language_add.lng index a0607f2..59dbeee 100644 --- a/interface/web/admin/lib/lang/se_language_add.lng +++ b/interface/web/admin/lib/lang/se_language_add.lng @@ -6,4 +6,3 @@ $wb['btn_cancel_txt'] = 'Tillbaka'; $wb['language_new_hint_txt'] = '2 characters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_complete.lng b/interface/web/admin/lib/lang/se_language_complete.lng index 9fc8458..539c956 100644 --- a/interface/web/admin/lib/lang/se_language_complete.lng +++ b/interface/web/admin/lib/lang/se_language_complete.lng @@ -5,4 +5,3 @@ $wb['btn_cancel_txt'] = 'Tillbaka'; $wb['list_desc_txt'] = 'Slå ihop språkfilen med den engelska huvudfilen. <br />Detta lägger till saknade fraser från den engelska språkfilen till den valda språkfilen'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_edit.lng b/interface/web/admin/lib/lang/se_language_edit.lng index e02c9a9..076caaa 100644 --- a/interface/web/admin/lib/lang/se_language_edit.lng +++ b/interface/web/admin/lib/lang/se_language_edit.lng @@ -6,4 +6,3 @@ $wb['btn_save_txt'] = 'Spara'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_export.lng b/interface/web/admin/lib/lang/se_language_export.lng index a4d7147..21ff513 100644 --- a/interface/web/admin/lib/lang/se_language_export.lng +++ b/interface/web/admin/lib/lang/se_language_export.lng @@ -4,4 +4,3 @@ $wb['btn_save_txt'] = 'Exportera de valda språkfilerna'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_import.lng b/interface/web/admin/lib/lang/se_language_import.lng index 8ecca37..59af5bc 100644 --- a/interface/web/admin/lib/lang/se_language_import.lng +++ b/interface/web/admin/lib/lang/se_language_import.lng @@ -7,4 +7,3 @@ $wb['ignore_version_txt'] = 'Hoppa över ISPConfig versionskontroll'; $wb['list_desc_txt'] = 'VARNING: Importera inte språkfiler från opålitliga källor!'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_list.lng b/interface/web/admin/lib/lang/se_language_list.lng index b23024d..9949044 100644 --- a/interface/web/admin/lib/lang/se_language_list.lng +++ b/interface/web/admin/lib/lang/se_language_list.lng @@ -5,4 +5,3 @@ $wb['lang_file_txt'] = 'Språkfil'; $wb['lang_file_date_txt'] = 'Senast ändrad'; ?> - diff --git a/interface/web/admin/lib/lang/se_login_as.lng b/interface/web/admin/lib/lang/se_login_as.lng deleted file mode 100644 index 284a75b..0000000 --- a/interface/web/admin/lib/lang/se_login_as.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['login_1_txt'] = 'Vill du logga in som användare'; -$wb['login_2_txt'] = 'Om du gör det kan du klicka på "gå tillbaka" genom att först klicka på logga ut.'; -$wb['btn_yes_txt'] = 'Ja, logga in som kund'; -$wb['btn_back_txt'] = 'Nej, tillbaka till listan'; -$wb['udp_port_help_txt'] = 'Kommaseparerade'; -$wb['active_txt'] = 'Aktiv'; -$wb['firewall_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".'; -?> - diff --git a/interface/web/admin/lib/lang/se_package_install.lng b/interface/web/admin/lib/lang/se_package_install.lng index 438f1d8..2fb8330 100644 --- a/interface/web/admin/lib/lang/se_package_install.lng +++ b/interface/web/admin/lib/lang/se_package_install.lng @@ -5,4 +5,3 @@ $wb['repo_password_txt'] = 'Lösenord (Frivilligt)'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_action.lng b/interface/web/admin/lib/lang/se_remote_action.lng index 99d9e2c..68d2bbd 100644 --- a/interface/web/admin/lib/lang/se_remote_action.lng +++ b/interface/web/admin/lib/lang/se_remote_action.lng @@ -10,4 +10,3 @@ $wb['ispconfig_update_title'] = 'ISPConfig uppdateringsinstruktioner'; $wb['ispconfig_update_text'] = 'Logga in som root på din server och kör kommandot<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />för att påbörja ISPConfig-uppdateringen.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klicka här för detaljerade instruktioner</a>'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_user.lng b/interface/web/admin/lib/lang/se_remote_user.lng index 5fedddc..1b3b731 100644 --- a/interface/web/admin/lib/lang/se_remote_user.lng +++ b/interface/web/admin/lib/lang/se_remote_user.lng @@ -45,4 +45,3 @@ $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_user_list.lng b/interface/web/admin/lib/lang/se_remote_user_list.lng index 9f49023..152a75f 100644 --- a/interface/web/admin/lib/lang/se_remote_user_list.lng +++ b/interface/web/admin/lib/lang/se_remote_user_list.lng @@ -5,4 +5,3 @@ $wb['parent_remote_userid_txt'] = 'ID'; $wb['username_txt'] = 'Username'; ?> - diff --git a/interface/web/admin/lib/lang/se_server.lng b/interface/web/admin/lib/lang/se_server.lng index 29f32a7..54df6f2 100644 --- a/interface/web/admin/lib/lang/se_server.lng +++ b/interface/web/admin/lib/lang/se_server.lng @@ -13,4 +13,3 @@ $wb['proxy_server_txt'] = 'Proxy-server'; $wb['firewall_server_txt'] = 'Brandväggsserver'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 565659e..fc5b201 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -189,7 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_config_list.lng b/interface/web/admin/lib/lang/se_server_config_list.lng index 9ff7f9b..191b2c8 100644 --- a/interface/web/admin/lib/lang/se_server_config_list.lng +++ b/interface/web/admin/lib/lang/se_server_config_list.lng @@ -2,4 +2,3 @@ $wb['list_head_txt'] = 'Serverkonfiguration'; $wb['server_name_txt'] = 'Server'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_ip.lng b/interface/web/admin/lib/lang/se_server_ip.lng index ad887bb..c6f92d8 100644 --- a/interface/web/admin/lib/lang/se_server_ip.lng +++ b/interface/web/admin/lib/lang/se_server_ip.lng @@ -9,4 +9,3 @@ $wb['virtualhost_port_txt'] = 'HTTP-portar'; $wb['error_port_syntax'] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_ip_list.lng b/interface/web/admin/lib/lang/se_server_ip_list.lng index 67884b3..8f20a3b 100644 --- a/interface/web/admin/lib/lang/se_server_ip_list.lng +++ b/interface/web/admin/lib/lang/se_server_ip_list.lng @@ -8,4 +8,3 @@ $wb['virtualhost_port_txt'] = 'HTTP-portar'; $wb['ip_type_txt'] = 'Typ'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_list.lng b/interface/web/admin/lib/lang/se_server_list.lng index 23d6940..031ac76 100644 --- a/interface/web/admin/lib/lang/se_server_list.lng +++ b/interface/web/admin/lib/lang/se_server_list.lng @@ -11,4 +11,3 @@ $wb['proxy_server_txt'] = 'Proxy'; $wb['firewall_server_txt'] = 'Brandvägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_php.lng b/interface/web/admin/lib/lang/se_server_php.lng index 3b6096e..addbfa4 100644 --- a/interface/web/admin/lib/lang/se_server_php.lng +++ b/interface/web/admin/lib/lang/se_server_php.lng @@ -14,4 +14,3 @@ $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_php_list.lng b/interface/web/admin/lib/lang/se_server_php_list.lng index 353e156..f5762ad 100644 --- a/interface/web/admin/lib/lang/se_server_php_list.lng +++ b/interface/web/admin/lib/lang/se_server_php_list.lng @@ -5,4 +5,3 @@ $wb['client_id_txt'] = 'Kund'; $wb['name_txt'] = 'PHP-namn'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package.lng b/interface/web/admin/lib/lang/se_software_package.lng index f06ca05..086902d 100644 --- a/interface/web/admin/lib/lang/se_software_package.lng +++ b/interface/web/admin/lib/lang/se_software_package.lng @@ -4,4 +4,3 @@ $wb['Software Package'] = 'Mjukvarupaket'; $wb['Modify software package details'] = 'Redigera mjukvarupaketets uppgifter'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package_install.lng b/interface/web/admin/lib/lang/se_software_package_install.lng index 7b0b28b..434fc4b 100644 --- a/interface/web/admin/lib/lang/se_software_package_install.lng +++ b/interface/web/admin/lib/lang/se_software_package_install.lng @@ -4,4 +4,3 @@ $wb['btn_save_txt'] = 'Påbörja installation'; $wb['btn_cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package_list.lng b/interface/web/admin/lib/lang/se_software_package_list.lng index 7762e62..c0222e1 100644 --- a/interface/web/admin/lib/lang/se_software_package_list.lng +++ b/interface/web/admin/lib/lang/se_software_package_list.lng @@ -11,4 +11,3 @@ $wb['edit_txt'] = 'Redigera'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_repo.lng b/interface/web/admin/lib/lang/se_software_repo.lng index db59a1b..a0e0de6 100644 --- a/interface/web/admin/lib/lang/se_software_repo.lng +++ b/interface/web/admin/lib/lang/se_software_repo.lng @@ -6,4 +6,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['Software Repository which may contain addons or updates'] = 'Pragarmvarubibliotek som kan innehålla uppdateringar eller tillägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_repo_list.lng b/interface/web/admin/lib/lang/se_software_repo_list.lng index d997091..b7a219f 100644 --- a/interface/web/admin/lib/lang/se_software_repo_list.lng +++ b/interface/web/admin/lib/lang/se_software_repo_list.lng @@ -4,4 +4,3 @@ $wb['repo_name_txt'] = 'Repository'; $wb['repo_url_txt'] = 'URL'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_update_list.lng b/interface/web/admin/lib/lang/se_software_update_list.lng index 41728b2..0cf7c0e 100644 --- a/interface/web/admin/lib/lang/se_software_update_list.lng +++ b/interface/web/admin/lib/lang/se_software_update_list.lng @@ -7,4 +7,3 @@ $wb['server_select_txt'] = 'Välj server'; $wb['no_updates_txt'] = 'Inga tillgängliga uppdateringar'; ?> - diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 25b3593..7e96181 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -64,9 +64,8 @@ $wb['customer_no_start_txt'] = 'Kundnummer startvärde'; $wb['customer_no_counter_txt'] = 'Kundnummer räknare'; $wb['session_timeout_txt'] = 'Session timeout (minuter)'; -$wb['session_allow_endless_txt'] = 'Aktivera "håll mig inloggad"'; +$wb['session_allow_endless_txt'] = 'Aktivera \"håll mig inloggad\"'; $wb['No'] = 'Nej'; $wb['min_password_length_txt'] = 'Minsta lösenordslängd'; $wb['min_password_strength_txt'] = 'Minsta lösenordsstyrka'; ?> - diff --git a/interface/web/admin/lib/lang/se_tpl_default_admin.lng b/interface/web/admin/lib/lang/se_tpl_default_admin.lng index d8989ed..8894558 100644 --- a/interface/web/admin/lib/lang/se_tpl_default_admin.lng +++ b/interface/web/admin/lib/lang/se_tpl_default_admin.lng @@ -16,4 +16,3 @@ $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; ?> - diff --git a/interface/web/admin/lib/lang/se_users.lng b/interface/web/admin/lib/lang/se_users.lng index 3acec53..9a819be 100644 --- a/interface/web/admin/lib/lang/se_users.lng +++ b/interface/web/admin/lib/lang/se_users.lng @@ -32,4 +32,3 @@ $wb['username_error_collision'] = 'Användarnamnet får inte vara web eller web och ett nummer'; $wb['client_not_admin_err'] = 'En användare som tillhör en kund kan inte sättas som admin'; ?> - diff --git a/interface/web/admin/lib/lang/se_users_list.lng b/interface/web/admin/lib/lang/se_users_list.lng index f9ea803..a6580d3 100644 --- a/interface/web/admin/lib/lang/se_users_list.lng +++ b/interface/web/admin/lib/lang/se_users_list.lng @@ -7,4 +7,3 @@ $wb['warning_txt'] = '<b>VARNING:</b> Ändra inte några användarinställningar här. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; $wb['groups_txt'] = 'Grupper'; ?> - diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index de4573d..776357d 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 5b2d389..6d6e05d 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm index d9b703a..e5034e6 100644 --- a/interface/web/admin/templates/server_config_server_edit.htm +++ b/interface/web/admin/templates/server_config_server_edit.htm @@ -65,10 +65,6 @@ {tmpl_var name='backup_dir_is_mount'} </div> </div> - <div class="ctrlHolder"> - <label for="backup_dir_mount_cmd">{tmpl_var name='backup_dir_mount_cmd_txt'}</label> - <input name="backup_dir_mount_cmd" id="backup_dir_mount_cmd" value="{tmpl_var name='backup_dir_mount_cmd'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> <div class="ctrlHolder"> <label for="backup_mode">{tmpl_var name='backup_mode_txt'}</label> <select name="backup_mode" id="backup_mode" class="selectInput"> diff --git a/interface/web/admin/templates/users_list.htm b/interface/web/admin/templates/users_list.htm index dece7f8..cac25f5 100644 --- a/interface/web/admin/templates/users_list.htm +++ b/interface/web/admin/templates/users_list.htm @@ -44,7 +44,7 @@ <td class="tbl_col_groups">{tmpl_var name="groups"}</td> <td class="tbl_col_buttons"> <tmpl_if name="username" op="!=" value="admin"> - <a class="button icons16 icoLoginAs" href="javascript: loadContent('admin/login_as.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> + <a class="button icons16 icoLoginAs" href="javascript: loadContent('login/login_as.php?cid={tmpl_var name='client_id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> <a class="button icons16 icoDelete" href="javascript: del_record('admin/users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> </tmpl_if> </td> diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index d336b3b..0c1ca59 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -157,5 +157,5 @@ $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index f37d326..2de8e0a 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -139,7 +139,7 @@ $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d\'Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d\'instances APS'; $wb['limit_aps_error_notint'] = 'La limite d\'instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index c71020d..a4b0d62 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -157,5 +157,5 @@ $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> diff --git a/interface/web/client/lib/lang/se.lng b/interface/web/client/lib/lang/se.lng index 271f69d..3f396d6 100644 --- a/interface/web/client/lib/lang/se.lng +++ b/interface/web/client/lib/lang/se.lng @@ -24,4 +24,3 @@ $wb['error_client_can_not_add_domain'] = 'Du kan inte lägga till en ny domän'; $wb['error_client_group_id_empty'] = 'Du måste välja en kund<br>'; ?> - diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index c8540a6..f633614 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -139,7 +139,7 @@ $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal epostadress'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than "custom" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; @@ -154,4 +154,3 @@ $wb['parent_client_id_txt'] = 'Kund till återförsäljare'; $wb['none_txt'] = 'ingen'; ?> - diff --git a/interface/web/client/lib/lang/se_client_circle.lng b/interface/web/client/lib/lang/se_client_circle.lng index f30732e..df3c995 100644 --- a/interface/web/client/lib/lang/se_client_circle.lng +++ b/interface/web/client/lib/lang/se_client_circle.lng @@ -7,4 +7,3 @@ $wb['description_txt'] = 'BEskrivning'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/client/lib/lang/se_client_circle_list.lng b/interface/web/client/lib/lang/se_client_circle_list.lng index 21ae4d6..f98f551 100644 --- a/interface/web/client/lib/lang/se_client_circle_list.lng +++ b/interface/web/client/lib/lang/se_client_circle_list.lng @@ -8,4 +8,3 @@ $wb['delete_txt'] = 'Radera'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/client/lib/lang/se_client_del.lng b/interface/web/client/lib/lang/se_client_del.lng index 9cf44fc..99aa9d8 100644 --- a/interface/web/client/lib/lang/se_client_del.lng +++ b/interface/web/client/lib/lang/se_client_del.lng @@ -5,4 +5,3 @@ $wb['btn_cancel_txt'] = 'Avbryt utan att radera kunden'; $wb['confirm_client_delete_txt'] = 'Är du säker på att du vill radera den här kunden?'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message.lng b/interface/web/client/lib/lang/se_client_message.lng index 625b0db..e6f9aba 100644 --- a/interface/web/client/lib/lang/se_client_message.lng +++ b/interface/web/client/lib/lang/se_client_message.lng @@ -18,4 +18,3 @@ $wb['gender_m_txt'] = 'Herr'; $wb['gender_f_txt'] = 'Fru'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message_template.lng b/interface/web/client/lib/lang/se_client_message_template.lng index 3ff9480..e406d37 100644 --- a/interface/web/client/lib/lang/se_client_message_template.lng +++ b/interface/web/client/lib/lang/se_client_message_template.lng @@ -9,4 +9,3 @@ $wb['variables_description_txt'] = '(Användarnamn- och lösenordsvariablerna är endast tillgängliga i välkomstmail.)'; $wb['duplicate_welcome_error'] = 'Det kan bara finnas en standardmall för välkomstmail. Vänligen redigera den existerande mallen istället för att lägga till en ny.'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message_template_list.lng b/interface/web/client/lib/lang/se_client_message_template_list.lng index f94a106..088d269 100644 --- a/interface/web/client/lib/lang/se_client_message_template_list.lng +++ b/interface/web/client/lib/lang/se_client_message_template_list.lng @@ -3,4 +3,3 @@ $wb['template_type_txt'] = 'Meddelande till'; $wb['template_name_txt'] = 'Mallnamn'; ?> - diff --git a/interface/web/client/lib/lang/se_client_template.lng b/interface/web/client/lib/lang/se_client_template.lng index 12e4355..353960c 100644 --- a/interface/web/client/lib/lang/se_client_template.lng +++ b/interface/web/client/lib/lang/se_client_template.lng @@ -90,4 +90,3 @@ $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; ?> - diff --git a/interface/web/client/lib/lang/se_client_template_list.lng b/interface/web/client/lib/lang/se_client_template_list.lng index cc9d5d5..b594337 100644 --- a/interface/web/client/lib/lang/se_client_template_list.lng +++ b/interface/web/client/lib/lang/se_client_template_list.lng @@ -4,4 +4,3 @@ $wb['template_name_txt'] = 'Mallnamn'; $wb['template_id_txt'] = 'Mall-ID'; ?> - diff --git a/interface/web/client/lib/lang/se_clients_list.lng b/interface/web/client/lib/lang/se_clients_list.lng index 89fe0ed..263912f 100644 --- a/interface/web/client/lib/lang/se_clients_list.lng +++ b/interface/web/client/lib/lang/se_clients_list.lng @@ -9,4 +9,3 @@ $wb['username_txt'] = 'Användarnamn'; $wb['customer_no_txt'] = 'Kundnummer'; ?> - diff --git a/interface/web/client/lib/lang/se_domain.lng b/interface/web/client/lib/lang/se_domain.lng index 7d648de..df60bbe 100644 --- a/interface/web/client/lib/lang/se_domain.lng +++ b/interface/web/client/lib/lang/se_domain.lng @@ -4,4 +4,3 @@ $wb['domain_error_regex'] = 'Denna domän är ogiltig'; $wb['Domain'] = 'Domän'; ?> - diff --git a/interface/web/client/lib/lang/se_domain_list.lng b/interface/web/client/lib/lang/se_domain_list.lng index da7504f..1262367 100644 --- a/interface/web/client/lib/lang/se_domain_list.lng +++ b/interface/web/client/lib/lang/se_domain_list.lng @@ -4,4 +4,3 @@ $wb['domain_txt'] = 'Domän'; $wb['user_txt'] = 'Kund'; ?> - diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index de8f504..7fab36d 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -159,4 +159,3 @@ $wb['client_limits_txt'] = 'Client Limits'; $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> - diff --git a/interface/web/client/lib/lang/se_resellers_list.lng b/interface/web/client/lib/lang/se_resellers_list.lng index 3448e5c..5e03807 100644 --- a/interface/web/client/lib/lang/se_resellers_list.lng +++ b/interface/web/client/lib/lang/se_resellers_list.lng @@ -9,4 +9,3 @@ $wb['customer_no_txt'] = 'Kundnummer'; $wb['username_txt'] = 'Användarnamn'; ?> - diff --git a/interface/web/dashboard/lib/lang/se.lng b/interface/web/dashboard/lib/lang/se.lng index 11700f0..307e9e1 100644 --- a/interface/web/dashboard/lib/lang/se.lng +++ b/interface/web/dashboard/lib/lang/se.lng @@ -2,4 +2,3 @@ $wb['welcome_user_txt'] = 'Välkommen %s'; $wb['available_modules_txt'] = 'Tillgängliga moduler'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng index 49473b7..9fbfe97 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng @@ -28,4 +28,3 @@ $wb['limit_database_txt'] = 'Antal databaser'; $wb['limit_mailmailinglist_txt'] = 'Antal mailinglistor'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng index 883b2a5..1ed6f3f 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng @@ -6,4 +6,3 @@ $wb['quota_txt'] = 'Kvot'; $wb['no_email_accounts_txt'] = 'Inga epostkonton hittades'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_modules.lng b/interface/web/dashboard/lib/lang/se_dashlet_modules.lng index 4dff679..a6f9728 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_modules.lng @@ -1,4 +1,3 @@ <?php $wb['available_modules_txt'] = 'Tillgängliga moduler'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_quota.lng b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng index 325b04d..7a9603b 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng @@ -6,4 +6,3 @@ $wb['soft_txt'] = 'Mjuk gräns'; $wb['no_sites_txt'] = 'Ingen webbsida hittades.'; ?> - diff --git a/interface/web/designer/lib/lang/se.lng b/interface/web/designer/lib/lang/se.lng index 29f4a51..acb6c35 100644 --- a/interface/web/designer/lib/lang/se.lng +++ b/interface/web/designer/lib/lang/se.lng @@ -1,3 +1,2 @@ <?php ?> - diff --git a/interface/web/designer/lib/lang/se_form_edit.lng b/interface/web/designer/lib/lang/se_form_edit.lng index 72d80e5..1a3a831 100644 --- a/interface/web/designer/lib/lang/se_form_edit.lng +++ b/interface/web/designer/lib/lang/se_form_edit.lng @@ -22,4 +22,3 @@ $wb['auth_preset_perm_group_txt'] = 'Beh. Grupp'; $wb['auth_preset_perm_other_txt'] = 'Beh. Andra'; ?> - diff --git a/interface/web/designer/lib/lang/se_form_list.lng b/interface/web/designer/lib/lang/se_form_list.lng index 7951bb7..10f4187 100644 --- a/interface/web/designer/lib/lang/se_form_list.lng +++ b/interface/web/designer/lib/lang/se_form_list.lng @@ -5,4 +5,3 @@ $wb['title_txt'] = 'Titel'; $wb['description_txt'] = 'Beskrivning'; ?> - diff --git a/interface/web/designer/lib/lang/se_form_show.lng b/interface/web/designer/lib/lang/se_form_show.lng index 1d5de49..3e21d62 100644 --- a/interface/web/designer/lib/lang/se_form_show.lng +++ b/interface/web/designer/lib/lang/se_form_show.lng @@ -16,4 +16,3 @@ $wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehåll?'; $wb['item_del_txt'] = 'Ta bort menyinnehåll?'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_edit.lng b/interface/web/designer/lib/lang/se_module_edit.lng index 992a074..ba828eb 100644 --- a/interface/web/designer/lib/lang/se_module_edit.lng +++ b/interface/web/designer/lib/lang/se_module_edit.lng @@ -10,4 +10,3 @@ $wb['header_txt'] = 'Modulinställningar'; $wb['description_txt'] = '<b>Description</b><br><br><b>Modulename:</b> Namn på modul mappen. Endast siffror, bokstäver och understreck är tillåtna.<br><b>Moduletitle:</b> Kommer att visas i (övre) huvud navigerigsramen.<br><b>Template file:</b> Mall fil för modulen. Just nu finns: module.tpl.htm och module_tree.tpl.htm. Standard är module.tpl.htm.<br><b>NaviFrame:</b> Om module module_tree.tpl.htm väljs som mall file, skriv här sökvägen till skriptfilen för den vänstra ramen.<br><b>Default page:</b> Dessa sidor kommer att visas när modulen öppnas.<br><b>Tab width:</b> Bredd på Flikarna i huvud navigerings ramen. Detta fält är tomt som standard. Du kan skriva in ett absolutvärde i pixlar (ex. 20) eller relativt värde (ex. 20%).<br><b>Hint:</b> Alla sökvägar är relativa till mappen web.'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_list.lng b/interface/web/designer/lib/lang/se_module_list.lng index d8408e2..47ff228 100644 --- a/interface/web/designer/lib/lang/se_module_list.lng +++ b/interface/web/designer/lib/lang/se_module_list.lng @@ -3,4 +3,3 @@ $wb['module_txt'] = 'Modul'; $wb['title_txt'] = 'Titel'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_nav_edit.lng b/interface/web/designer/lib/lang/se_module_nav_edit.lng index 28bf0ac..468f8d8 100644 --- a/interface/web/designer/lib/lang/se_module_nav_edit.lng +++ b/interface/web/designer/lib/lang/se_module_nav_edit.lng @@ -4,4 +4,3 @@ $wb['save_txt'] = 'Spara'; $wb['cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng b/interface/web/designer/lib/lang/se_module_nav_item_edit.lng index b9f8639..f5df090 100644 --- a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng +++ b/interface/web/designer/lib/lang/se_module_nav_item_edit.lng @@ -6,4 +6,3 @@ $wb['save_txt'] = 'Spara'; $wb['cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_show.lng b/interface/web/designer/lib/lang/se_module_show.lng index 497a62d..391947c 100644 --- a/interface/web/designer/lib/lang/se_module_show.lng +++ b/interface/web/designer/lib/lang/se_module_show.lng @@ -14,4 +14,3 @@ $wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehåll?'; $wb['item_del_txt'] = 'Ta bort menyinnehåll?'; ?> - diff --git a/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng new file mode 100644 index 0000000..974e214 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'Slave DNS-Zonen'; +$wb['active_txt'] = 'Aktiv'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Neue Slave DNS-Zone hinzufügen'; +$wb['eg_domain_tld'] = 'Format: domain.tld.'; +$wb['sys_groupid_txt'] = 'Kunde'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng new file mode 100644 index 0000000..363369c --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = 'DNS Zonen'; +$wb['active_txt'] = 'Aktiv'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'E-Mail'; +$wb['add_new_record_txt'] = 'Neue DNS Zone (SOA) hinzufügen'; +$wb['add_new_record_wizard_txt'] = 'Neue DNS Zone per Assistent hinzufügen'; +$wb['sys_groupid_txt'] = 'Kunde'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se.lng b/interface/web/dns/lib/lang/se.lng index 80c3918..4f443f0 100644 --- a/interface/web/dns/lib/lang/se.lng +++ b/interface/web/dns/lib/lang/se.lng @@ -20,4 +20,3 @@ $wb['Secondary Zones'] = 'Sekundära zoner'; $wb['Import Zone File'] = 'Importera zonfiler'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_a.lng b/interface/web/dns/lib/lang/se_dns_a.lng index a69314d..7dcfc37 100644 --- a/interface/web/dns/lib/lang/se_dns_a.lng +++ b/interface/web/dns/lib/lang/se_dns_a.lng @@ -15,4 +15,3 @@ $wb['data_error_duplicate'] = 'Duplicate A-Record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_a_list.lng b/interface/web/dns/lib/lang/se_dns_a_list.lng index b92f4c0..3fa1e7f 100644 --- a/interface/web/dns/lib/lang/se_dns_a_list.lng +++ b/interface/web/dns/lib/lang/se_dns_a_list.lng @@ -13,4 +13,3 @@ $wb['page_of_txt'] = 'of'; $wb['delete_confirmation'] = 'Do you really want to delete this record?'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_aaaa.lng b/interface/web/dns/lib/lang/se_dns_aaaa.lng index a8cfbf1..b4c5b27 100644 --- a/interface/web/dns/lib/lang/se_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/se_dns_aaaa.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_alias.lng b/interface/web/dns/lib/lang/se_dns_alias.lng index 05c3f62..bd4be9f 100644 --- a/interface/web/dns/lib/lang/se_dns_alias.lng +++ b/interface/web/dns/lib/lang/se_dns_alias.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Target hostname format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_cname.lng b/interface/web/dns/lib/lang/se_dns_cname.lng index b4e8ae1..b7ceb5d 100644 --- a/interface/web/dns/lib/lang/se_dns_cname.lng +++ b/interface/web/dns/lib/lang/se_dns_cname.lng @@ -15,4 +15,3 @@ $wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_hinfo.lng b/interface/web/dns/lib/lang/se_dns_hinfo.lng index df19a84..937bd9b 100644 --- a/interface/web/dns/lib/lang/se_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/se_dns_hinfo.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Host Information format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_import.lng b/interface/web/dns/lib/lang/se_dns_import.lng index aea47ba..4d703fa 100644 --- a/interface/web/dns/lib/lang/se_dns_import.lng +++ b/interface/web/dns/lib/lang/se_dns_import.lng @@ -12,4 +12,3 @@ $wb['no_file_uploaded_error'] = 'Ingen zonfil uppladdad'; $wb['zone_file_import_txt'] = 'Zonfilsimport'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_mx.lng b/interface/web/dns/lib/lang/se_dns_mx.lng index 0bfc234..58921d3 100644 --- a/interface/web/dns/lib/lang/se_dns_mx.lng +++ b/interface/web/dns/lib/lang/se_dns_mx.lng @@ -16,4 +16,3 @@ $wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_ns.lng b/interface/web/dns/lib/lang/se_dns_ns.lng index 2ce51da..d8d652c 100644 --- a/interface/web/dns/lib/lang/se_dns_ns.lng +++ b/interface/web/dns/lib/lang/se_dns_ns.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Namnserverformatet är ogiltigt'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_ptr.lng b/interface/web/dns/lib/lang/se_dns_ptr.lng index 6c42a8f..254b45c 100644 --- a/interface/web/dns/lib/lang/se_dns_ptr.lng +++ b/interface/web/dns/lib/lang/se_dns_ptr.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Canonical hostname format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_rp.lng b/interface/web/dns/lib/lang/se_dns_rp.lng index e37bc8f..91c4f07 100644 --- a/interface/web/dns/lib/lang/se_dns_rp.lng +++ b/interface/web/dns/lib/lang/se_dns_rp.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Responsible person field format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_slave.lng b/interface/web/dns/lib/lang/se_dns_slave.lng index 254f360..c426df7 100644 --- a/interface/web/dns/lib/lang/se_dns_slave.lng +++ b/interface/web/dns/lib/lang/se_dns_slave.lng @@ -15,4 +15,3 @@ $wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4'; $wb['secondary_zone_txt'] = 'Secondary DNS Zone'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_slave_list.lng b/interface/web/dns/lib/lang/se_dns_slave_list.lng index 6e7951d..4ced2dd 100644 --- a/interface/web/dns/lib/lang/se_dns_slave_list.lng +++ b/interface/web/dns/lib/lang/se_dns_slave_list.lng @@ -7,4 +7,3 @@ $wb['add_new_record_txt'] = 'Add new secondary DNS Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_soa.lng b/interface/web/dns/lib/lang/se_dns_soa.lng index 4f2eefa..935211a 100644 --- a/interface/web/dns/lib/lang/se_dns_soa.lng +++ b/interface/web/dns/lib/lang/se_dns_soa.lng @@ -36,4 +36,3 @@ $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['xfer_error_regex'] = 'Also notify: Please use an IP address.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_soa_list.lng b/interface/web/dns/lib/lang/se_dns_soa_list.lng index b534641..da7b8e2 100644 --- a/interface/web/dns/lib/lang/se_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/se_dns_soa_list.lng @@ -8,4 +8,3 @@ $wb['add_new_record_txt'] = 'Add new DNS Zone (SOA)'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_srv.lng b/interface/web/dns/lib/lang/se_dns_srv.lng index fae1b70..866f44d 100644 --- a/interface/web/dns/lib/lang/se_dns_srv.lng +++ b/interface/web/dns/lib/lang/se_dns_srv.lng @@ -18,4 +18,3 @@ $wb['aux_txt'] = 'Priority'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_template.lng b/interface/web/dns/lib/lang/se_dns_template.lng index 6fd5b5c..516d5c2 100644 --- a/interface/web/dns/lib/lang/se_dns_template.lng +++ b/interface/web/dns/lib/lang/se_dns_template.lng @@ -4,4 +4,3 @@ $wb['template_txt'] = 'Mall'; $wb['visible_txt'] = 'Synlig'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_template_list.lng b/interface/web/dns/lib/lang/se_dns_template_list.lng index 120335f..8d9d730 100644 --- a/interface/web/dns/lib/lang/se_dns_template_list.lng +++ b/interface/web/dns/lib/lang/se_dns_template_list.lng @@ -4,4 +4,3 @@ $wb['name_txt'] = 'Name'; $wb['add_new_record_txt'] = 'Add new record'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_txt.lng b/interface/web/dns/lib/lang/se_dns_txt.lng index 0fc9b25..31da6eb 100644 --- a/interface/web/dns/lib/lang/se_dns_txt.lng +++ b/interface/web/dns/lib/lang/se_dns_txt.lng @@ -14,4 +14,3 @@ $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_wizard.lng b/interface/web/dns/lib/lang/se_dns_wizard.lng index 3bb0a63..52955fd 100644 --- a/interface/web/dns/lib/lang/se_dns_wizard.lng +++ b/interface/web/dns/lib/lang/se_dns_wizard.lng @@ -36,4 +36,3 @@ $wb['list_head_txt'] = 'DNS Zone Wizard'; $wb['list_desc_txt'] = 'Create a DNS Zone via a wizard'; ?> - diff --git a/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng new file mode 100644 index 0000000..43f6778 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng new file mode 100644 index 0000000..44cec90 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/list/dns_slave.list.php b/interface/web/dns/list/dns_slave.list.php index 5a242de..5c0be05 100644 --- a/interface/web/dns/list/dns_slave.list.php +++ b/interface/web/dns/list/dns_slave.list.php @@ -13,7 +13,11 @@ // Name of the list -$liste["name"] = "dns_slave"; +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["name"] = "dns_slave_admin"; +} else { + $liste["name"] = "dns_slave"; +} // Database table $liste["table"] = "dns_slave"; @@ -70,6 +74,22 @@ ), 'width' => "", 'value' => ""); + +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["item"][] = array( 'field' => "sys_groupid", + 'datatype' => "INTEGER", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name', + 'keyfield'=> 'groupid', + 'valuefield'=> 'name' + ), + 'width' => "", + 'value' => ""); +} $liste["item"][] = array( 'field' => "origin", 'datatype' => "VARCHAR", diff --git a/interface/web/dns/list/dns_soa.list.php b/interface/web/dns/list/dns_soa.list.php index e3b240a..d6f5641 100644 --- a/interface/web/dns/list/dns_soa.list.php +++ b/interface/web/dns/list/dns_soa.list.php @@ -13,7 +13,11 @@ // Name of the list -$liste["name"] = "dns_soa"; +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["name"] = "dns_soa_admin"; +} else { + $liste["name"] = "dns_soa"; +} // Database table $liste["table"] = "dns_soa"; @@ -70,6 +74,22 @@ ), 'width' => "", 'value' => ""); + +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["item"][] = array( 'field' => "sys_groupid", + 'datatype' => "INTEGER", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name', + 'keyfield'=> 'groupid', + 'valuefield'=> 'name' + ), + 'width' => "", + 'value' => ""); +} $liste["item"][] = array( 'field' => "origin", 'datatype' => "VARCHAR", diff --git a/interface/web/dns/templates/dns_slave_admin_list.htm b/interface/web/dns/templates/dns_slave_admin_list.htm new file mode 100644 index 0000000..d4f13ce --- /dev/null +++ b/interface/web/dns/templates/dns_slave_admin_list.htm @@ -0,0 +1,83 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_dns_slave"> + + <div class="pnl_toolsarea"> + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_slave_edit.php');"> + <span>{tmpl_var name="add_new_record_txt"}</span> + </button> + </div> + </fieldset> + </div> + + <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_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> + <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr class="filter"> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> + <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> + <td class="tbl_col_buttons"> + <button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','dns/dns_slave_list.php');"><span>{tmpl_var name="filter_txt"}</span></button> + </td> + </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('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_sys_groupid"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> + <td class="tbl_col_server_id"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_origin"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> + <td class="tbl_col_ns"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> + <td class="tbl_col_buttons"> + <a class="button icons16 icoDelete" href="javascript: del_record('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm new file mode 100644 index 0000000..b77f884 --- /dev/null +++ b/interface/web/dns/templates/dns_soa_admin_list.htm @@ -0,0 +1,86 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_dns_soa"> + + <div class="pnl_toolsarea"> + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_wizard.php');"><span>{tmpl_var name="add_new_record_wizard_txt"}</span></button> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_soa_edit.php');"><span>{tmpl_var name="add_new_record_txt"}</span></button> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_import.php');"><span>Import Zone File</span></button> + </div> + </fieldset> + </div> + + <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_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> + <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> + <th class="tbl_col_mbox" scope="col"><tmpl_var name="mbox_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr class="filter"> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> + <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> + <td class="tbl_col_mbox"><input type="text" name="search_mbox" value="{tmpl_var name='search_mbox'}" /></td> + <td class="tbl_col_buttons"> + <button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','dns/dns_soa_list.php');"><span>{tmpl_var name="filter_txt"}</span></button> + </td> + </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('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</td> + <td class="tbl_col_sys_groupid"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> + <td class="tbl_col_server_id"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_origin"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> + <td class="tbl_col_ns"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> + <td class="tbl_col_mbox"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="mbox"}</a></td> + <td class="tbl_col_buttons"> + <a class="button icons16 icoDelete" href="javascript: del_record('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="7">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/help/lib/lang/se.lng b/interface/web/help/lib/lang/se.lng index e096257..58fe6a0 100644 --- a/interface/web/help/lib/lang/se.lng +++ b/interface/web/help/lib/lang/se.lng @@ -12,4 +12,3 @@ $wb['Add a Question & Answer Pair'] = 'Lägg till fråga och svar'; $wb['Manage Questions'] = 'Hantera frågor'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_form.lng b/interface/web/help/lib/lang/se_faq_form.lng index 743e02d..5a7f384 100644 --- a/interface/web/help/lib/lang/se_faq_form.lng +++ b/interface/web/help/lib/lang/se_faq_form.lng @@ -4,4 +4,3 @@ $wb['faq_answer_txt'] = 'Svar'; $wb['faq_section_txt'] = 'Kategori'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_manage_questions_list.lng b/interface/web/help/lib/lang/se_faq_manage_questions_list.lng index c802176..d615cda 100644 --- a/interface/web/help/lib/lang/se_faq_manage_questions_list.lng +++ b/interface/web/help/lib/lang/se_faq_manage_questions_list.lng @@ -7,4 +7,3 @@ $wb['faq_faq_questions_txt'] = 'Vanliga frågor'; $wb['faq_new_question_txt'] = 'Lägg till ny fråga och svar'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_sections_form.lng b/interface/web/help/lib/lang/se_faq_sections_form.lng index 9367eeb..5cc812f 100644 --- a/interface/web/help/lib/lang/se_faq_sections_form.lng +++ b/interface/web/help/lib/lang/se_faq_sections_form.lng @@ -1,4 +1,3 @@ <?php $wb['faq_section_name_txt'] = 'Kategorinamn'; ?> - diff --git a/interface/web/help/lib/lang/se_help_faq_list.lng b/interface/web/help/lib/lang/se_help_faq_list.lng index c8aebaf..bc1d421 100644 --- a/interface/web/help/lib/lang/se_help_faq_list.lng +++ b/interface/web/help/lib/lang/se_help_faq_list.lng @@ -1,4 +1,3 @@ <?php $wb['edit_txt'] = 'Redigera'; ?> - diff --git a/interface/web/help/lib/lang/se_help_faq_sections_list.lng b/interface/web/help/lib/lang/se_help_faq_sections_list.lng index 021feb3..5ea1a71 100644 --- a/interface/web/help/lib/lang/se_help_faq_sections_list.lng +++ b/interface/web/help/lib/lang/se_help_faq_sections_list.lng @@ -6,4 +6,3 @@ $wb['faq_faq_sections_txt'] = 'FAQ-kategorier'; $wb['faq_new_section_txt'] = 'Lägg till ny kategori'; ?> - diff --git a/interface/web/help/lib/lang/se_support_message.lng b/interface/web/help/lib/lang/se_support_message.lng index 0de8420..b3cefaa 100644 --- a/interface/web/help/lib/lang/se_support_message.lng +++ b/interface/web/help/lib/lang/se_support_message.lng @@ -13,4 +13,3 @@ $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> - diff --git a/interface/web/help/lib/lang/se_support_message_list.lng b/interface/web/help/lib/lang/se_support_message_list.lng index f68bb58..af9663f 100644 --- a/interface/web/help/lib/lang/se_support_message_list.lng +++ b/interface/web/help/lib/lang/se_support_message_list.lng @@ -5,4 +5,3 @@ $wb['add_new_record_txt'] = 'Skapa nyttt supportmeddelande'; $wb['date_txt'] = 'Datum'; ?> - diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index 4e51cd5..85a321c 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -809,7 +809,7 @@ oldPWField.remove(); var pword = password(<?php echo $min_password_length; ?>, false, 1); jQuery('#'+repeatPasswordFieldID).val(pword); - newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup'); + newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup').select(); } var funcDisableClick = function(e) { e.preventDefault(); return false; }; diff --git a/interface/web/login/lib/lang/se.lng b/interface/web/login/lib/lang/se.lng index e3301e0..aeb58b1 100644 --- a/interface/web/login/lib/lang/se.lng +++ b/interface/web/login/lib/lang/se.lng @@ -25,4 +25,3 @@ $wb['email_error'] = 'Epostadressen innehåller otillåtna tecken eller är felformatterad.'; $wb['stay_logged_in_txt'] = 'Håll mig inloggad'; ?> - diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index e831784..fea3abc 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -1,12 +1,11 @@ <?php $wb['login_1_txt'] = 'Vill du loggga in som användare'; -$wb['login_2_txt'] = 'If you do so, you can "go back" by clicking at logout.'; +$wb['login_2_txt'] = 'If you do so, you can \"go back\" by clicking at logout.'; $wb['btn_yes_txt'] = 'Ja, logga in som kund'; $wb['btn_back_txt'] = 'Nej, tillbaka till listan'; $wb['udp_port_help_txt'] = 'Avdelade med kommatecken'; $wb['active_txt'] = 'Aktiv'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; ?> - diff --git a/interface/web/mail/form/mail_user_filter.tform.php b/interface/web/mail/form/mail_user_filter.tform.php index e001f68..d5f6a0a 100644 --- a/interface/web/mail/form/mail_user_filter.tform.php +++ b/interface/web/mail/form/mail_user_filter.tform.php @@ -112,7 +112,7 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\p{Latin}0-9\.\-\_\ ]{0,100}$/u', + 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&]{0,100}$/u', 'errmsg'=> 'target_error_regex'), ), 'default' => '', diff --git a/interface/web/mail/form/mail_whitelist.tform.php b/interface/web/mail/form/mail_whitelist.tform.php index 3edb132..aebcfe6 100644 --- a/interface/web/mail/form/mail_whitelist.tform.php +++ b/interface/web/mail/form/mail_whitelist.tform.php @@ -51,7 +51,7 @@ $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete $form["tabs"]['whitelist'] = array ( - 'title' => "Witelist", + 'title' => "Whitelist", 'width' => 100, 'template' => "templates/mail_whitelist_edit.htm", 'fields' => array ( diff --git a/interface/web/mail/lib/lang/fr_mail_get.lng b/interface/web/mail/lib/lang/fr_mail_get.lng index 6779ce3..934af5e 100644 --- a/interface/web/mail/lib/lang/fr_mail_get.lng +++ b/interface/web/mail/lib/lang/fr_mail_get.lng @@ -14,6 +14,6 @@ $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n\'est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les emails (incl. les emails lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les emails après récupération\" = non avec \"Récupérer tous les emails\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les emails après récupération\\" = non avec \\"Récupérer tous les emails\\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/se.lng b/interface/web/mail/lib/lang/se.lng index 6542378..3edc203 100644 --- a/interface/web/mail/lib/lang/se.lng +++ b/interface/web/mail/lib/lang/se.lng @@ -46,4 +46,3 @@ $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_alias.lng b/interface/web/mail/lib/lang/se_mail_alias.lng index 4dc4e25..e0f6135 100644 --- a/interface/web/mail/lib/lang/se_mail_alias.lng +++ b/interface/web/mail/lib/lang/se_mail_alias.lng @@ -12,4 +12,3 @@ $wb['duplicate_email_alias_txt'] = 'Detta epostalias finns redan'; $wb['source_txt'] = 'Alias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_alias_list.lng b/interface/web/mail/lib/lang/se_mail_alias_list.lng index e72d91b..3b63170 100644 --- a/interface/web/mail/lib/lang/se_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/se_mail_alias_list.lng @@ -6,4 +6,3 @@ $wb['source_txt'] = 'Källa'; $wb['add_new_record_txt'] = 'Lägg till nytt epostalias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_aliasdomain.lng b/interface/web/mail/lib/lang/se_mail_aliasdomain.lng index 9a2c5c3..e2105fb 100644 --- a/interface/web/mail/lib/lang/se_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/se_mail_aliasdomain.lng @@ -9,4 +9,3 @@ $wb['source_error_unique'] = 'Källdomänen finns redan.'; $wb['source_error_regex'] = 'Ogiltig källdomän..'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng index d04d8cd..e874039 100644 --- a/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng @@ -5,4 +5,3 @@ $wb['destination_txt'] = 'Destination'; $wb['add_new_record_txt'] = 'Lägg till nytt domänalias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_blacklist.lng b/interface/web/mail/lib/lang/se_mail_blacklist.lng index 70b1be5..34b1f76 100644 --- a/interface/web/mail/lib/lang/se_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/se_mail_blacklist.lng @@ -7,4 +7,3 @@ $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnått.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_blacklist_list.lng b/interface/web/mail/lib/lang/se_mail_blacklist_list.lng index d3da0de..158b989 100644 --- a/interface/web/mail/lib/lang/se_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_blacklist_list.lng @@ -8,4 +8,3 @@ $wb['recipient_txt'] = 'Mottagare'; $wb['access_txt'] = 'åtkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_content_filter.lng b/interface/web/mail/lib/lang/se_mail_content_filter.lng index c7fb595..2f82e76 100644 --- a/interface/web/mail/lib/lang/se_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_content_filter.lng @@ -7,4 +7,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['pattern_error_empty'] = 'Matchningsfältet är tomt.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_content_filter_list.lng b/interface/web/mail/lib/lang/se_mail_content_filter_list.lng index c612f9b..6eac193 100644 --- a/interface/web/mail/lib/lang/se_mail_content_filter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_content_filter_list.lng @@ -6,4 +6,3 @@ $wb['action_txt'] = 'Händelse'; $wb['add_new_record_txt'] = 'Lägg till nytt innehållsfilter'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain.lng b/interface/web/mail/lib/lang/se_mail_domain.lng index e07dd25..295d10a 100644 --- a/interface/web/mail/lib/lang/se_mail_domain.lng +++ b/interface/web/mail/lib/lang/se_mail_domain.lng @@ -11,4 +11,3 @@ $wb['policy_txt'] = 'Spamfilter'; $wb['no_policy'] = '- ej aktiverat -'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng index bf8cd12..a4a203d 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng @@ -6,4 +6,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['sys_groupid_txt'] = 'Kund'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng index 9e03e69..7ef1116 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng @@ -9,4 +9,3 @@ $wb['source_txt'] = 'Källa'; $wb['destination_error_isemail'] = 'Destinationen när inte en giltig epostadress.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng index 0e6958e..51789ee 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng @@ -7,4 +7,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['source_txt'] = 'källa'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_list.lng b/interface/web/mail/lib/lang/se_mail_domain_list.lng index 96120f5..4f3b548 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_list.lng @@ -5,4 +5,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny domän'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_forward.lng b/interface/web/mail/lib/lang/se_mail_forward.lng index 511e0b6..af583f0 100644 --- a/interface/web/mail/lib/lang/se_mail_forward.lng +++ b/interface/web/mail/lib/lang/se_mail_forward.lng @@ -7,4 +7,3 @@ $wb['domain_txt'] = 'Domän'; $wb['source_txt'] = 'Källadress'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_forward_list.lng b/interface/web/mail/lib/lang/se_mail_forward_list.lng index f271306..e1d7464 100644 --- a/interface/web/mail/lib/lang/se_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/se_mail_forward_list.lng @@ -6,4 +6,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny vidarebefordran'; $wb['source_txt'] = 'källa'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_get.lng b/interface/web/mail/lib/lang/se_mail_get.lng index f15208c..db44402 100644 --- a/interface/web/mail/lib/lang/se_mail_get.lng +++ b/interface/web/mail/lib/lang/se_mail_get.lng @@ -14,7 +14,6 @@ $wb['destination_error_isemail'] = 'Ingen destination vald.'; $wb['source_server_error_regex'] = 'POP3-/Imapserver är inte ett giltigt domännamn.'; $wb['source_read_all_txt'] = 'Hämta all epost (även läst epost)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use "Delete emails after retrieval" = no together with "Retrieve all emails" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Vänligen kontrollera först om eposthämtning fungerar innan du aktiverar detta val..'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_get_list.lng b/interface/web/mail/lib/lang/se_mail_get_list.lng index 0d06cad..9369095 100644 --- a/interface/web/mail/lib/lang/se_mail_get_list.lng +++ b/interface/web/mail/lib/lang/se_mail_get_list.lng @@ -7,4 +7,3 @@ $wb['destination_txt'] = 'Destination'; $wb['add_new_record_txt'] = 'Lägg till nytt konto'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_mailinglist.lng b/interface/web/mail/lib/lang/se_mail_mailinglist.lng index 68a7130..e7f927b 100644 --- a/interface/web/mail/lib/lang/se_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/se_mail_mailinglist.lng @@ -20,4 +20,3 @@ $wb['email_error_isemail'] = 'Epostadressen är ogiltig'; $wb['mailinglist_txt'] = 'Epostlista'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng index 11a82be..2e9f364 100644 --- a/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng @@ -3,4 +3,3 @@ $wb['domain_txt'] = 'Domän'; $wb['listname_txt'] = 'Listnamn'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_relay_recipient.lng b/interface/web/mail/lib/lang/se_mail_relay_recipient.lng index ffb64ad..7506198 100644 --- a/interface/web/mail/lib/lang/se_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/se_mail_relay_recipient.lng @@ -7,4 +7,3 @@ $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnått.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng index 4c34ebf..c9176c7 100644 --- a/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng +++ b/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng @@ -7,4 +7,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny relämottagare'; $wb['access_txt'] = 'åtkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_spamfilter.lng b/interface/web/mail/lib/lang/se_mail_spamfilter.lng index 3080425..c83f09c 100644 --- a/interface/web/mail/lib/lang/se_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/se_mail_spamfilter.lng @@ -15,4 +15,3 @@ $wb['spam_redirect_maildir_purge_txt'] = 'Töm mappen efter'; $wb['days_txt'] = 'Dagar'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng index 407d516..2c361e1 100644 --- a/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng @@ -6,4 +6,3 @@ $wb['email_txt'] = 'Epost'; $wb['add_new_record_txt'] = 'Lägg till nytt spamfilter'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_transport.lng b/interface/web/mail/lib/lang/se_mail_transport.lng index 198f807..70e26b7 100644 --- a/interface/web/mail/lib/lang/se_mail_transport.lng +++ b/interface/web/mail/lib/lang/se_mail_transport.lng @@ -9,4 +9,3 @@ $wb['limit_mailrouting_txt'] = 'Det maximala antalet epostrutter för ditt konto är uppnått.'; $wb['transport_txt'] = 'Transport'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_transport_list.lng b/interface/web/mail/lib/lang/se_mail_transport_list.lng index 63474a8..2ce6dd8 100644 --- a/interface/web/mail/lib/lang/se_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/se_mail_transport_list.lng @@ -7,4 +7,3 @@ $wb['sort_order_txt'] = 'Sortera på'; $wb['add_new_record_txt'] = 'Lägg till ny transport'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng index 62be339..d6df113 100644 --- a/interface/web/mail/lib/lang/se_mail_user.lng +++ b/interface/web/mail/lib/lang/se_mail_user.lng @@ -51,4 +51,3 @@ $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_filter.lng b/interface/web/mail/lib/lang/se_mail_user_filter.lng index ed9574f..e6e62de 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter.lng @@ -18,4 +18,3 @@ $wb['move_to_txt'] = 'Flytta till'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_filter_list.lng b/interface/web/mail/lib/lang/se_mail_user_filter_list.lng index 7825393..7d6e0c5 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter_list.lng @@ -5,4 +5,3 @@ $wb['page_of_txt'] = 'av'; $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_list.lng b/interface/web/mail/lib/lang/se_mail_user_list.lng index f18bc71..af96af8 100644 --- a/interface/web/mail/lib/lang/se_mail_user_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_list.lng @@ -6,4 +6,3 @@ $wb['name_txt'] = 'Riktigt namn'; $wb['login_txt'] = 'Logga in'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_stats_list.lng b/interface/web/mail/lib/lang/se_mail_user_stats_list.lng index 1bec4d4..de6afd7 100644 --- a/interface/web/mail/lib/lang/se_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_stats_list.lng @@ -6,4 +6,3 @@ $wb['this_year_txt'] = 'I år'; $wb['last_year_txt'] = 'Föregående år'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_whitelist.lng b/interface/web/mail/lib/lang/se_mail_whitelist.lng index 40eaf86..7ce682f 100644 --- a/interface/web/mail/lib/lang/se_mail_whitelist.lng +++ b/interface/web/mail/lib/lang/se_mail_whitelist.lng @@ -7,4 +7,3 @@ $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Maximala antalet epostfilter för ditt konto är uppnått.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_whitelist_list.lng b/interface/web/mail/lib/lang/se_mail_whitelist_list.lng index a9f52a8..f72e8e2 100644 --- a/interface/web/mail/lib/lang/se_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_whitelist_list.lng @@ -8,4 +8,3 @@ $wb['recipient_txt'] = 'Mottagare'; $wb['access_txt'] = 'åtkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng index 2839c6c..873e43d 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng @@ -10,4 +10,3 @@ $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng index edf0842..d5cac76 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng @@ -7,4 +7,3 @@ $wb['email_txt'] = 'Vitlistad epostadress'; $wb['add_new_record_txt'] = 'Lägg till svartlistning'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_config.lng b/interface/web/mail/lib/lang/se_spamfilter_config.lng index ebfedb3..a67fb5b 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_config.lng @@ -18,4 +18,3 @@ $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_config_list.lng b/interface/web/mail/lib/lang/se_spamfilter_config_list.lng index 52b398b..9d2ec14 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_config_list.lng @@ -3,4 +3,3 @@ $wb['server_name_txt'] = 'Server'; $wb['server_id_txt'] = 'server_id'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy.lng b/interface/web/mail/lib/lang/se_spamfilter_policy.lng index d5a429b..e876330 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy.lng @@ -36,4 +36,3 @@ $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng index da678a4..04491ae 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng @@ -7,4 +7,3 @@ $wb['bad_header_lover_txt'] = 'Bad Header lover'; $wb['add_new_record_txt'] = 'Add Policy record'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_users.lng b/interface/web/mail/lib/lang/se_spamfilter_users.lng index babb304..ba3b60e 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_users.lng @@ -11,4 +11,3 @@ $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_users_list.lng b/interface/web/mail/lib/lang/se_spamfilter_users_list.lng index 830ac39..4ff8784 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_users_list.lng @@ -8,4 +8,3 @@ $wb['email_txt'] = 'Epost'; $wb['add_new_record_txt'] = 'Lägg till spamfilteranvändare'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng index 2839c6c..873e43d 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng @@ -10,4 +10,3 @@ $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng index 00185a0..080ec27 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng @@ -7,4 +7,3 @@ $wb['email_txt'] = 'Vitlistad epostadress'; $wb['add_new_record_txt'] = 'Lägg till vitlistning'; ?> - diff --git a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng index 380cf5b..dc57c61 100755 --- a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng @@ -6,4 +6,3 @@ $wb['used_txt'] = 'Använt utrymme'; $wb['percentage_txt'] = 'Använt %'; ?> - diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 45a1ade..02dc55b 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -359,7 +359,16 @@ //* Update the mailinglist $app->db->query("UPDATE mail_mailinglist SET sys_userid = $client_user_id, sys_groupid = $sys_groupid WHERE domain = '".$app->db->quote($this->oldDataRecord['domain'])."'"); - + + //* Update fetchmail accounts + $fetchmail = $app->db->queryAllRecords("SELECT * FROM mail_get WHERE destination like '%@".$app->db->quote($this->oldDataRecord['domain'])."'"); + if(is_array($fetchmail)) { + foreach($fetchmail as $rec) { + $destination = $app->db->quote(str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['destination'])); + $app->db->datalogUpdate('mail_get', "destination = '$destination', sys_userid = $client_user_id, sys_groupid = '$sys_groupid'", 'mailget_id', $rec['mailget_id']); + } + } + //* Delete the old spamfilter record $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($this->oldDataRecord["domain"])."'"); $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 0c9110b..8166b58 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -166,7 +166,7 @@ } // Check the quota and adjust - if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && $app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) { + if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && (($app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) || ($_POST["quota"] <= 0))) { $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); $mailquota = $tmp["mailquota"] / 1024 / 1024; $new_mailbox_quota = $app->functions->intval($this->dataRecord["quota"]); @@ -179,6 +179,7 @@ unset($tmp); unset($tmp_quota); } + } // end if user is not admin diff --git a/interface/web/mailuser/lib/lang/se.lng b/interface/web/mailuser/lib/lang/se.lng index f9e6f5b..b0d55d4 100644 --- a/interface/web/mailuser/lib/lang/se.lng +++ b/interface/web/mailuser/lib/lang/se.lng @@ -7,4 +7,3 @@ $wb['Spamfilter'] = 'Spamfilter'; $wb['Email Filters'] = 'Epostfilter'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_index.lng b/interface/web/mailuser/lib/lang/se_index.lng index a23c6a6..785507b 100644 --- a/interface/web/mailuser/lib/lang/se_index.lng +++ b/interface/web/mailuser/lib/lang/se_index.lng @@ -10,4 +10,3 @@ $wb['mb_txt'] = 'MB'; $wb['none_txt'] = 'Inget'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng index 9429978..4a9215c 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng @@ -11,4 +11,3 @@ $wb['now_txt'] = 'Nu'; $wb['autoresponder_subject_txt'] = 'Ämnesrad'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_cc.lng b/interface/web/mailuser/lib/lang/se_mail_user_cc.lng index 203a928..b01ae1b 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_cc.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_cc.lng @@ -7,4 +7,3 @@ $wb['name_optional_txt'] = '(Frivilligt)'; $wb['cc_note_txt'] = '(Separera flera epostadresser med kommatecken)'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng index 17da57a..8cf96ce 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng @@ -18,4 +18,3 @@ $wb['move_to_txt'] = 'Flytta till'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng index f4f757d..c21eef0 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng @@ -6,4 +6,3 @@ $wb['page_of_txt'] = 'av'; $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_password.lng b/interface/web/mailuser/lib/lang/se_mail_user_password.lng index 27ebb37..c784301 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_password.lng @@ -8,4 +8,3 @@ $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng index e457b5a..7ec5f2a 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng @@ -5,4 +5,3 @@ $wb['no_policy'] = '- ej aktiverat -'; $wb['policy_txt'] = 'Policy'; ?> - diff --git a/interface/web/mailuser/mail_user_password_edit.php b/interface/web/mailuser/mail_user_password_edit.php index f6d6d78..07a1925 100644 --- a/interface/web/mailuser/mail_user_password_edit.php +++ b/interface/web/mailuser/mail_user_password_edit.php @@ -51,7 +51,8 @@ class page_action extends tform_actions { function onSubmit() { - + global $app, $conf; + $this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']); parent::onSubmit(); diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 0df6528..b550f80 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -153,4 +153,3 @@ $wb['no_munin_url_defined_txt'] = 'Ingen Munin-URL definierad.'; $wb['no_permissions_to_view_munin_txt'] = 'Du har inte behörighet att visa Munin.'; ?> - diff --git a/interface/web/monitor/lib/lang/se_datalog_list.lng b/interface/web/monitor/lib/lang/se_datalog_list.lng index 527b149..e3e76ea 100644 --- a/interface/web/monitor/lib/lang/se_datalog_list.lng +++ b/interface/web/monitor/lib/lang/se_datalog_list.lng @@ -6,4 +6,3 @@ $wb['action_txt'] = 'Händelse'; $wb['status_txt'] = 'Status'; ?> - diff --git a/interface/web/monitor/lib/lang/se_syslog_list.lng b/interface/web/monitor/lib/lang/se_syslog_list.lng index f3194b6..6c7268c 100644 --- a/interface/web/monitor/lib/lang/se_syslog_list.lng +++ b/interface/web/monitor/lib/lang/se_syslog_list.lng @@ -5,4 +5,3 @@ $wb['loglevel_txt'] = 'Loggnivå'; $wb['message_txt'] = 'Meddelande'; ?> - diff --git a/interface/web/sites/form/database.tform.php b/interface/web/sites/form/database.tform.php index a3e8772..fb600fd 100644 --- a/interface/web/sites/form/database.tform.php +++ b/interface/web/sites/form/database.tform.php @@ -88,7 +88,7 @@ 'type' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'y', + 'default' => 'mysql', 'value' => array('mysql' => 'MySQL') ), 'database_name' => array ( @@ -139,7 +139,7 @@ 'database_charset' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'y', + 'default' => '', 'value' => array('' => 'DB-Default', 'latin1' => 'Latin 1', 'utf8' => 'UTF-8') ), 'remote_access' => array ( diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index 20e4565..ef11b60 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -91,7 +91,7 @@ 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'username_error_unique'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', + 'regex' => '/^[\w\.\-@\+]{0,64}$/', 'errmsg'=> 'username_error_regex'), ), 'default' => '', @@ -166,6 +166,13 @@ 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -177,6 +184,13 @@ 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'gid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -187,7 +201,10 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), + 'errmsg'=> 'directory_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index ab7cef1..062ed6e 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -177,6 +177,13 @@ 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -188,6 +195,13 @@ 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -197,6 +211,12 @@ 'shell' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'shell_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\/]{5,20}$/', + 'errmsg'=> 'shell_error_regex'), + ), 'default' => '/bin/bash', 'value' => '', 'width' => '30', @@ -205,8 +225,11 @@ 'dir' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'directory_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/ftp_user_edit.php b/interface/web/sites/ftp_user_edit.php index 0346201..ba695e0 100644 --- a/interface/web/sites/ftp_user_edit.php +++ b/interface/web/sites/ftp_user_edit.php @@ -138,6 +138,11 @@ $dir = $app->db->quote($web["document_root"]); $uid = $app->db->quote($web["system_user"]); $gid = $app->db->quote($web["system_group"]); + + // Check system user and group + if($app->functions->is_allowed_user($uid) == false || $app->functions->is_allowed_group($gid) == false) { + $app->error('Invalid system user or group'); + } // The FTP user shall be owned by the same group then the website $sys_groupid = $app->functions->intval($web['sys_groupid']); @@ -148,7 +153,7 @@ function onBeforeUpdate() { global $app, $conf, $interfaceConf; - + /* * If the names should be restricted -> do it! */ diff --git a/interface/web/sites/lib/lang/ar_ftp_user.lng b/interface/web/sites/lib/lang/ar_ftp_user.lng index 0492731..42b8c4d 100644 --- a/interface/web/sites/lib/lang/ar_ftp_user.lng +++ b/interface/web/sites/lib/lang/ar_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng index 8460d4e..8095f4b 100644 --- a/interface/web/sites/lib/lang/ar_shell_user.lng +++ b/interface/web/sites/lib/lang/ar_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_folder_list.lng b/interface/web/sites/lib/lang/ar_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/ar_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ar_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_folder_user_list.lng b/interface/web/sites/lib/lang/ar_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/ar_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ar_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/bg_ftp_user.lng b/interface/web/sites/lib/lang/bg_ftp_user.lng index fc15872..4d5cef7 100644 --- a/interface/web/sites/lib/lang/bg_ftp_user.lng +++ b/interface/web/sites/lib/lang/bg_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/bg_shell_user.lng b/interface/web/sites/lib/lang/bg_shell_user.lng index 82a44af..1570914 100644 --- a/interface/web/sites/lib/lang/bg_shell_user.lng +++ b/interface/web/sites/lib/lang/bg_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_folder_list.lng b/interface/web/sites/lib/lang/bg_web_folder_list.lng index 36c9cbc..4e0f4b8 100644 --- a/interface/web/sites/lib/lang/bg_web_folder_list.lng +++ b/interface/web/sites/lib/lang/bg_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Сървър'; $wb['parent_domain_id_txt'] = 'Уебсайт'; $wb['path_txt'] = 'Път'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_folder_user_list.lng b/interface/web/sites/lib/lang/bg_web_folder_user_list.lng index ff89ba0..2824380 100644 --- a/interface/web/sites/lib/lang/bg_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/bg_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Потребителско име'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index 4873bfd..f46b94f 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index 8a098cb..69e0f6e 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_list.lng b/interface/web/sites/lib/lang/br_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/br_web_folder_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user_list.lng b/interface/web/sites/lib/lang/br_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng index 2ef0f29..b580e08 100644 --- a/interface/web/sites/lib/lang/cz_ftp_user.lng +++ b/interface/web/sites/lib/lang/cz_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng index 9bc6bdd..fc933da 100644 --- a/interface/web/sites/lib/lang/cz_shell_user.lng +++ b/interface/web/sites/lib/lang/cz_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'Hesla se shodují.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng index b75c0e8..c7fa12c 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webové stránky'; $wb['path_txt'] = 'Cesta'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng index 99fe620..c0059b2 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Aktivní'; $wb['web_folder_id_txt'] = 'Složka'; $wb['username_txt'] = 'Uživatelské jméno'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/de_ftp_user.lng b/interface/web/sites/lib/lang/de_ftp_user.lng index 65e8481..285c6c6 100644 --- a/interface/web/sites/lib/lang/de_ftp_user.lng +++ b/interface/web/sites/lib/lang/de_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/de_shell_user.lng b/interface/web/sites/lib/lang/de_shell_user.lng index 9de369f..3c4cc2d 100644 --- a/interface/web/sites/lib/lang/de_shell_user.lng +++ b/interface/web/sites/lib/lang/de_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['username_must_not_exceed_32_chars_txt'] = 'Der Benutzername darf 32 Zeichen nicht überschreiten.'; $wb['username_not_allowed_txt'] = 'Der Benutzername ist nicht erlaubt.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_list.lng b/interface/web/sites/lib/lang/de_web_folder_list.lng index 5491202..34e8f86 100644 --- a/interface/web/sites/lib/lang/de_web_folder_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webseite'; $wb['path_txt'] = 'Pfad'; +$wb['add_new_record_txt'] = 'Ordner hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_user_list.lng b/interface/web/sites/lib/lang/de_web_folder_user_list.lng index 5357760..c9bcb9c 100644 --- a/interface/web/sites/lib/lang/de_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Aktiv'; $wb['web_folder_id_txt'] = 'Ordner'; $wb['username_txt'] = 'Benutzername'; +$wb['add_new_record_txt'] = 'Ordner Benutzer hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/el_ftp_user.lng b/interface/web/sites/lib/lang/el_ftp_user.lng index 2f89d27..a77581d 100644 --- a/interface/web/sites/lib/lang/el_ftp_user.lng +++ b/interface/web/sites/lib/lang/el_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/el_shell_user.lng b/interface/web/sites/lib/lang/el_shell_user.lng index 3c3ea31..2ced9c2 100644 --- a/interface/web/sites/lib/lang/el_shell_user.lng +++ b/interface/web/sites/lib/lang/el_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/el_web_folder_list.lng b/interface/web/sites/lib/lang/el_web_folder_list.lng index 86dc18c..f1e9e33 100644 --- a/interface/web/sites/lib/lang/el_web_folder_list.lng +++ b/interface/web/sites/lib/lang/el_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Διαδρομή'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/el_web_folder_user_list.lng b/interface/web/sites/lib/lang/el_web_folder_user_list.lng index 2103bcb..bcbd08c 100644 --- a/interface/web/sites/lib/lang/el_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/el_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Ενεργός'; $wb['web_folder_id_txt'] = 'Φάκελος'; $wb['username_txt'] = 'Όνομα Χρήστη'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/en_ftp_user.lng b/interface/web/sites/lib/lang/en_ftp_user.lng index ed5fe02..2c8e2a9 100644 --- a/interface/web/sites/lib/lang/en_ftp_user.lng +++ b/interface/web/sites/lib/lang/en_ftp_user.lng @@ -32,4 +32,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng index c15d1b5..2ae9b4e 100644 --- a/interface/web/sites/lib/lang/en_shell_user.lng +++ b/interface/web/sites/lib/lang/en_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/en_web_folder_list.lng b/interface/web/sites/lib/lang/en_web_folder_list.lng index 32780ab..5966c03 100644 --- a/interface/web/sites/lib/lang/en_web_folder_list.lng +++ b/interface/web/sites/lib/lang/en_web_folder_list.lng @@ -4,4 +4,5 @@ $wb["server_id_txt"] = 'Server'; $wb["parent_domain_id_txt"] = 'Website'; $wb["path_txt"] = 'Path'; +$wb["add_new_record_txt"] = 'Add new Folder'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_folder_user_list.lng b/interface/web/sites/lib/lang/en_web_folder_user_list.lng index d0d9e05..d0350c9 100644 --- a/interface/web/sites/lib/lang/en_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/en_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb["active_txt"] = 'Active'; $wb["web_folder_id_txt"] = 'Folder'; $wb["username_txt"] = 'Username'; +$wb["add_new_record_txt"] = 'Add new Folder User'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/es_ftp_user.lng b/interface/web/sites/lib/lang/es_ftp_user.lng index c8b86b0..f8a5e6c 100644 --- a/interface/web/sites/lib/lang/es_ftp_user.lng +++ b/interface/web/sites/lib/lang/es_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/es_shell_user.lng b/interface/web/sites/lib/lang/es_shell_user.lng index 45fd930..46c39cc 100644 --- a/interface/web/sites/lib/lang/es_shell_user.lng +++ b/interface/web/sites/lib/lang/es_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/es_web_folder_list.lng b/interface/web/sites/lib/lang/es_web_folder_list.lng index 668f626..e760a67 100644 --- a/interface/web/sites/lib/lang/es_web_folder_list.lng +++ b/interface/web/sites/lib/lang/es_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Sitio web'; $wb['path_txt'] = 'Ruta'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/es_web_folder_user_list.lng b/interface/web/sites/lib/lang/es_web_folder_user_list.lng index 7779911..9bdb1e9 100644 --- a/interface/web/sites/lib/lang/es_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/es_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Activar'; $wb['web_folder_id_txt'] = 'Carpeta'; $wb['username_txt'] = 'Nombre de usuario'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fi_ftp_user.lng b/interface/web/sites/lib/lang/fi_ftp_user.lng index ca39439..4cf718c 100755 --- a/interface/web/sites/lib/lang/fi_ftp_user.lng +++ b/interface/web/sites/lib/lang/fi_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng index 06fe1bd..116e8c8 100755 --- a/interface/web/sites/lib/lang/fi_shell_user.lng +++ b/interface/web/sites/lib/lang/fi_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_folder_list.lng b/interface/web/sites/lib/lang/fi_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/fi_web_folder_list.lng +++ b/interface/web/sites/lib/lang/fi_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_folder_user_list.lng b/interface/web/sites/lib/lang/fi_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/fi_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/fi_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fr.lng b/interface/web/sites/lib/lang/fr.lng index c914ef0..9acee9d 100644 --- a/interface/web/sites/lib/lang/fr.lng +++ b/interface/web/sites/lib/lang/fr.lng @@ -31,5 +31,5 @@ $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps.lng b/interface/web/sites/lib/lang/fr_aps.lng index eb268b0..5d43e80 100644 --- a/interface/web/sites/lib/lang/fr_aps.lng +++ b/interface/web/sites/lib/lang/fr_aps.lng @@ -38,14 +38,14 @@ $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d\'utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n\'avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; -$wb['error_inv_email_for'] = 'L\'adresse email saisie pour le champ \"%s\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; +$wb['error_inv_email_for'] = 'L\'adresse email saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d\'installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d\'installation'; diff --git a/interface/web/sites/lib/lang/fr_ftp_user.lng b/interface/web/sites/lib/lang/fr_ftp_user.lng index 5d00f4b..f73a81b 100644 --- a/interface/web/sites/lib/lang/fr_ftp_user.lng +++ b/interface/web/sites/lib/lang/fr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Vérification du mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng index 3f967f8..2e518d7 100644 --- a/interface/web/sites/lib/lang/fr_shell_user.lng +++ b/interface/web/sites/lib/lang/fr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['username_must_not_exceed_32_chars_txt'] = 'Le nom d\'utilisateur ne doit pas dépasser 32 caractères.'; $wb['username_not_allowed_txt'] = 'Le nom d\'utilisateur est interdit.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_folder_list.lng b/interface/web/sites/lib/lang/fr_web_folder_list.lng index f358f8c..0eed4fd 100644 --- a/interface/web/sites/lib/lang/fr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/fr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Serveur'; $wb['parent_domain_id_txt'] = 'Site web'; $wb['path_txt'] = 'Chemin'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_folder_user_list.lng b/interface/web/sites/lib/lang/fr_web_folder_user_list.lng index e1824e2..663c6d2 100644 --- a/interface/web/sites/lib/lang/fr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/fr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Actif'; $wb['web_folder_id_txt'] = 'Dossier'; $wb['username_txt'] = 'Nom de l\'utilisateur'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng index ebc7250..edc7be0 100644 --- a/interface/web/sites/lib/lang/fr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng @@ -42,5 +42,5 @@ $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/hr_ftp_user.lng b/interface/web/sites/lib/lang/hr_ftp_user.lng index 6290c0e..dbefe0b 100644 --- a/interface/web/sites/lib/lang/hr_ftp_user.lng +++ b/interface/web/sites/lib/lang/hr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng index 4173787..d081fd7 100644 --- a/interface/web/sites/lib/lang/hr_shell_user.lng +++ b/interface/web/sites/lib/lang/hr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_folder_list.lng b/interface/web/sites/lib/lang/hr_web_folder_list.lng index 5696589..0a900fb 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['path_txt'] = 'Putanja'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng index af7792f..3beae9f 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Aktivno'; $wb['web_folder_id_txt'] = 'Web direkotrij'; $wb['username_txt'] = 'Korisničko ime'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/hu_ftp_user.lng b/interface/web/sites/lib/lang/hu_ftp_user.lng index 132bc49..bbf61d4 100644 --- a/interface/web/sites/lib/lang/hu_ftp_user.lng +++ b/interface/web/sites/lib/lang/hu_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/hu_shell_user.lng b/interface/web/sites/lib/lang/hu_shell_user.lng index 849f380..8eaa537 100644 --- a/interface/web/sites/lib/lang/hu_shell_user.lng +++ b/interface/web/sites/lib/lang/hu_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_folder_list.lng b/interface/web/sites/lib/lang/hu_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/hu_web_folder_list.lng +++ b/interface/web/sites/lib/lang/hu_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_folder_user_list.lng b/interface/web/sites/lib/lang/hu_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/hu_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/hu_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/id_ftp_user.lng b/interface/web/sites/lib/lang/id_ftp_user.lng index 5e1dab2..4898de2 100644 --- a/interface/web/sites/lib/lang/id_ftp_user.lng +++ b/interface/web/sites/lib/lang/id_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/id_shell_user.lng b/interface/web/sites/lib/lang/id_shell_user.lng index 0ec09cc..83153c1 100644 --- a/interface/web/sites/lib/lang/id_shell_user.lng +++ b/interface/web/sites/lib/lang/id_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/id_web_folder_list.lng b/interface/web/sites/lib/lang/id_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/id_web_folder_list.lng +++ b/interface/web/sites/lib/lang/id_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/id_web_folder_user_list.lng b/interface/web/sites/lib/lang/id_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/id_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/id_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/it_ftp_user.lng b/interface/web/sites/lib/lang/it_ftp_user.lng index 1964a9f..bdd7818 100644 --- a/interface/web/sites/lib/lang/it_ftp_user.lng +++ b/interface/web/sites/lib/lang/it_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng index 8460d4e..8095f4b 100644 --- a/interface/web/sites/lib/lang/it_shell_user.lng +++ b/interface/web/sites/lib/lang/it_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/it_web_folder_list.lng b/interface/web/sites/lib/lang/it_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/it_web_folder_list.lng +++ b/interface/web/sites/lib/lang/it_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/it_web_folder_user_list.lng b/interface/web/sites/lib/lang/it_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/it_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/it_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ja_ftp_user.lng b/interface/web/sites/lib/lang/ja_ftp_user.lng index fb80ca3..8e92b1b 100644 --- a/interface/web/sites/lib/lang/ja_ftp_user.lng +++ b/interface/web/sites/lib/lang/ja_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ja_shell_user.lng b/interface/web/sites/lib/lang/ja_shell_user.lng index 19f09a5..2ce5ad3 100644 --- a/interface/web/sites/lib/lang/ja_shell_user.lng +++ b/interface/web/sites/lib/lang/ja_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_folder_list.lng b/interface/web/sites/lib/lang/ja_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/ja_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ja_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_folder_user_list.lng b/interface/web/sites/lib/lang/ja_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/ja_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ja_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/nl_ftp_user.lng b/interface/web/sites/lib/lang/nl_ftp_user.lng index 7f797de..16e4ae8 100644 --- a/interface/web/sites/lib/lang/nl_ftp_user.lng +++ b/interface/web/sites/lib/lang/nl_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/nl_shell_user.lng b/interface/web/sites/lib/lang/nl_shell_user.lng index 53fed20..9a4ae63 100644 --- a/interface/web/sites/lib/lang/nl_shell_user.lng +++ b/interface/web/sites/lib/lang/nl_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_folder_list.lng b/interface/web/sites/lib/lang/nl_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/nl_web_folder_list.lng +++ b/interface/web/sites/lib/lang/nl_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/pl_ftp_user.lng b/interface/web/sites/lib/lang/pl_ftp_user.lng index 5c91401..37dd36b 100644 --- a/interface/web/sites/lib/lang/pl_ftp_user.lng +++ b/interface/web/sites/lib/lang/pl_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Powtórz hasło'; $wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie'; $wb['password_match_txt'] = 'Hasła pasują'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/pl_shell_user.lng b/interface/web/sites/lib/lang/pl_shell_user.lng index e51ef64..19674e3 100644 --- a/interface/web/sites/lib/lang/pl_shell_user.lng +++ b/interface/web/sites/lib/lang/pl_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'Hasła pasują'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_folder_list.lng b/interface/web/sites/lib/lang/pl_web_folder_list.lng index 87a7690..75a403b 100644 --- a/interface/web/sites/lib/lang/pl_web_folder_list.lng +++ b/interface/web/sites/lib/lang/pl_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Serwer'; $wb['parent_domain_id_txt'] = 'Witryna'; $wb['path_txt'] = 'Ścieżka'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_folder_user_list.lng b/interface/web/sites/lib/lang/pl_web_folder_user_list.lng index 81769bd..728c1f7 100644 --- a/interface/web/sites/lib/lang/pl_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/pl_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Aktywny'; $wb['web_folder_id_txt'] = 'Katalog'; $wb['username_txt'] = 'Login'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/pt_ftp_user.lng b/interface/web/sites/lib/lang/pt_ftp_user.lng index 1770872..9f5ed04 100644 --- a/interface/web/sites/lib/lang/pt_ftp_user.lng +++ b/interface/web/sites/lib/lang/pt_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/pt_shell_user.lng b/interface/web/sites/lib/lang/pt_shell_user.lng index 5e34648..4564bbc 100644 --- a/interface/web/sites/lib/lang/pt_shell_user.lng +++ b/interface/web/sites/lib/lang/pt_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_folder_list.lng b/interface/web/sites/lib/lang/pt_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/pt_web_folder_list.lng +++ b/interface/web/sites/lib/lang/pt_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_folder_user_list.lng b/interface/web/sites/lib/lang/pt_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/pt_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/pt_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ro_ftp_user.lng b/interface/web/sites/lib/lang/ro_ftp_user.lng index d7415ec..e28b35e 100644 --- a/interface/web/sites/lib/lang/ro_ftp_user.lng +++ b/interface/web/sites/lib/lang/ro_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ro_shell_user.lng b/interface/web/sites/lib/lang/ro_shell_user.lng index d4620af..912b6b2 100644 --- a/interface/web/sites/lib/lang/ro_shell_user.lng +++ b/interface/web/sites/lib/lang/ro_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_folder_list.lng b/interface/web/sites/lib/lang/ro_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/ro_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ro_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_folder_user_list.lng b/interface/web/sites/lib/lang/ro_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/ro_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ro_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ru_ftp_user.lng b/interface/web/sites/lib/lang/ru_ftp_user.lng index 58a2277..f9609ce 100644 --- a/interface/web/sites/lib/lang/ru_ftp_user.lng +++ b/interface/web/sites/lib/lang/ru_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ru_shell_user.lng b/interface/web/sites/lib/lang/ru_shell_user.lng index d87f544..f3b788f 100644 --- a/interface/web/sites/lib/lang/ru_shell_user.lng +++ b/interface/web/sites/lib/lang/ru_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_folder_list.lng b/interface/web/sites/lib/lang/ru_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/ru_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ru_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_folder_user_list.lng b/interface/web/sites/lib/lang/ru_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/ru_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ru_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/se.lng b/interface/web/sites/lib/lang/se.lng index 780195f..a636705 100644 --- a/interface/web/sites/lib/lang/se.lng +++ b/interface/web/sites/lib/lang/se.lng @@ -31,6 +31,5 @@ $wb['Installed packages'] = 'Installerade paket'; $wb['Update Packagelist'] = 'Uppdatera paketlista'; $wb['Subdomain (Vhost)'] = 'Underdomän (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index 315b03c..1fe8617 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -38,14 +38,14 @@ $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field "%s" must not be empty.'; -$wb['error_short_value_for'] = 'The field "%s" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field "%s" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field "%s".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field "%s".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field "%s".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field "%s".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field "%s".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Installation planerad'; $wb['installation_error_txt'] = 'Installationsfel'; @@ -56,4 +56,3 @@ $wb['btn_cancel_txt'] = 'Avbryt'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; ?> - 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 81cda2a..a9428aa 100644 --- a/interface/web/sites/lib/lang/se_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/se_aps_instances_list.lng @@ -11,4 +11,3 @@ $wb['delete_txt'] = 'Radera'; $wb['reinstall_txt'] = 'Ominstallera'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps_packages_list.lng b/interface/web/sites/lib/lang/se_aps_packages_list.lng index 1746bfd..8555961 100644 --- a/interface/web/sites/lib/lang/se_aps_packages_list.lng +++ b/interface/web/sites/lib/lang/se_aps_packages_list.lng @@ -6,4 +6,3 @@ $wb['status_txt'] = 'Olåst'; $wb['filter_txt'] = 'Sök'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps_update_packagelist.lng b/interface/web/sites/lib/lang/se_aps_update_packagelist.lng index 8d84c05..891a951 100644 --- a/interface/web/sites/lib/lang/se_aps_update_packagelist.lng +++ b/interface/web/sites/lib/lang/se_aps_update_packagelist.lng @@ -5,4 +5,3 @@ $wb['btn_cancel_txt'] = 'Avbryt'; $wb['legend_txt'] = 'Here you can update the list of available packages. Please note that this can take up to five minutes. You can leave this page if you like; the process will continue in the background.'; ?> - diff --git a/interface/web/sites/lib/lang/se_cron.lng b/interface/web/sites/lib/lang/se_cron.lng index bc89db2..83b7d3b 100644 --- a/interface/web/sites/lib/lang/se_cron.lng +++ b/interface/web/sites/lib/lang/se_cron.lng @@ -22,4 +22,3 @@ $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.'; $wb['command_error_empty'] = 'Kommandofältet är tomt.'; ?> - diff --git a/interface/web/sites/lib/lang/se_cron_list.lng b/interface/web/sites/lib/lang/se_cron_list.lng index b17951c..0459144 100644 --- a/interface/web/sites/lib/lang/se_cron_list.lng +++ b/interface/web/sites/lib/lang/se_cron_list.lng @@ -11,4 +11,3 @@ $wb['add_new_cron_txt'] = 'Lägg till nytt cron-jobb'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database.lng b/interface/web/sites/lib/lang/se_database.lng index 03eac08..c06c3f0 100644 --- a/interface/web/sites/lib/lang/se_database.lng +++ b/interface/web/sites/lib/lang/se_database.lng @@ -44,4 +44,3 @@ $wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.'; $wb['database_user_missing_txt'] = 'Vänligen välj en databasanvändare för den här databasen.'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_admin_list.lng b/interface/web/sites/lib/lang/se_database_admin_list.lng index fe415d3..640c07c 100644 --- a/interface/web/sites/lib/lang/se_database_admin_list.lng +++ b/interface/web/sites/lib/lang/se_database_admin_list.lng @@ -9,4 +9,3 @@ $wb['sys_groupid_txt'] = 'Kund'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_list.lng b/interface/web/sites/lib/lang/se_database_list.lng index 3909b37..bfcdaf3 100644 --- a/interface/web/sites/lib/lang/se_database_list.lng +++ b/interface/web/sites/lib/lang/se_database_list.lng @@ -8,4 +8,3 @@ $wb['database_user_txt'] = 'Databasanvändare'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user.lng b/interface/web/sites/lib/lang/se_database_user.lng index c707175..2cf9a1a 100644 --- a/interface/web/sites/lib/lang/se_database_user.lng +++ b/interface/web/sites/lib/lang/se_database_user.lng @@ -21,4 +21,3 @@ $wb['globalsearch_searchfield_watermark_txt'] = 'Sök'; $wb['globalsearch_suggestions_text_txt'] = 'Förslag'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user_admin_list.lng b/interface/web/sites/lib/lang/se_database_user_admin_list.lng index 6eca0b7..a9bb594 100644 --- a/interface/web/sites/lib/lang/se_database_user_admin_list.lng +++ b/interface/web/sites/lib/lang/se_database_user_admin_list.lng @@ -4,4 +4,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny användare'; $wb['sys_groupid_txt'] = 'Kund'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user_list.lng b/interface/web/sites/lib/lang/se_database_user_list.lng index cb62444..c0eef9d 100644 --- a/interface/web/sites/lib/lang/se_database_user_list.lng +++ b/interface/web/sites/lib/lang/se_database_user_list.lng @@ -3,4 +3,3 @@ $wb['database_user_txt'] = 'Databasanvändare'; $wb['add_new_record_txt'] = 'Lägg till ny användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_ftp_user.lng b/interface/web/sites/lib/lang/se_ftp_user.lng index 50d9031..3ba08a2 100644 --- a/interface/web/sites/lib/lang/se_ftp_user.lng +++ b/interface/web/sites/lib/lang/se_ftp_user.lng @@ -31,5 +31,6 @@ $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> - diff --git a/interface/web/sites/lib/lang/se_ftp_user_list.lng b/interface/web/sites/lib/lang/se_ftp_user_list.lng index c833d1a..f0ac760 100644 --- a/interface/web/sites/lib/lang/se_ftp_user_list.lng +++ b/interface/web/sites/lib/lang/se_ftp_user_list.lng @@ -6,4 +6,3 @@ $wb['username_txt'] = 'Användarnamn'; $wb['add_new_record_txt'] = 'Lägg till ny FTP-användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng index b2d0083..8095f4b 100644 --- a/interface/web/sites/lib/lang/se_shell_user.lng +++ b/interface/web/sites/lib/lang/se_shell_user.lng @@ -28,5 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> - diff --git a/interface/web/sites/lib/lang/se_shell_user_list.lng b/interface/web/sites/lib/lang/se_shell_user_list.lng index 3389173..4a9d7cb 100644 --- a/interface/web/sites/lib/lang/se_shell_user_list.lng +++ b/interface/web/sites/lib/lang/se_shell_user_list.lng @@ -6,4 +6,3 @@ $wb['username_txt'] = 'Username'; $wb['add_new_record_txt'] = 'Add new Shell-User'; ?> - diff --git a/interface/web/sites/lib/lang/se_user_quota_stats_list.lng b/interface/web/sites/lib/lang/se_user_quota_stats_list.lng index 2084a49..7fe4791 100644 --- a/interface/web/sites/lib/lang/se_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/se_user_quota_stats_list.lng @@ -7,4 +7,3 @@ $wb['soft_txt'] = 'Soft limit'; $wb['files_txt'] = 'Single files'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_aliasdomain.lng index ecbc150..4149c71 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain.lng @@ -113,4 +113,3 @@ $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['Domain'] = 'Aliasdomain'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng index 4860654..8ea34c4 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng @@ -12,4 +12,3 @@ $wb['no_flag_txt'] = 'No flag'; $wb['none_txt'] = 'None'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_backup_list.lng b/interface/web/sites/lib/lang/se_web_backup_list.lng index 261304d..e743953 100644 --- a/interface/web/sites/lib/lang/se_web_backup_list.lng +++ b/interface/web/sites/lib/lang/se_web_backup_list.lng @@ -13,4 +13,3 @@ $wb['backup_type_mysql'] = 'MySQL-databaser'; $wb['backup_type_web'] = 'Webbsidefiler'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index e281579..2b9a056 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -128,4 +128,3 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Ogiltiga php.ini-inställningar'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain_admin_list.lng b/interface/web/sites/lib/lang/se_web_domain_admin_list.lng index 0737245..b460e27 100644 --- a/interface/web/sites/lib/lang/se_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/se_web_domain_admin_list.lng @@ -7,4 +7,3 @@ $wb['domain_txt'] = 'Domain'; $wb['add_new_record_txt'] = 'Add new website'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain_list.lng b/interface/web/sites/lib/lang/se_web_domain_list.lng index eabd544..88ec412 100644 --- a/interface/web/sites/lib/lang/se_web_domain_list.lng +++ b/interface/web/sites/lib/lang/se_web_domain_list.lng @@ -6,4 +6,3 @@ $wb['domain_txt'] = 'Domain'; $wb['add_new_record_txt'] = 'Add new website'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder.lng b/interface/web/sites/lib/lang/se_web_folder.lng index 96553c5..6dbc158 100644 --- a/interface/web/sites/lib/lang/se_web_folder.lng +++ b/interface/web/sites/lib/lang/se_web_folder.lng @@ -6,4 +6,3 @@ $wb['path_error_regex'] = 'Ogiltig katalogsökväg'; $wb['error_folder_already_protected_txt'] = 'Det finns redan ett inlägg för den här mappen.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_list.lng b/interface/web/sites/lib/lang/se_web_folder_list.lng index 194e744..f3ce8b1 100644 --- a/interface/web/sites/lib/lang/se_web_folder_list.lng +++ b/interface/web/sites/lib/lang/se_web_folder_list.lng @@ -4,5 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webbsida'; $wb['path_txt'] = 'Sökväg'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_user.lng b/interface/web/sites/lib/lang/se_web_folder_user.lng index 0c52cfa..6db2415 100644 --- a/interface/web/sites/lib/lang/se_web_folder_user.lng +++ b/interface/web/sites/lib/lang/se_web_folder_user.lng @@ -12,4 +12,3 @@ $wb['no_folder_perm'] = 'Du har inga rättigheter för denna katalog'; $wb['error_user_exists_already_txt'] = 'Det finns redan ett inlägg för denna användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_user_list.lng b/interface/web/sites/lib/lang/se_web_folder_user_list.lng index 3af6f70..67612f5 100644 --- a/interface/web/sites/lib/lang/se_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/se_web_folder_user_list.lng @@ -3,5 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_sites_stats_list.lng b/interface/web/sites/lib/lang/se_web_sites_stats_list.lng index 66137dc..95a8256 100644 --- a/interface/web/sites/lib/lang/se_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/se_web_sites_stats_list.lng @@ -7,4 +7,3 @@ $wb['last_year_txt'] = 'Förra året'; $wb['sum_txt'] = 'Total'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index 8955209..856d3c2 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -42,6 +42,5 @@ $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_subdomain_list.lng b/interface/web/sites/lib/lang/se_web_subdomain_list.lng index 58084a6..1c16bcd 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain_list.lng @@ -6,4 +6,3 @@ $wb['domain_txt'] = 'Subdomain'; $wb['add_new_record_txt'] = 'Add new subdomain'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng index 409c830..c0ca93b 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng @@ -125,4 +125,3 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng index 9604437..100b03b 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng @@ -6,4 +6,3 @@ $wb['domain_txt'] = 'Underdomän'; $wb['add_new_record_txt'] = 'Lägg till ny underdomän'; ?> - diff --git a/interface/web/sites/lib/lang/se_webdav_user.lng b/interface/web/sites/lib/lang/se_webdav_user.lng index 4c3fe5e..07dc281 100644 --- a/interface/web/sites/lib/lang/se_webdav_user.lng +++ b/interface/web/sites/lib/lang/se_webdav_user.lng @@ -19,4 +19,3 @@ $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/sites/lib/lang/se_webdav_user_list.lng b/interface/web/sites/lib/lang/se_webdav_user_list.lng index 96bd318..a6031a1 100644 --- a/interface/web/sites/lib/lang/se_webdav_user_list.lng +++ b/interface/web/sites/lib/lang/se_webdav_user_list.lng @@ -6,4 +6,3 @@ $wb['username_txt'] = 'Användarnamn'; $wb['add_new_record_txt'] = 'Lägg till ny WebDAV-användare'; ?> - diff --git a/interface/web/sites/lib/lang/sk_ftp_user.lng b/interface/web/sites/lib/lang/sk_ftp_user.lng index 1526d40..c57cbfd 100644 --- a/interface/web/sites/lib/lang/sk_ftp_user.lng +++ b/interface/web/sites/lib/lang/sk_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/sk_shell_user.lng b/interface/web/sites/lib/lang/sk_shell_user.lng index 79f9eac..8b94d0d 100644 --- a/interface/web/sites/lib/lang/sk_shell_user.lng +++ b/interface/web/sites/lib/lang/sk_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_folder_list.lng b/interface/web/sites/lib/lang/sk_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/sk_web_folder_list.lng +++ b/interface/web/sites/lib/lang/sk_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_folder_user_list.lng b/interface/web/sites/lib/lang/sk_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/sk_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/sk_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/tr_ftp_user.lng b/interface/web/sites/lib/lang/tr_ftp_user.lng index 4cc2f4d..62401de 100644 --- a/interface/web/sites/lib/lang/tr_ftp_user.lng +++ b/interface/web/sites/lib/lang/tr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index ac45063..0c932c1 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_list.lng b/interface/web/sites/lib/lang/tr_web_folder_list.lng index 76d9702..89f8b65 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_user_list.lng b/interface/web/sites/lib/lang/tr_web_folder_user_list.lng index 9a7286a..67612f5 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index 3c72a5f..f301139 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -135,6 +135,8 @@ } } unset($blacklist); + + if($app->functions->is_allowed_user(trim(strtolower($this->dataRecord['username']))) == false) $app->tform->errorMessage .= $app->tform->lng('username_not_allowed_txt'); /* * If the names should be restricted -> do it! @@ -163,6 +165,11 @@ $dir = $app->db->quote($web["document_root"]); $uid = $app->db->quote($web["system_user"]); $gid = $app->db->quote($web["system_group"]); + + // Check system user and group + if($app->functions->is_allowed_user($uid) == false || $app->functions->is_allowed_group($gid) == false) { + $app->error($app->tform->lng('invalid_system_user_or_group_txt')); + } // The FTP user shall be owned by the same group then the website $sys_groupid = $app->functions->intval($web['sys_groupid']); diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php index 4131109..008e707 100644 --- a/interface/web/sites/web_aliasdomain_edit.php +++ b/interface/web/sites/web_aliasdomain_edit.php @@ -123,9 +123,17 @@ function onSubmit() { global $app, $conf; + + // Get the record of the parent domain + if(!@$this->dataRecord["parent_domain_id"] && $this->id) { + $tmp = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($tmp) $this->dataRecord["parent_domain_id"] = $tmp['parent_domain_id']; + unset($tmp); + } // Get the record of the parent domain $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); /* check if the domain module is used - and check if the selected domain can be used! */ $app->uses('ini_parser,getconf'); @@ -153,7 +161,7 @@ //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - + parent::onSubmit(); } diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 990e8cd..1208e48 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -607,9 +607,11 @@ // When the record is updated if($this->id > 0) { // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $tmp = $app->db->queryOneRecord("SELECT server_id, `system_user`, `system_group`, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); $this->dataRecord["server_id"] = $tmp["server_id"]; + $this->dataRecord['system_user'] = $tmp['system_user']; + $this->dataRecord['system_group'] = $tmp['system_group']; // set the settings to current if not provided (or cleared due to limits) if($this->dataRecord['cgi'] == 'n') $this->dataRecord['cgi'] = $tmp['cgi']; if($this->dataRecord['ssi'] == 'n') $this->dataRecord['ssi'] = $tmp['ssi']; @@ -749,7 +751,7 @@ // value inside '' if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*\'.*\'\s*;*\s*$@', $custom_php_ini_settings_line)) continue; // everything else - if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; + if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s|()]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; $custom_php_ini_settings_are_valid = false; break; } diff --git a/interface/web/sites/web_subdomain_edit.php b/interface/web/sites/web_subdomain_edit.php index 0d485c4..4d079ff 100644 --- a/interface/web/sites/web_subdomain_edit.php +++ b/interface/web/sites/web_subdomain_edit.php @@ -130,6 +130,13 @@ function onSubmit() { global $app, $conf; + + // Get the record of the parent domain + if(!@$this->dataRecord["parent_domain_id"] && $this->id) { + $tmp = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($tmp) $this->dataRecord["parent_domain_id"] = $tmp['parent_domain_id']; + unset($tmp); + } // Get the record of the parent domain $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); @@ -162,7 +169,7 @@ //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - + parent::onSubmit(); } diff --git a/interface/web/sites/web_vhost_subdomain_edit.php b/interface/web/sites/web_vhost_subdomain_edit.php index 37359a2..ef1fc4c 100644 --- a/interface/web/sites/web_vhost_subdomain_edit.php +++ b/interface/web/sites/web_vhost_subdomain_edit.php @@ -341,6 +341,8 @@ $this->dataRecord["ipv6_address"] = $parent_domain["ipv6_address"]; $this->dataRecord["client_group_id"] = $parent_domain["client_group_id"]; $this->dataRecord["vhost_type"] = 'name'; + $this->dataRecord["system_user"] = $parent_domain["system_user"]; + $this->dataRecord["system_group"] = $parent_domain["system_group"]; $this->parent_domain_record = $parent_domain; diff --git a/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng index 16dcfff..7fb81bf 100644 --- a/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng +++ b/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng @@ -6,4 +6,3 @@ $wb['password_strength_4_txt'] = 'Starkt'; $wb['password_strength_5_txt'] = 'Mycket starkt'; ?> - diff --git a/interface/web/themes/blue/ispconfig_version b/interface/web/themes/blue/ispconfig_version index ec33020..0b23ab9 100644 --- a/interface/web/themes/blue/ispconfig_version +++ b/interface/web/themes/blue/ispconfig_version @@ -1 +1 @@ -3.0.5.4p1 +3.0.5.4p2 diff --git a/interface/web/themes/blue/templates/main.tpl.htm b/interface/web/themes/blue/templates/main.tpl.htm index 70c4f26..0007256 100644 --- a/interface/web/themes/blue/templates/main.tpl.htm +++ b/interface/web/themes/blue/templates/main.tpl.htm @@ -161,6 +161,7 @@ <!-- begin: #content --> <section id="content"> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> <div id="ie_clearing"> </div> diff --git a/interface/web/themes/default-304/templates/main.tpl.htm b/interface/web/themes/default-304/templates/main.tpl.htm index 862693b..7f227e1 100644 --- a/interface/web/themes/default-304/templates/main.tpl.htm +++ b/interface/web/themes/default-304/templates/main.tpl.htm @@ -168,6 +168,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 9146291..3339d9f 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -164,6 +164,7 @@ <!-- begin: #content --> <section id="content"> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> <div id="ie_clearing"> </div> diff --git a/interface/web/themes/default_64_navimg/templates/main.tpl.htm b/interface/web/themes/default_64_navimg/templates/main.tpl.htm index c0180e1..6d0395b 100644 --- a/interface/web/themes/default_64_navimg/templates/main.tpl.htm +++ b/interface/web/themes/default_64_navimg/templates/main.tpl.htm @@ -168,6 +168,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default_combobox/templates/main.tpl.htm b/interface/web/themes/default_combobox/templates/main.tpl.htm index 142794e..1df185f 100644 --- a/interface/web/themes/default_combobox/templates/main.tpl.htm +++ b/interface/web/themes/default_combobox/templates/main.tpl.htm @@ -323,6 +323,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default_no_navimg/templates/main.tpl.htm b/interface/web/themes/default_no_navimg/templates/main.tpl.htm index 5f45a0a..adfc656 100644 --- a/interface/web/themes/default_no_navimg/templates/main.tpl.htm +++ b/interface/web/themes/default_no_navimg/templates/main.tpl.htm @@ -169,6 +169,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/tools/lib/lang/se.lng b/interface/web/tools/lib/lang/se.lng index 5c93f2b..e6da742 100644 --- a/interface/web/tools/lib/lang/se.lng +++ b/interface/web/tools/lib/lang/se.lng @@ -11,4 +11,3 @@ $wb['PDNS Tupa'] = 'PowerDNS Tupa'; $wb['Interface'] = 'Interface'; ?> - diff --git a/interface/web/tools/lib/lang/se_import_ispconfig.lng b/interface/web/tools/lib/lang/se_import_ispconfig.lng index 0aad8ad..17ddae9 100644 --- a/interface/web/tools/lib/lang/se_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/se_import_ispconfig.lng @@ -21,4 +21,3 @@ $wb['import_user_filter_txt'] = 'Importera användarfilter'; $wb['import_spamfilter_txt'] = 'Importera spamfilter'; ?> - diff --git a/interface/web/tools/lib/lang/se_index.lng b/interface/web/tools/lib/lang/se_index.lng index cf5012f..e395435 100644 --- a/interface/web/tools/lib/lang/se_index.lng +++ b/interface/web/tools/lib/lang/se_index.lng @@ -2,4 +2,3 @@ $wb['page_head_txt'] = 'ISPConfig verktyg'; $wb['page_desc_txt'] = 'Ändra användarinställningar'; ?> - diff --git a/interface/web/tools/lib/lang/se_interface.lng b/interface/web/tools/lib/lang/se_interface.lng index 8336796..9a66f59 100644 --- a/interface/web/tools/lib/lang/se_interface.lng +++ b/interface/web/tools/lib/lang/se_interface.lng @@ -5,4 +5,3 @@ $wb['startmodule_txt'] = 'Startmodul'; $wb['app_theme_txt'] = 'Design'; ?> - diff --git a/interface/web/tools/lib/lang/se_tpl_default.lng b/interface/web/tools/lib/lang/se_tpl_default.lng index 4c0fd71..013666e 100644 --- a/interface/web/tools/lib/lang/se_tpl_default.lng +++ b/interface/web/tools/lib/lang/se_tpl_default.lng @@ -5,4 +5,3 @@ $wb['btn_start_txt'] = 'Spara'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/tools/lib/lang/se_usersettings.lng b/interface/web/tools/lib/lang/se_usersettings.lng index 85176ac..f7e05e9 100644 --- a/interface/web/tools/lib/lang/se_usersettings.lng +++ b/interface/web/tools/lib/lang/se_usersettings.lng @@ -10,4 +10,3 @@ $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/vm/lib/lang/se.lng b/interface/web/vm/lib/lang/se.lng index 5c1ab58..4167e14 100644 --- a/interface/web/vm/lib/lang/se.lng +++ b/interface/web/vm/lib/lang/se.lng @@ -5,4 +5,3 @@ $wb['IP addresses'] = 'IP addresses'; $wb['OpenVZ'] = 'OpenVZ'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_action.lng b/interface/web/vm/lib/lang/se_openvz_action.lng index 71e7263..52f7328 100644 --- a/interface/web/vm/lib/lang/se_openvz_action.lng +++ b/interface/web/vm/lib/lang/se_openvz_action.lng @@ -14,4 +14,3 @@ $wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.'; $wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ip.lng b/interface/web/vm/lib/lang/se_openvz_ip.lng index 67f6885..6016681 100644 --- a/interface/web/vm/lib/lang/se_openvz_ip.lng +++ b/interface/web/vm/lib/lang/se_openvz_ip.lng @@ -7,4 +7,3 @@ $wb['ip_error_unique'] = 'This IP address does already exist.'; $wb['IP address'] = 'IP address'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ip_list.lng b/interface/web/vm/lib/lang/se_openvz_ip_list.lng index 37c1d62e..e6a3a68 100644 --- a/interface/web/vm/lib/lang/se_openvz_ip_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_ip_list.lng @@ -5,4 +5,3 @@ $wb['reserved_txt'] = 'Reserved'; $wb['vm_id_txt'] = 'VM'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ostemplate.lng b/interface/web/vm/lib/lang/se_openvz_ostemplate.lng index bfeb299..256750f 100644 --- a/interface/web/vm/lib/lang/se_openvz_ostemplate.lng +++ b/interface/web/vm/lib/lang/se_openvz_ostemplate.lng @@ -9,4 +9,3 @@ $wb['template_file_error_empty'] = 'Template filename is empty.'; $wb['Template'] = 'Template'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng index df01680..6471ec0 100644 --- a/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng @@ -6,4 +6,3 @@ $wb['allservers_txt'] = 'Exists on all servers'; $wb['ostemplate_id_txt'] = 'ID'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_template.lng b/interface/web/vm/lib/lang/se_openvz_template.lng index 0887164..d285512 100644 --- a/interface/web/vm/lib/lang/se_openvz_template.lng +++ b/interface/web/vm/lib/lang/se_openvz_template.lng @@ -91,4 +91,3 @@ $wb['Template'] = 'Template'; $wb['Advanced'] = 'Advanced'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_template_list.lng b/interface/web/vm/lib/lang/se_openvz_template_list.lng index 6e4d911..de4045c 100644 --- a/interface/web/vm/lib/lang/se_openvz_template_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_template_list.lng @@ -3,4 +3,3 @@ $wb['active_txt'] = 'Active'; $wb['template_name_txt'] = 'Template name'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_vm.lng b/interface/web/vm/lib/lang/se_openvz_vm.lng index 4698fe6..f2be022 100644 --- a/interface/web/vm/lib/lang/se_openvz_vm.lng +++ b/interface/web/vm/lib/lang/se_openvz_vm.lng @@ -38,4 +38,3 @@ $wb['Virtual server'] = 'Virtual server'; $wb['Advanced'] = 'Advanced'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_vm_list.lng b/interface/web/vm/lib/lang/se_openvz_vm_list.lng index a534a65..2238e2b 100644 --- a/interface/web/vm/lib/lang/se_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_vm_list.lng @@ -8,4 +8,3 @@ $wb['ip_address_txt'] = 'IP address'; $wb['veid_txt'] = 'VEID'; ?> - diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master index be6f637..6b2accb 100644 --- a/server/conf/apache_ispconfig.conf.master +++ b/server/conf/apache_ispconfig.conf.master @@ -3,7 +3,7 @@ # ISPConfig Logfile configuration for vlogger ################################################ -LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig +LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig <Directory /var/www/clients> diff --git a/server/conf/apps_php_fpm_pool.conf.master b/server/conf/apps_php_fpm_pool.conf.master index ce6a92f..7997e9b 100644 --- a/server/conf/apps_php_fpm_pool.conf.master +++ b/server/conf/apps_php_fpm_pool.conf.master @@ -9,7 +9,7 @@ group = {fpm_group} pm = dynamic -pm.max_children = 50 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 5a110cc..96b3443 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -57,6 +57,10 @@ </IfModule> <Directory {tmpl_var name='web_document_root_www'}> + # Clear PHP settings of this website + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler None + </FilesMatch> Options +FollowSymLinks AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> @@ -85,6 +89,10 @@ </tmpl_if> </Directory> <Directory {tmpl_var name='web_document_root'}> + # Clear PHP settings of this website + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler None + </FilesMatch> Options +FollowSymLinks AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> @@ -186,10 +194,6 @@ SuexecUserGroup <tmpl_var name='system_user'> <tmpl_var name='system_group'> </IfModule> </tmpl_if> - # Clear PHP settings of this website - <FilesMatch ".+\.ph(p[345]?|t|tml)$"> - SetHandler None - </FilesMatch> <tmpl_if name='php' op='==' value='mod'> # mod_php enabled AddType application/x-httpd-php .php .php3 .php4 .php5 @@ -221,9 +225,16 @@ # php as cgi enabled ScriptAlias /php5-cgi <tmpl_var name='cgi_starter_path'><tmpl_var name='cgi_starter_script'> Action php5-cgi /php5-cgi - <FilesMatch "\.php[345]?$"> - SetHandler php5-cgi - </FilesMatch> + <Directory {tmpl_var name='web_document_root_www'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-cgi + </FilesMatch> + </Directory> + <Directory {tmpl_var name='web_document_root'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-cgi + </FilesMatch> + </Directory> <Directory {tmpl_var name='cgi_starter_path'}> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted @@ -304,9 +315,16 @@ Allow from all </tmpl_if> </Directory> - <FilesMatch "\.php[345]?$"> - SetHandler php5-fcgi - </FilesMatch> + <Directory {tmpl_var name='web_document_root_www'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-fcgi + </FilesMatch> + </Directory> + <Directory {tmpl_var name='web_document_root'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-fcgi + </FilesMatch> + </Directory> Action php5-fcgi /php5-fcgi Alias /php5-fcgi {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} <tmpl_if name='use_tcp'> @@ -336,7 +354,7 @@ RewriteCond %{REQUEST_URI} !^<tmpl_var name='rewrite_target'> </tmpl_if> - RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if> <tmpl_if name='rewrite_type' value=''><tmpl_if name="rewrite_is_url" op="==" value="n">[PT]</tmpl_if></tmpl_else><tmpl_var name='rewrite_type'></tmpl_if> + RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if> <tmpl_var name='rewrite_type'> </tmpl_loop> </tmpl_if> diff --git a/server/cron_daily.php b/server/cron_daily.php index b9b3432..ee54a46 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -647,7 +647,7 @@ // function for sending notification emails //######## function send_notification_email($template, $placeholders, $recipients) { - global $conf; + global $conf, $app; if(!is_array($recipients) || count($recipients) < 1) return false; if(!is_array($placeholders)) $placeholders = array(); @@ -1104,10 +1104,14 @@ //* mount backup directory, if necessary $run_backups = true; - $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']); - if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){ + $backup_dir_mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; + if( $server_config['backup_dir_is_mount'] == 'y' && + is_file($backup_dir_mount_cmd) && + is_executable($backup_dir_mount_cmd) && + fileowner($backup_dir_mount_cmd) === 0 + ){ if(!$app->system->is_mounted($backup_dir)){ - exec(escapeshellcmd($server_config['backup_dir_mount_cmd'])); + exec($backup_dir_mount_cmd); sleep(1); if(!$app->system->is_mounted($backup_dir)) $run_backups = false; } diff --git a/server/lib/classes/ispcmail.inc.php b/server/lib/classes/ispcmail.inc.php new file mode 100644 index 0000000..930aabb --- /dev/null +++ b/server/lib/classes/ispcmail.inc.php @@ -0,0 +1,869 @@ +<?php + +/* +Copyright (c) 2012, Marius Cramer, pixcept KG +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. +*/ + +/** + * email class + * + * @package pxFramework + * + */ + + +class ispcmail { + + /**#@+ + * @access private + */ + private $html_part; + private $text_part; + + private $headers; + + private $_logged_in = false; + private $_smtp_conn = null; + + private $_crlf = "\n"; + + private $attach_type = 'application/octet-stream'; + private $attachments; + private $mime_boundary; + private $body = ''; + private $_mail_sender = ''; + private $_sent_mails = 0; + private $user_agent = 'ISPConfig/3 (Mailer Class)'; + /**#@-*/ + + + + /** + * set the mail charset + */ + private $mail_charset = 'UTF-8';//'ISO-8859-1'; + + /**#@+ + * Provide smtp credentials for smtp mail sending + * + * @access public + */ + + /** + * if set to true smtp is used instead of mail() to send emails + * @see mail + */ + private $use_smtp = false; + + /** + * the smtp helo string - use the mail server name here! + */ + private $smtp_helo = ''; + + /** + * the smtp server to send mails + */ + private $smtp_host = ''; + + /** + * the smtp port + */ + private $smtp_port = 25; + + /** + * if the smtp server needs authentication you can set the smtp user here + */ + private $smtp_user = ''; + + /** + * if the smtp server needs authentication you can set the smtp password here + */ + private $smtp_pass = ''; + + /** + * If you want to use tls/ssl specify it here + */ + private $smtp_crypt = ''; // tls or ssl + /** + * How many mails should be sent via one single smtp connection + */ + private $smtp_max_mails = 20; + + /** + * Should the mail be signed + */ + private $sign_email = false; + + /** + * The cert and key to use for email signing + */ + private $sign_key = ''; + private $sign_key_pass = ''; + private $sign_cert = ''; + private $sign_bundle = ''; + private $_is_signed = false; + + /** + * get disposition notification + */ + private $notification = false; + /**#@-*/ + + public function __construct($options = array()) { + $rand = md5(microtime()); + $this->mime_boundary = '==Multipart_Boundary_x' . $rand . 'x'; + + $this->headers = array(); + $this->attachments = array(); + + $this->headers['MIME-Version'] = '1.0'; + $this->headers['User-Agent'] = $this->user_agent; + if(is_array($options) && count($options) > 0) $this->setOptions($options); + } + + public function __destruct() { + $this->finish(); + } + + + + /** + * Set option + * + * @param string $key the option to set + * @param string $value the option value to set + */ + public function setOption($key, $value) { + switch($key) { + case 'smtp_helo': + $this->smtp_helo = $value; + break; + case 'smtp_host': + $this->smtp_host = $value; + break; + case 'smtp_server': + $this->smtp_host = $value; + break; + case 'smtp_port': + $this->smtp_port = $value; + break; + case 'smtp_user': + $this->smtp_user = $value; + break; + case 'smtp_pass': + $this->smtp_pass = $value; + break; + case 'smtp_max_mails': + $this->smtp_max_mails = intval($value); + if($this->smtp_max_mails < 1) $this->smtp_max_mails = 1; + break; + case 'use_smtp': + $this->use_smtp = ($value == true ? true : false); + if($value == true) $this->_crlf = "\r\n"; + break; + case 'smtp_crypt': + if($value != 'ssl' && $value != 'tls') $value = ''; + $this->smtp_crypt = $value; + break; + case 'sign_email': + $this->sign_email = ($value == true ? true : false); + break; + case 'sign_key': + $this->sign_key = $value; + break; + case 'sign_key_pass': + $this->sign_key_pass = $value; + break; + case 'sign_cert': + $this->sign_cert = $value; + break; + case 'sign_bundle': + $this->sign_bundle = $value; + break; + case 'mail_charset': + $this->mail_charset = $value; + break; + case 'notify': + $this->notification = ($value == true ? true : false); + break; + } + } + + + + /** Detect the helo string if none given + * + */ + private function detectHelo() { + if(isset($_SERVER['HTTP_HOST'])) $this->smtp_helo = (strpos($_SERVER['HTTP_HOST'], ':') !== false ? substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], ':')) : $_SERVER['HTTP_HOST']); + elseif(isset($_SERVER['SERVER_NAME'])) $this->smtp_helo = $_SERVER['SERVER_NAME']; + else $this->smtp_helo = php_uname('n'); + if($this->smtp_helo == '') $this->smtp_helo = 'localhost'; + return $this->smtp_helo; + } + + + + /** + * Set options + * + * @param array $options the options to set as an associative array key => value + */ + public function setOptions($options) { + foreach($options as $key => $value) $this->setOption($key, $value); + } + + + + /** + * Read a file's contents + * + * Simply gets the file's content + * + * @access public + * @param string $filename name and path of file to read + * @return string file content (can be binary) + */ + public function read_File($filename) { + $content = ''; + + $fp = fopen($filename, 'r'); + if(!$fp) return false; + + while(!feof($fp)) { + $content .= fread($fp, 1024); + } + fclose($fp); + + return $content; + } + + + + /** + * set smtp connection encryption + * + * @access public + * @param string $mode encryption mode (tls, ssl or empty string) + */ + public function setSMTPEncryption($mode = '') { + if($mode != 'ssl' && $mode != 'tls') $mode = ''; + $this->smtp_crypt = $mode; + } + + /** + * set a mail header + * + * Sets a single mail header to a given value + * + * @access public + * @param string $header header name to set + * @param string $value value to set in header field + */ + public function setHeader($header, $value) { + if(strtolower($header) == 'bcc') $header = 'Bcc'; + elseif(strtolower($header) == 'cc') $header = 'Cc'; + elseif(strtolower($header) == 'from') $header = 'From'; + $this->headers["$header"] = $value; + } + + + + /** + * get a mail header value + * + * Returns a value of a single mail header + * + * @access public + * @param string $header header name to get + * @return string header value + */ + public function getHeader($header) { + if(strtolower($header) == 'bcc') $header = 'Bcc'; + elseif(strtolower($header) == 'cc') $header = 'Cc'; + elseif(strtolower($header) == 'from') $header = 'From'; + return isset($this->headers["$header"]) ? $this->headers["$header"] : ''; + } + + + + /** + * Set email sender + * + * Sets the email sender and optionally the sender's name + * + * @access public + * @param string $email sender email address + * @param string $name sender name + */ + public function setSender($email, $name = '') { + if($name) $header = '"' . $name . '" <' . $email . '>'; + else $header = '<' . $email . '>'; + + $this->_mail_sender = $email; + + $this->setHeader('From', $header); + } + + + + /** + * Set mail subject + * + * @access public + * @param string $subject the mail subject + * @return string where-string for db query + */ + public function setSubject($subject) { + $this->setHeader('Subject', $subject); + } + + + + /** + * Get current mail subject + * + * @access public + * @return string mail subject + */ + public function getSubject() { + return $this->headers['Subject']; + } + + + + /** + * Set mail content + * + * Sets the mail html and plain text content + * + * @access public + * @param string $text plain text mail content (can be empty) + * @param string $html html mail content + */ + public function setMailText($text, $html = '') { + $this->text_part = $text; + $this->html_part = $html; + } + + + + /** + * Read and attach a file + * + * Reads a file and attaches it to the current email + * + * @access public + * @param string $filename the file to read and attach + * @param string $display_name the name that will be displayed in the mail + * @see read_File + */ + public function readAttachFile($filename, $display_name = '') { + if($display_name == '') { + $path_parts = pathinfo($filename); + $display_name = $path_parts["basename"]; + unset($path_parts); + } + $this->attachFile($this->read_File($filename), $display_name); + } + + + + /** + * Attach a file + * + * Attaches a string (can be binary) as a file to the mail + * + * @access public + * @param string $content attachment data string + * @param string $filename name for file attachment + */ + public function attachFile($content, $filename) { + $attachment = array('content' => $content, + 'filename' => $filename, + 'type' => 'application/octet-stream', + 'encoding' => 'base64' + ); + $this->attachments[] = $attachment; + } + + + + /** + * @access private + */ + private function create() { + $attach = false; + $html = false; + $text = false; + + if($this->html_part) $html = true; + if($this->text_part) $text = true; + if(count($this->attachments) > 0) $attach = true; + + $textonly = false; + $htmlonly = false; + if($text == true && $html == false && $attach == false) { + // only text + $content_type = 'text/plain; charset="' . strtolower($this->mail_charset) . '"'; + $textonly = true; + } elseif($text == true && $html == false && $attach == true) { + // text and attachment + $content_type = 'multipart/mixed;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } elseif($html == true && $text == true && $attach == false) { + // html only (or text too) + $content_type = 'multipart/alternative;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } elseif($html == true && $text == false && $attach == false) { + // html only (or text too) + $content_type = 'text/html; charset="' . strtolower($this->mail_charset) . '"'; + $htmlonly = true; + } elseif($html == true && $attach == true) { + // html and attachments + $content_type = 'multipart/mixed;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } + + $this->headers['Content-Type'] = $content_type; + + if($textonly == false && $htmlonly == false) { + $this->body = "This is a multi-part message in MIME format.\n\n"; + + if($text) { + /*$this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/plain; charset=\"" . strtolower($this->mail_charset) . "\"\n" . + "Content-Transfer-Encoding: 7bit\n\n" . $this->text_part . "\n\n";*/ + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/plain; charset=\"UTF-8\"\n" . + "Content-Transfer-Encoding: 8bit\n\n" . $this->text_part . "\n\n"; + } + + if($html) { + /*$this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/html; charset=\"" . strtolower($this->mail_charset) . "\"\n" . + "Content-Transfer-Encoding: 7bit\n\n" . $this->html_part . "\n\n";*/ + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/html; charset=\"UTF-8\"\n" . + "Content-Transfer-Encoding: 8bit\n\n" . $this->html_part . "\n\n"; + } + + if($attach) { + foreach($this->attachments as $att) { + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type: " . $att['type'] . ";\n" . + " name=\"" . $att['filename'] . "\"\n" . + "Content-Transfer-Encoding: base64\n" . + "Content-Disposition: attachment;\n\n" . + chunk_split(base64_encode($att['content'])) . "\n\n"; + } + } + $this->body .= "--{$this->mime_boundary}--\n"; + } elseif($htmlonly == true) { + $this->body = $this->html_part; + } else { + $this->body = $this->text_part; + } + + if (isset($this->body)) { + // Add message ID header + $message_id = sprintf('<%s.%s@%s>', base_convert(time(), 10, 36), base_convert(rand(), 10, 36), $this->smtp_helo != '' ? $this->smtp_helo : $this->detectHelo()); + $this->headers['Message-ID'] = $message_id; + return true; + } else { + return false; + } + } + + + + /** + * Function to sign an email body + */ + private function sign() { + if($this->sign_email == false || $this->sign_key == '' || $this->sign_cert == '') return false; + if(function_exists('openssl_pkcs7_sign') == false) return false; + + $tmpin = tempnam(sys_get_temp_dir(), 'sign'); + $tmpout = tempnam(sys_get_temp_dir(), 'sign'); + if(!file_exists($tmpin) || !is_writable($tmpin)) return false; + + file_put_contents($tmpin, 'Content-Type: ' . $this->getHeader('Content-Type') . "\n\n" . $this->body); + $tmpf_key = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_key, $this->sign_key); + $tmpf_cert = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_cert, $this->sign_cert); + if($this->sign_bundle != '') { + $tmpf_bundle = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_bundle, $this->sign_bundle); + openssl_pkcs7_sign($tmpin, $tmpout, 'file://' . realpath($tmpf_cert), array('file://' . realpath($tmpf_key), $this->sign_key_pass), array(), PKCS7_DETACHED, realpath($tmpf_bundle)); + } else { + openssl_pkcs7_sign($tmpin, $tmpout, 'file://' . realpath($tmpf_cert), array('file://' . realpath($tmpf_key), $this->sign_key_pass), array()); + } + unlink($tmpin); + unlink($tmpf_cert); + unlink($tmpf_key); + if(file_exists($tmpf_bundle)) unlink($tmpf_bundle); + + if(!file_exists($tmpout) || !is_readable($tmpout)) return false; + $this->body = file_get_contents($tmpout); + unlink($tmpout); + + unset($this->headers['Content-Type']); + unset($this->headers['MIME-Version']); + + $this->_is_signed = true; + } + + private function _char_to_hex($matches) { + return '=' . strtoupper(dechex(ord($matches[1]))); + } + + + + /** + * Function to encode a header if necessary + * according to RFC2047 + * @access private + */ + private function _encodeHeader($input, $charset = 'ISO-8859-1') { + preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/', $input, $matches); + foreach ($matches[1] as $value) { + $replacement = preg_replace_callback('/([\x20\x80-\xFF])/', array($this, '_char_to_hex'), $value); + $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input); + } + + return $input; + } + + + + /** + * Function to encode the subject if necessary + * according to RFC2047 + * @access private + */ + private function _encodeSubject($input, $charset = 'ISO-8859-1') { + /* + if($charset == 'UTF-8' && function_exists('imap_8bit')) { + $input = "=?utf-8?Q?" . imap_8bit($input) . "?="; + } else { + preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/', $input, $matches); + foreach ($matches[1] as $value) { + $replacement = preg_replace('/([\x20\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value); + $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input); + } + }*/ + $input='=?UTF-8?B?'.base64_encode($input).'?='; + + return $input; + } + + + + /** + * @access private + */ + private function _smtp_login() { + $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'ssl://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); + $response = fgets($this->_smtp_conn, 515); + if(empty($this->_smtp_conn)) return false; + + //Say Hello to SMTP + if($this->smtp_helo == '') $this->detectHelo(); + fputs($this->_smtp_conn, 'HELO ' . $this->smtp_helo . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + // ENCRYPTED? + if($this->smtp_crypt == 'tls') { + fputs($this->_smtp_conn, 'STARTTLS' . $this->_crlf); + fgets($this->_smtp_conn, 515); + stream_socket_enable_crypto($this->_smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + } + + //AUTH LOGIN + fputs($this->_smtp_conn, 'AUTH LOGIN' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Send username + fputs($this->_smtp_conn, base64_encode($this->smtp_user) . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Send password + fputs($this->_smtp_conn, base64_encode($this->smtp_pass) . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + $this->_logged_in = true; + return true; + } + + + + /** + * @access private + */ + private function _smtp_close() { + $this->_logged_in = false; + + if(empty($this->_smtp_conn)) { + return false; + } + + fputs($this->_smtp_conn, 'QUIT' . $this->_crlf); + $response = @fgets($this->_smtp_conn, 515); + return true; + } + + private function _extract_names($data) { + $senders = array(); + + $data = stripslashes(preg_replace("'(\t|\r|\n)'", '', $data)); + + if(trim($data) == '') return $senders; + + $armail = array(); + $counter = 0; $inthechar = 0; + $chartosplit = ',;'; $protectchar = '"'; $temp = ''; + $closed = 1; + + for($i = 0; $i < strlen($data); $i++) { + $thischar = $data[$i]; + if($thischar == '<' && $closed) $closed = 0; + if($thischar == '>' && !$closed) $closed = 1; + if($thischar == $protectchar) $inthechar = ($inthechar) ? 0 : 1; + if((strpos($chartosplit, $thischar) !== false) && !$inthechar && $closed) { + $armail[] = $temp; + $temp = ''; + } else { + $temp .= $thischar; + } + } + + if(trim($temp) != '') { + $armail[] = trim($temp); + unset($temp); + } + + foreach($armail as $thisPart) { + $thisPart = trim(preg_replace('/^"(.*)"$/i', '$1', trim($thisPart))); + if($thisPart != '') { + $email = ''; + $name = ''; + if(preg_match('/(.*)<(.*)>/i', $thisPart, $matches)) { + $email = trim($matches[2]); + $name = trim($matches[1]); + } else { + if(preg_match('/([-a-z0-9_$+.]+@[-a-z0-9_.]+[-a-z0-9_]+)((.*))/i', $thisPart, $matches)) { + $email = $matches[1]; + $name = $matches[2]; + } else { + $email = $thisPart; + } + } + + $email = preg_replace('/<(.*)\\>/', '$1', $email); + $name = preg_replace('/"(.*)"/', '$1', trim($name)); + $name = preg_replace('/\((.*)\)/', '$1', $name); + + if($name == '') $name = $email; + if($email == '') $email = $name; + $senders[] = array( + 'name' => $name, + 'mail' => $email + ); + unset($name); + unset($email); + } + } + unset($armail); + unset($thisPart); + + return $senders; + } + + /** + * Send the mail to one or more recipients + * + * The recipients can be either a string (1 recipient email without name) or an associative array of recipients with names as keys and email addresses as values. + * + * @access public + * @param mixed $recipients one email address or array of recipients with names as keys and email addresses as values + */ + public function send($recipients) { + if(!is_array($recipients)) $recipients = array($recipients); + + if($this->use_smtp == true) $this->_crlf = "\r\n"; + else $this->_crlf = "\n"; + + $this->create(); + if($this->sign_email == true) $this->sign(); + + $subject = ''; + if (!empty($this->headers['Subject'])) { + //$subject = $this->_encodeHeader($this->headers['Subject'], $this->mail_charset); + $subject = $this->headers['Subject']; + + //$enc_subject = $this->_encodeHeader($subject, $this->mail_charset); + $enc_subject = $this->_encodeSubject($subject, $this->mail_charset); + unset($this->headers['Subject']); + } + + if($this->notification == true) $this->setHeader('Disposition-Notification-To', $this->getHeader('From')); + + unset($this->headers['To']); // always reset the To header to prevent from sending to multiple users at once + $this->headers['Date'] = date('r'); //date('D, d M Y H:i:s O'); + + // Get flat representation of headers + foreach ($this->headers as $name => $value) { + if(strtolower($name) == 'to' || strtolower($name) == 'cc' || strtolower($name) == 'bcc') continue; // never add the To header + $headers[] = $name . ': ' . $this->_encodeHeader($value, $this->mail_charset); + } + + if($this->use_smtp == true) { + if(!$this->_logged_in || !$this->_smtp_conn) { + $result = $this->_smtp_login(); + if(!$result) return false; + } + $bcc_cc_sent = false; + foreach($recipients as $recipname => $recip) { + if($this->_sent_mails >= $this->smtp_max_mails) { + // close connection to smtp and reconnect + $this->_sent_mails = 0; + $this->_smtp_close(); + $result = $this->_smtp_login(); + if(!$result) return false; + } + $this->_sent_mails += 1; + + $recipname = trim(str_replace('"', '', $recipname)); + $recip = $this->_encodeHeader($recip, $this->mail_charset); + $recipname = $this->_encodeHeader($recipname, $this->mail_charset); + + //Email From + fputs($this->_smtp_conn, 'MAIL FROM: <' . $this->_mail_sender . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Email To + fputs($this->_smtp_conn, 'RCPT TO: <' . $recip . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + if($bcc_cc_sent == false) { + $add_recips = array(); + if($this->getHeader('Cc') != '') $add_recips = array_merge($add_recips, $this->_extract_names($this->getHeader('Cc'))); + if($this->getHeader('Bcc') != '') $add_recips = array_merge($add_recips, $this->_extract_names($this->getHeader('Bcc'))); + foreach($add_recips as $add_recip) { + if(!$add_recip['mail']) continue; + fputs($this->_smtp_conn, 'RCPT TO: <' . $this->_encodeHeader($add_recip['mail'], $this->mail_charset) . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + } + unset($add_recips); + $bcc_cc_sent = true; + } + + //The Email + fputs($this->_smtp_conn, 'DATA' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Construct Headers + if($recipname && !is_numeric($recipname)) $this->setHeader('To', $recipname . ' <' . $recip . '>'); + else $this->setHeader('To', $recip); + + $mail_content = 'Subject: ' . $enc_subject . $this->_crlf; + $mail_content .= 'To: ' . $this->getHeader('To') . $this->_crlf; + if($this->getHeader('Cc') != '') $mail_content .= 'Cc: ' . $this->_encodeHeader($this->getHeader('Cc'), $this->mail_charset) . $this->_crlf; + $mail_content .= implode($this->_crlf, $headers) . $this->_crlf . ($this->_is_signed == false ? $this->_crlf : '') . $this->body; + + fputs($this->_smtp_conn, $mail_content . $this->_crlf . '.' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + // hopefully message was correctly sent now + $result = true; + } + } else { + if($this->getHeader('Bcc') != '') $headers[] = 'Bcc: ' . $this->_encodeHeader($this->getHeader('Bcc'), $this->mail_charset); + if($this->getHeader('Cc') != '') $headers[] = 'Cc: ' . $this->_encodeHeader($this->getHeader('Cc'), $this->mail_charset); + $rec_string = ''; + foreach($recipients as $recipname => $recip) { + $recipname = trim(str_replace('"', '', $recipname)); + + if($rec_string != '') $rec_string .= ', '; + if($recipname && !is_numeric($recipname)) $rec_string .= $recipname . '<' . $recip . '>'; + else $rec_string .= $recip; + } + $to = $this->_encodeHeader($rec_string, $this->mail_charset); + //$result = mail($to, $subject, $this->body, implode($this->_crlf, $headers)); + $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers)); + } + + // Reset the subject in case mail is resent + if ($subject !== '') { + $this->headers['Subject'] = $subject; + } + + // Return + return $result; + } + + + + /** + * Close mail connections + * + * This closes an open smtp connection so you should always call this function in your script if you have finished sending all emails + * + * @access public + */ + public function finish() { + if($this->use_smtp == true) $this->_smtp_close(); + + $rand = md5(microtime()); + $this->mime_boundary = '==Multipart_Boundary_x' . $rand . 'x'; + + $this->headers = array(); + $this->attachments = array(); + $this->text_part = ''; + $this->html_part = ''; + + $this->headers['MIME-Version'] = '1.0'; + $this->headers['User-Agent'] = $this->user_agent; + + $this->smtp_helo = ''; + $this->smtp_host = ''; + $this->smtp_port = ''; + $this->smtp_user = ''; + $this->smtp_pass = ''; + $this->use_smtp = false; + $this->smtp_crypt = false; + $this->mail_charset = 'UTF-8'; + $this->_sent_mails = 0; + + return; + } + +} + +?> diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 2170b5c..ae1fbd3 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -62,6 +62,15 @@ $mainver = array_filter($mainver); $mainver = current($mainver).'.'.next($mainver); switch ($mainver){ + case "14.04": + $relname = "(Trusty Tahr)"; + break; + case "13.10": + $relname = "(Saucy Salamander)"; + break; + case "13.04": + $relname = "(Raring Ringtail)"; + break; case "12.10": $relname = "(Quantal Quetzal)"; break; @@ -201,6 +210,18 @@ $distver = '5.3'; $distid = 'centos53'; $distbaseid = 'fedora'; + } elseif(stristr($content, 'CentOS Linux release 6')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 6 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 7')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 7 or compatible\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 16e91ae..af42e5e 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -34,7 +34,9 @@ var $server_id; var $server_conf; var $data; - + var $min_uid = 500; + var $min_gid = 500; + /** * Construct for this class * @@ -1785,6 +1787,67 @@ return $modules; } + + //* ISPConfig mail function + public function mail($to, $subject, $text, $from, $filepath = '', $filetype = 'application/pdf', $filename = '', $cc = '', $bcc = '', $from_name = '') { + global $app, $conf; + + if($conf['demo_mode'] == true) $app->error("Mail sending disabled in demo mode."); + + $app->uses('getconf,ispcmail'); + $mail_config = $app->getconf->get_global_config('mail'); + if($mail_config['smtp_enabled'] == 'y') { + $mail_config['use_smtp'] = true; + $app->ispcmail->setOptions($mail_config); + } + $app->ispcmail->setSender($from, $from_name); + $app->ispcmail->setSubject($subject); + $app->ispcmail->setMailText($text); + + if($filepath != '') { + if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath); + $app->ispcmail->readAttachFile($filepath); + } + + if($cc != '') $app->ispcmail->setHeader('Cc', $cc); + if($bcc != '') $app->ispcmail->setHeader('Bcc', $bcc); + + $app->ispcmail->send($to); + $app->ispcmail->finish(); + + return true; + } + + public function is_allowed_user($username, $check_id = true, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($username,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; + + if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; + + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; + + return true; + } + + public function is_allowed_group($groupname, $check_id = true, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($groupname,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; + + if($check_id && intval($this->getgid($groupname)) < $this->min_gid) return false; + + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; + + return true; + } + } ?> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 5f81fa6..a533957 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -344,8 +344,9 @@ if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } - if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { - $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); + if($app->system->is_allowed_user($data['new']['system_user'], $app->system->is_user($data['new']['system_user']), true) == false + || $app->system->is_allowed_group($data['new']['system_group'], $app->system->is_group($data['new']['system_group']), true) == false) { + $app->log('Websites cannot be owned by the root user or group. User: '.$data['new']['system_user'].' Group: '.$data['new']['system_group'], LOGLEVEL_WARN); return 0; } if(trim($data['new']['domain']) == '') { @@ -461,6 +462,9 @@ $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } + + //* Unmount the old log directory bfore we move the log dir + exec('umount '.escapeshellcmd($old_dir.'/log')); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); @@ -492,6 +496,8 @@ $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + + exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); } @@ -710,7 +716,7 @@ $app->system->chmod($data['new']['document_root'].'/ssl', 0755); // make tmp directory writable for Apache and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { @@ -770,7 +776,7 @@ $app->system->chmod($data['new']['document_root'].'/cgi-bin', 0755); // make temp directory writable for Apache and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { @@ -1205,18 +1211,15 @@ } else { //remove the php fastgi starter script if available + $fastcgi_starter_script = $fastcgi_config['fastcgi_starter_script'].($data['old']['type'] == 'vhostsubdomain' ? '_web' . $data['old']['domain_id'] : ''); if ($data['old']['php'] == 'fast-cgi') { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $fastcgi_config['fastcgi_starter_path']); $fastcgi_starter_path = str_replace('[client_id]', $client_id, $fastcgi_starter_path); if($data['old']['type'] == 'vhost') { - if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); - } + if(is_file($fastcgi_starter_script)) @unlink($fastcgi_starter_script); + if (is_dir($fastcgi_starter_path)) @rmdir($fastcgi_starter_path); } else { - $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].'_web' . $data['old']['domain_id']; - if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); - } + if(is_file($fastcgi_starter_script)) @unlink($fastcgi_starter_script); } } } @@ -2009,7 +2012,7 @@ //* Create empty .htpasswd file, if it does not exist if(!is_file($folder_path.'.htpasswd')) { $app->system->touch($folder_path.'.htpasswd'); - $app->system->chmod($folder_path.'.htpasswd', 0750); + $app->system->chmod($folder_path.'.htpasswd', 0751); $app->system->chown($folder_path.'.htpasswd', $website['system_user']); $app->system->chgrp($folder_path.'.htpasswd', $website['system_group']); $app->log('Created file '.$folder_path.'.htpasswd', LOGLEVEL_DEBUG); @@ -2063,7 +2066,7 @@ unset($old_content); $app->system->file_put_contents($folder_path.'.htaccess', $ht_file); - $app->system->chmod($folder_path.'.htaccess', 0750); + $app->system->chmod($folder_path.'.htaccess', 0751); $app->system->chown($folder_path.'.htaccess', $website['system_user']); $app->system->chgrp($folder_path.'.htaccess', $website['system_group']); $app->log('Created/modified file '.$folder_path.'.htaccess', LOGLEVEL_DEBUG); @@ -2225,7 +2228,7 @@ } $app->system->file_put_contents($new_folder_path.'.htaccess', $ht_file); - $app->system->chmod($new_folder_path.'.htaccess', 0750); + $app->system->chmod($new_folder_path.'.htaccess', 0751); $app->system->chown($new_folder_path.'.htaccess', $website['system_user']); $app->system->chgrp($new_folder_path.'.htaccess', $website['system_group']); $app->log('Created/modified file '.$new_folder_path.'.htaccess', LOGLEVEL_DEBUG); @@ -2233,7 +2236,7 @@ //* Create empty .htpasswd file, if it does not exist if(!is_file($folder_path.'.htpasswd')) { $app->system->touch($new_folder_path.'.htpasswd'); - $app->system->chmod($new_folder_path.'.htpasswd', 0750); + $app->system->chmod($new_folder_path.'.htpasswd', 0751); $app->system->chown($new_folder_path.'.htpasswd', $website['system_user']); $app->system->chgrp($new_folder_path.'.htpasswd', $website['system_group']); $app->log('Created file '.$new_folder_path.'.htpasswd', LOGLEVEL_DEBUG); @@ -2654,7 +2657,7 @@ $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); - $tpl->setVar('fpm_listen_mode', '0600'); + $tpl->setVar('fpm_listen_mode', '0660'); $tpl->setVar('fpm_pool', $pool_name); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1); diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php index 46be0a6..c3ed1ae 100644 --- a/server/plugins-available/backup_plugin.inc.php +++ b/server/plugins-available/backup_plugin.inc.php @@ -75,10 +75,10 @@ $backup_dir_is_ready = true; $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']); if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){ - if(!$app->system->is_mounted($backup_dir)){ + if(!$app->system->is_mounted($server_config['backup_dir'])){ exec(escapeshellcmd($server_config['backup_dir_mount_cmd'])); sleep(1); - if(!$app->system->is_mounted($backup_dir)) $backup_dir_is_ready = false; + if(!$app->system->is_mounted($server_config['backup_dir'])) $backup_dir_is_ready = false; } } diff --git a/server/plugins-available/bind_dlz_plugin.inc.php b/server/plugins-available/bind_dlz_plugin.inc.php index f6d367f..63abcc4 100644 --- a/server/plugins-available/bind_dlz_plugin.inc.php +++ b/server/plugins-available/bind_dlz_plugin.inc.php @@ -188,7 +188,7 @@ //$_db = clone $app->db; //$_db->dbName = 'named'; - $app->db->query("DELETE FROM named.records WHERE ispconfig_id = {$data["old"]["id"]}"); + $app->db->query( "DELETE FROM named.dns_records WHERE zone = '".substr($data['old']['origin'], 0, -1)."'"); //unset($_db); } @@ -252,6 +252,9 @@ if ($type == 'MX') { $app->db->query("INSERT INTO named.records (zone, ttl, type, host, mx_priority, data, ispconfig_id)". " VALUES ('$origin', $ttl, '$type', '$name', {$data["new"]["aux"]}, '$content', $ispconfig_id)"); + } elseif ($type == 'SRV') { + $app->db->query("INSERT INTO named.records (zone, ttl, type, data, ispconfig_id)". + " VALUES ('$origin', $ttl, '$type', '{$data["new"]["aux"]} $content', $ispconfig_id)"); } else { $app->db->query("INSERT INTO named.records (zone, ttl, type, host, data, ispconfig_id)". " VALUES ('$origin', $ttl, '$type', '$name', '$content', $ispconfig_id)"); @@ -327,6 +330,9 @@ if ($type == 'MX') { $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', mx_priority = $prio, ". "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); + } elseif ($type == 'SRV') { + $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', ". + "data = '$prio $content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); } else { $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', ". "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); @@ -345,7 +351,7 @@ //$_db = clone $app->db; //$_db->dbName = 'named'; - $app->db->query("DELETE FROM named.records WHERE ispconfig_id = {$data["old"]["id"]} AND type != 'SOA'"); + $app->db->query( "DELETE FROM named.dns_records WHERE type != 'SOA' AND zone = '".substr($data['old']['origin'], 0, -1)."'"); //unset($_db); } diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index c3bd5b7..4c95b83 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -80,10 +80,14 @@ if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; } + + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { + $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); + return false; + } + $this->parent_domain = $parent_domain; @@ -155,9 +159,11 @@ if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { + } + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; + return false; } $app->uses('system'); diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index fe00713..7f8070d 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -96,11 +96,14 @@ if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; } + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { + $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); + return false; + } + // Get the client ID $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); $client_id = intval($client["client_id"]); diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php index 186e9b9..2cca769 100644 --- a/server/plugins-available/firewall_plugin.inc.php +++ b/server/plugins-available/firewall_plugin.inc.php @@ -76,29 +76,31 @@ global $app, $conf; //* load the server configuration options - $app->uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if($server_config['firewall'] == 'ufw') { - $this->ufw_update($event_name, $data); - } else { - $this->bastille_update($event_name, $data); + if(!$data['mirrored']) { + $app->uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + if($server_config['firewall'] == 'ufw') { + $this->ufw_update($event_name, $data); + } else { + $this->bastille_update($event_name, $data); + } } - } public function delete($event_name, $data) { global $app, $conf; //* load the server configuration options - $app->uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + if(!$data['mirrored']) { + $app->uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if($server_config['firewall'] == 'ufw') { - $this->ufw_delete($event_name, $data); - } else { - $this->bastille_delete($event_name, $data); + if($server_config['firewall'] == 'ufw') { + $this->ufw_delete($event_name, $data); + } else { + $this->bastille_delete($event_name, $data); + } } - } private function ufw_update($event_name, $data) { diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 5bf37d1..6d109c5 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -107,10 +107,11 @@ $maildomain_path .= '/Maildir'; } - //* When the mail user dir exists but it is not a valid maildir, remove it + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log('Removed invalid maildir and rebuild it: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. @@ -238,10 +239,11 @@ $maildomain_path .= '/Maildir'; } - //* When the mail user dir exists but it is not a valid maildir, remove it + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log('Removed invalid maildir and rebuild it: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index cba977c..6145db0 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -83,7 +83,14 @@ if(!is_array($host_list)) $host_list = explode(',', $host_list); $success = true; - + if(!preg_match('/\*[A-F0-9]{40}$/', $database_password)) { + $result = $link->query("SELECT PASSWORD('" . $link->escape_string($database_password) . "') as `crypted`"); + if($result) { + $row = $result->fetch_assoc(); + $database_password = $row['crypted']; + $result->free(); + } + } // loop through hostlist foreach($host_list as $db_host) { $db_host = trim($db_host); @@ -270,7 +277,7 @@ $old_host_list .= 'localhost'; // Create the database user if database was disabled before - if($data['new']['active'] == 'y' && $data['old']['active'] == 'n') { + if($data['new']['active'] == 'y') { if($db_user) { if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $host_list, $link); diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php index 56e4980..46242d9 100644 --- a/server/plugins-available/network_settings_plugin.inc.php +++ b/server/plugins-available/network_settings_plugin.inc.php @@ -243,12 +243,61 @@ } else { if($data['mirrored'] == true) { - $app->log('Skipping network config request. IP addresses from amster are not configured on the mirror.', LOGLEVEL_DEBUG); + $app->log('Skipping network config request. IP addresses from master are not configured on the mirror.', LOGLEVEL_DEBUG); } if($server_config['auto_network_configuration'] == 'n') { $app->log('Network configuration disabled in server settings.', LOGLEVEL_DEBUG); } } + + //* Configure hostname + if($event_name == 'server_update' && $data['mirrored'] == false) { + + //* get old server config + $tmp = $app->ini_parser->parse_ini_string(stripslashes($data['old']['config'])); + $old_server_config = $tmp['server']; + unset($tmp); + + $new_hostname = trim($server_config['hostname']); + $old_hostname = trim($old_server_config['hostname']); + + if($new_hostname != '' && $old_hostname != $new_hostname) { + + if(is_file('/etc/hostname')) { + $app->system->file_put_contents('/etc/hostname',$new_hostname); + $app->log('Changed /etc/hostname to '.$new_hostname, LOGLEVEL_DEBUG); + } + + if(is_file('/etc/mailname')) { + $app->system->file_put_contents('/etc/mailname',$new_hostname); + $app->log('Changed /etc/mailname to '.$new_hostname, LOGLEVEL_DEBUG); + } + + $postconf_commands = array( + 'myhostname = '.$new_hostname, + 'mydestination = '.$new_hostname.', localhost, localhost.localdomain' + ); + + //* Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + exec($command); + } + + $app->log('Changed changed myhostname and mydestination in postfix main.cf to '.$new_hostname, LOGLEVEL_DEBUG); + + //* change /etc/hosts + $hosts = file_get_contents('/etc/hosts'); + $hosts = str_replace($old_hostname,$new_hostname,$hosts); + $app->system->file_put_contents('/etc/hosts',$hosts); + + exec($app->system->getinitcommand('postfix', 'restart').' 2>&1'); + exec($app->system->getinitcommand('networking', 'restart').' 2>&1'); + + } + + } + } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index dcfc674..b0e18c7 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -351,10 +351,13 @@ if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } - if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { - $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); + + if($app->system->is_allowed_user($data['new']['system_user'], $app->system->is_user($data['new']['system_user']), true) == false + || $app->system->is_allowed_group($data['new']['system_group'], $app->system->is_group($data['new']['system_group']), true) == false) { + $app->log('Websites cannot be owned by the root user or group. User: '.$data['new']['system_user'].' Group: '.$data['new']['system_group'], LOGLEVEL_WARN); return 0; } + if(trim($data['new']['domain']) == '') { $app->log('domain is empty', LOGLEVEL_WARN); return 0; @@ -465,6 +468,9 @@ $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } + + //* Unmount the old log directory bfore we move the log dir + exec('umount '.escapeshellcmd($old_dir.'/log')); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); @@ -496,6 +502,8 @@ $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + + exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); } @@ -714,7 +722,7 @@ $app->system->chmod($data['new']['document_root'].'/ssl', 0755); // make tmp directory writable for nginx and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { @@ -774,7 +782,7 @@ $app->system->chmod($data['new']['document_root'].'/cgi-bin', 0755); // make temp directory writable for nginx and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 0ceced9..e331624 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -82,6 +82,13 @@ $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; } + + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } if($app->system->is_user($data['new']['puser'])) { @@ -151,6 +158,13 @@ return false; } + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 90ed677..9cf6fc8 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -74,6 +74,13 @@ $app->uses('system'); $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); @@ -139,6 +146,13 @@ $app->uses('system'); $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); diff --git a/server/scripts/ispconfig_update.php b/server/scripts/ispconfig_update.php index 3512de9..2a5deed 100644 --- a/server/scripts/ispconfig_update.php +++ b/server/scripts/ispconfig_update.php @@ -86,9 +86,9 @@ |___/ "; echo "\n".str_repeat('-', 80)."\n"; echo "\n\n>> Update \n\n"; -echo "Please choose the update method. For production systems select 'stable'. \nThe update from svn is only for development systems and may break your current setup.\nNote: Update all slave server, before you update master server.\n\n"; +echo "Please choose the update method. For production systems select 'stable'. \nWARNING: The update from GIT is only for development systems and may break your current setup. Do not use the GIT version on servers that host any live websites!\nNote: Update all slave server, before you update master server.\n\n"; -$method = simple_query('Select update method', array('stable', 'svn'), 'stable'); +$method = simple_query('Select update method', array('stable', 'git'), 'stable'); if($method == 'stable') { $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); -- Gitblit v1.9.1