Merge branch 'stable-3.0.5'
Conflicts:
install/autoupdate.php
install/install.php
install/sql/incremental/upd_0078.sql
install/sql/ispconfig3.sql
install/tpl/config.inc.php.master
install/tpl/debian_postfix.conf.master
install/tpl/fedora_postfix.conf.master
install/tpl/gentoo_postfix.conf.master
install/tpl/opensuse_postfix.conf.master
interface/lib/classes/db_mysql.inc.php
interface/lib/classes/remoting.inc.php
interface/lib/classes/tform.inc.php
interface/lib/classes/validate_reseller.inc.php
interface/lib/config.inc.php
interface/lib/lang/es.lng
interface/web/admin/lib/lang/de_server_config.lng
interface/web/admin/lib/lang/en_server_config.lng
interface/web/admin/lib/lang/es_server_config.lng
interface/web/admin/lib/lang/fr_server_config.lng
interface/web/admin/lib/lang/hr_server_config.lng
interface/web/dns/lib/lang/hr_dns_wizard.lng
interface/web/mail/lib/lang/hr_mail_user.lng
interface/web/mail/mail_domain_edit.php
interface/web/mail/mail_user_edit.php
interface/web/remote/index.php
interface/web/sites/database_edit.php
interface/web/sites/form/database.tform.php
interface/web/sites/form/web_vhost_subdomain.tform.php
interface/web/sites/lib/lang/ar_web_childdomain_list.lng
interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng
interface/web/sites/lib/lang/cz_web_childdomain.lng
interface/web/sites/lib/lang/cz_web_subdomain.lng
interface/web/sites/lib/lang/cz_web_subdomain_list.lng
interface/web/sites/lib/lang/cz_web_vhost_domain.lng
interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
interface/web/sites/lib/lang/de_ftp_user.lng
interface/web/sites/lib/lang/de_shell_user.lng
interface/web/sites/lib/lang/en_ftp_user.lng
interface/web/sites/lib/lang/en_web_childdomain.lng
interface/web/sites/lib/lang/en_web_domain.lng
interface/web/sites/lib/lang/es_ftp_user.lng
interface/web/sites/lib/lang/es_shell_user.lng
interface/web/sites/lib/lang/es_web_domain.lng
interface/web/sites/lib/lang/fr_web_subdomain.lng
interface/web/sites/lib/lang/hr_web_aliasdomain.lng
interface/web/sites/lib/lang/hr_web_subdomain.lng
interface/web/sites/lib/lang/hr_web_subdomain_list.lng
interface/web/sites/lib/lang/hr_web_vhost_domain.lng
interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng
interface/web/sites/lib/lang/hr_web_vhost_subdomain_list.lng
interface/web/sites/lib/lang/se_web_subdomain.lng
interface/web/sites/lib/lang/se_web_subdomain_list.lng
interface/web/sites/lib/lang/se_web_vhost_subdomain.lng
interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng
interface/web/sites/web_aliasdomain_edit.php
interface/web/sites/web_domain_edit.php
interface/web/sites/web_vhost_subdomain_edit.php
interface/web/themes/blue/ispconfig_version
interface/web/themes/default-304/templates/admin/server_config_mail_edit.htm
interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm
interface/web/themes/default-304/templates/dns/dns_wizard.htm
interface/web/themes/default-304/templates/mail/spamfilter_config_mail_edit.htm
interface/web/themes/default-304/templates/sites/web_vhost_subdomain_advanced.htm
interface/web/themes/default-304/templates/sites/web_vhost_subdomain_backup.htm
interface/web/themes/default-304/templates/sites/web_vhost_subdomain_redirect.htm
interface/web/themes/default-304/templates/sites/web_vhost_subdomain_ssl.htm
interface/web/themes/default-304/templates/sites/web_vhost_subdomain_stats.htm
server/conf/vhost.conf.master
server/cron_daily.php
server/lib/classes/db_mysql.inc.php
server/mods-available/monitor_core_module.inc.php
86 files added
873 files modified
1,694 files deleted
| New file |
| | |
| | | <?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
|
| | | ?> |
| New file |
| | |
| | | [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 |
| | |
| | | $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); |
| | |
| | | |
| | | function configure_postfix($options = '') |
| | | { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | $cf = $conf['postfix']; |
| | | $config_dir = $cf['config_dir']; |
| | | |
| | |
| | | |
| | | 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=".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'; |
| | |
| | | $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"); |
| | |
| | | //* copy the ISPConfig server part |
| | | $command = "cp -rf ../server $install_dir"; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make a backup of the security settings |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); |
| | | |
| | | //* copy the ISPConfig security part |
| | | $command = 'cp -rf ../security '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Apply changed security_settings.ini values to new security_settings.ini file |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { |
| | | $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); |
| | | $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); |
| | | if(is_array($security_settings_new) && is_array($security_settings_old)) { |
| | | foreach($security_settings_new as $section => $sval) { |
| | | if(is_array($sval)) { |
| | | foreach($sval as $key => $val) { |
| | | if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { |
| | | $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); |
| | | } |
| | | } |
| | | |
| | | //* Create a symlink, so ISPConfig is accessible via web |
| | | // Replaced by a separate vhost definition for port 8080 |
| | |
| | | $this->db->query($sql); |
| | | } |
| | | |
| | | //* Chmod the files |
| | | $command = "chmod -R 750 $install_dir"; |
| | | // chown install dir to root and chmod 755 |
| | | $command = 'chown root:root '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chmod 755 '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the files to the ispconfig user and group |
| | | $command = "chown -R ispconfig:ispconfig $install_dir"; |
| | | //* Chmod the files and directories in the install dir |
| | | $command = 'chmod -R 750 '.$install_dir.'/*'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the interface files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the server files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/server'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security directory and security_settings.ini to root:ispconfig |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make the global language file directory group writable |
| | |
| | | exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); |
| | | exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); |
| | | } |
| | | |
| | | if(is_dir($install_dir.'/interface/invoices')) { |
| | | exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | } |
| | | |
| | | exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); |
| | | |
| | | // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing |
| | | // and must be fixed as this will allow the apache user to read the ispconfig files. |
| | |
| | | |
| | | public function configure_postfix($options = '') |
| | | { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | |
| | | $cf = $conf['postfix']; |
| | | $config_dir = $cf['config_dir']; |
| | |
| | | //* 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'; |
| | | 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'; |
| | |
| | | //* copy the ISPConfig server part |
| | | $command = "cp -rf ../server $install_dir"; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make a backup of the security settings |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); |
| | | |
| | | //* copy the ISPConfig security part |
| | | $command = 'cp -rf ../security '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Apply changed security_settings.ini values to new security_settings.ini file |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { |
| | | $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); |
| | | $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); |
| | | if(is_array($security_settings_new) && is_array($security_settings_old)) { |
| | | foreach($security_settings_new as $section => $sval) { |
| | | if(is_array($sval)) { |
| | | foreach($sval as $key => $val) { |
| | | if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { |
| | | $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); |
| | | } |
| | | } |
| | | |
| | | |
| | | //* Create the config file for ISPConfig interface |
| | |
| | | $this->db->query($sql); |
| | | } |
| | | |
| | | //* Chmod the files |
| | | $command = "chmod -R 750 $install_dir"; |
| | | // chown install dir to root and chmod 755 |
| | | $command = 'chown root:root '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chmod 755 '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the files to the ispconfig user and group |
| | | $command = "chown -R ispconfig:ispconfig $install_dir"; |
| | | //* Chmod the files and directories in the install dir |
| | | $command = 'chmod -R 750 '.$install_dir.'/*'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the interface files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the server files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/server'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security directory and security_settings.ini to root:ispconfig |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make the global language file directory group writable |
| | |
| | | exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | } |
| | | |
| | | exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); |
| | | |
| | | // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing |
| | | // and must be fixed as this will allow the apache user to read the ispconfig files. |
| | |
| | | |
| | | //* 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 = '') |
| | | { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | $cf = $conf['postfix']; |
| | | $config_dir = $cf['config_dir']; |
| | | |
| | |
| | | |
| | | 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=".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'; |
| | |
| | | $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"); |
| | |
| | | if($conf['apache']['installed'] == false) return; |
| | | //* Create the logging directory for the vhost logfiles |
| | | exec('mkdir -p /var/log/ispconfig/httpd'); |
| | | |
| | | //* enable apache logio module |
| | | exec('a2enmod logio'); |
| | | |
| | | //if(is_file('/etc/suphp.conf')) { |
| | | replaceLine('/etc/suphp.conf', 'php=php', 'x-httpd-suphp="php:/srv/www/cgi-bin/php5"', 0, 0); |
| | |
| | | //* copy the ISPConfig server part |
| | | $command = "cp -rf ../server $install_dir"; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make a backup of the security settings |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); |
| | | |
| | | //* copy the ISPConfig security part |
| | | $command = 'cp -rf ../security '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Apply changed security_settings.ini values to new security_settings.ini file |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { |
| | | $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); |
| | | $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); |
| | | if(is_array($security_settings_new) && is_array($security_settings_old)) { |
| | | foreach($security_settings_new as $section => $sval) { |
| | | if(is_array($sval)) { |
| | | foreach($sval as $key => $val) { |
| | | if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { |
| | | $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); |
| | | } |
| | | } |
| | | |
| | | //* Create a symlink, so ISPConfig is accessible via web |
| | | // Replaced by a separate vhost definition for port 8080 |
| | |
| | | $this->db->query($sql); |
| | | } |
| | | |
| | | //* Chmod the files |
| | | $command = "chmod -R 750 $install_dir"; |
| | | // chown install dir to root and chmod 755 |
| | | $command = 'chown root:root '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chmod 755 '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the files to the ispconfig user and group |
| | | $command = "chown -R ispconfig:ispconfig $install_dir"; |
| | | //* Chmod the files and directories in the install dir |
| | | $command = 'chmod -R 750 '.$install_dir.'/*'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the interface files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the server files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/server'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security directory and security_settings.ini to root:ispconfig |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make the global language file directory group writable |
| | |
| | | exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); |
| | | exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); |
| | | } |
| | | |
| | | if(is_dir($install_dir.'/interface/invoices')) { |
| | | exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | } |
| | | |
| | | exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); |
| | | |
| | | // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing |
| | | // and must be fixed as this will allow the apache user to read the ispconfig files. |
| | |
| | | |
| | | /* |
| | | 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); |
| | |
| | | |
| | | 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'; |
| | |
| | | $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 |
| | |
| | | $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 |
| | |
| | | //** 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 |
| | |
| | | |
| | | //* 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 { |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | //** 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)) { |
| | |
| | | |
| | | //* 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 { |
| | |
| | | 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; |
| | | |
| | |
| | | } |
| | | |
| | | //** 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) { |
| | |
| | | //** 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(); |
| | |
| | | //** 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(); |
| | |
| | | } |
| | | |
| | | //** Configure Firewall |
| | | if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y')) == 'y') { |
| | | if($conf['ufw']['installed'] == true) { |
| | | 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; |
| | | swriteln('Configuring Bastille Firewall'); |
| | | $inst->configure_firewall(); |
| | | /*} elseif($conf['ufw']['installed'] == true) { |
| | | //* Configure Ubuntu Firewall |
| | | $conf['services']['firewall'] = true; |
| | | swriteln('Configuring Ubuntu Firewall'); |
| | |
| | | swriteln('Configuring Bastille Firewall'); |
| | | $inst->configure_bastille_firewall(); |
| | | } |
| | | */ |
| | | } |
| | | |
| | | //** Configure Firewall |
| | |
| | | |
| | | //** 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 |
| | |
| | | */ |
| | | |
| | | //** 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(); |
| | | } |
| | | |
| | |
| | | |
| | | } //* << $install_mode / 'Standard' or Genius |
| | | |
| | | //* Create md5 filelist |
| | | $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5'; |
| | | exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename); |
| | | chmod($md5_filename,0700); |
| | | |
| | | |
| | | echo "Installation completed.\n"; |
| | | |
| | |
| | | $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; |
| | |
| | | $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'; |
| | |
| | | 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') { |
| | |
| | | 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') { |
| | |
| | | copy('tpl/mailman-virtual_to_transport.sh', $full_file_name); |
| | | } |
| | | chgrp($full_file_name, 'list'); |
| | | chmod($full_file_name, 0750); |
| | | chmod($full_file_name, 0755); |
| | | } |
| | | |
| | | //* Create aliasaes |
| | |
| | | } |
| | | |
| | | public function configure_postfix($options = '') { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | $cf = $conf['postfix']; |
| | | $config_dir = $cf['config_dir']; |
| | | |
| | |
| | | |
| | | 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'; |
| | |
| | | $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); |
| | |
| | | } |
| | | |
| | | public function make_ispconfig_ssl_cert() { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | |
| | | $install_dir = $conf['ispconfig_install_dir']; |
| | | |
| | |
| | | |
| | | $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'); |
| | | rename($ssl_key_file.'.insecure', $ssl_key_file); |
| | | |
| | | exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); |
| | | |
| | | } |
| | | |
| | |
| | | //* copy the ISPConfig server part |
| | | $command = 'cp -rf ../server '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make a backup of the security settings |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); |
| | | |
| | | //* copy the ISPConfig security part |
| | | $command = 'cp -rf ../security '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Apply changed security_settings.ini values to new security_settings.ini file |
| | | if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { |
| | | $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); |
| | | $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); |
| | | if(is_array($security_settings_new) && is_array($security_settings_old)) { |
| | | foreach($security_settings_new as $section => $sval) { |
| | | if(is_array($sval)) { |
| | | foreach($sval as $key => $val) { |
| | | if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { |
| | | $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); |
| | | } |
| | | } |
| | | |
| | | //* Create a symlink, so ISPConfig is accessible via web |
| | | // Replaced by a separate vhost definition for port 8080 |
| | |
| | | } |
| | | |
| | | |
| | | //* Chmod the files |
| | | $command = 'chmod -R 750 '.$install_dir; |
| | | // chown install dir to root and chmod 755 |
| | | $command = 'chown root:root '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chmod 755 '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir; |
| | | //* Chmod the files and directories in the install dir |
| | | $command = 'chmod -R 750 '.$install_dir.'/*'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the interface files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the server files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/server'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security directory and security_settings.ini to root:ispconfig |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make the global language file directory group writable |
| | |
| | | exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); |
| | | } |
| | | |
| | | exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); |
| | | |
| | | // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing |
| | | // and must be fixed as this will allow the apache user to read the ispconfig files. |
| | |
| | | |
| | | // Add symlink for patch tool |
| | | if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); |
| | | |
| | | |
| | | } |
| | | |
| | | public function configure_dbserver() { |
| | |
| | | chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); |
| | | |
| | | } |
| | | |
| | | // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases |
| | | public function cleanup_ispconfig() { |
| | | global $app,$conf; |
| | | |
| | | // Remove directories recursively |
| | | if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); |
| | | if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); |
| | | |
| | | // Remove files |
| | | if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); |
| | | if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | public function getinitcommand($servicename, $action, $init_script_directory = ''){ |
| | | global $conf; |
| | | // systemd |
| | | if(is_executable('/bin/systemd')){ |
| | | if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ |
| | | return 'systemctl '.$action.' '.$servicename.'.service'; |
| | | } |
| | | // upstart |
| | |
| | | ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL DEFAULT ''; |
| | | ALTER TABLE `web_domain` DROP INDEX `serverdomain`, ADD UNIQUE `serverdomain` ( `server_id` , `ip_address`, `domain` ); |
| | |
| | | `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 ; |
| | | |
| | | -- -------------------------------------------------------- |
| | |
| | | # 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> |
| | |
| | | |
| | | # 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 |
| | |
| | | |
| | | # SSL Configuration |
| | | <tmpl_var name="ssl_comment">SSLEngine On |
| | | <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 |
| | | <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt |
| | | <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key |
| | | <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle |
| | |
| | | export PHPRC |
| | | export PHP_FCGI_MAX_REQUESTS=5000 |
| | | export PHP_FCGI_CHILDREN=1 |
| | | exec {fastcgi_bin} -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp |
| | | exec {fastcgi_bin} -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/interface/temp |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | mail_privileged_group = vmail |
| | | ssl_cert = </etc/postfix/smtpd.cert |
| | | ssl_key = </etc/postfix/smtpd.key |
| | | ssl_protocols = !SSLv2 !SSLv3 |
| | | passdb { |
| | | args = /etc/dovecot/dovecot-sql.conf |
| | | driver = sql |
| | |
| | | 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 |
| | |
| | | postmaster_address = postmaster@example.com |
| | | ssl_cert = </etc/postfix/smtpd.cert |
| | | ssl_key = </etc/postfix/smtpd.key |
| | | ssl_protocols = !SSLv2 !SSLv3 |
| | | passdb { |
| | | args = /etc/dovecot/dovecot-sql.conf |
| | | driver = sql |
| | |
| | | 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} |
| | |
| | | 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 |
| | |
| | | body_checks = regexp:{config_dir}/body_checks |
| | | owner_request_special = no |
| | | smtp_tls_security_level = may |
| | | smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 |
| | | smtpd_tls_protocols = !SSLv2,!SSLv3 |
| | | smtp_tls_protocols = !SSLv2,!SSLv3 |
| | |
| | | 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 |
| | |
| | | mail_privileged_group = vmail |
| | | ssl_cert = </etc/postfix/smtpd.cert |
| | | ssl_key = </etc/postfix/smtpd.key |
| | | ssl_protocols = !SSLv2 !SSLv3 |
| | | passdb { |
| | | args = /etc/dovecot-sql.conf |
| | | driver = sql |
| | |
| | | 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} |
| | |
| | | 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 |
| | |
| | | body_checks = regexp:{config_dir}/body_checks |
| | | inet_interfaces = all |
| | | smtp_tls_security_level = may |
| | | smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 |
| | | smtpd_tls_protocols = !SSLv2,!SSLv3 |
| | | smtp_tls_protocols = !SSLv2,!SSLv3 |
| | |
| | | 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 |
| | |
| | | body_checks = regexp:{config_dir}/body_checks |
| | | inet_interfaces = all |
| | | smtp_tls_security_level = may |
| | | smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 |
| | | smtpd_tls_protocols = !SSLv2,!SSLv3 |
| | | smtp_tls_protocols = !SSLv2,!SSLv3 |
| | |
| | | server { |
| | | listen {vhost_port}; |
| | | ssl {ssl_on}; |
| | | {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; |
| | | {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; |
| | | {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; |
| | | |
| | |
| | | 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 |
| | |
| | | mail_privileged_group = vmail |
| | | ssl_cert = </etc/postfix/smtpd.cert |
| | | ssl_key = </etc/postfix/smtpd.key |
| | | ssl_protocols = !SSLv2 !SSLv3 |
| | | passdb { |
| | | args = /etc/dovecot/dovecot-sql.conf |
| | | driver = sql |
| | |
| | | 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} |
| | |
| | | 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 |
| | |
| | | body_checks = regexp:{config_dir}/body_checks |
| | | inet_interfaces = all |
| | | smtp_tls_security_level = may |
| | | smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 |
| | | smtpd_tls_protocols = !SSLv2,!SSLv3 |
| | | smtp_tls_protocols = !SSLv2,!SSLv3 |
| | |
| | | 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 |
| | |
| | | chdir = / |
| | | |
| | | ; php_admin_value[open_basedir] = /usr/local/ispconfig/interface:/usr/share |
| | | php_admin_value[session.save_path] = /usr/local/ispconfig/server/temp |
| | | php_admin_value[session.save_path] = /usr/local/ispconfig/interface/temp |
| | | php_admin_flag[magic_quotes_gpc] = off |
| | |
| | | admin_notify_events=1 |
| | | backup_dir=/var/backup |
| | | backup_dir_is_mount=n |
| | | backup_dir_mount_cmd= |
| | | backup_mode=rootgz |
| | | backup_delete=y |
| | | monit_url= |
| | |
| | | website_path=/var/www/clients/client[client_id]/web[website_id] |
| | | website_symlinks=/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/ |
| | | website_symlinks_rel=n |
| | | network_filesystem=n |
| | | vhost_conf_dir=/etc/apache2/sites-available |
| | | vhost_conf_enabled_dir=/etc/apache2/sites-enabled |
| | | nginx_vhost_conf_dir=/etc/nginx/sites-available |
| | |
| | | |
| | | /* |
| | | 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); |
| | |
| | | |
| | | 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'; |
| | |
| | | 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 |
| | |
| | | $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); |
| | |
| | | //** 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)) { |
| | |
| | | */ |
| | | //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(); |
| | |
| | | //} |
| | | |
| | | //** 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') { |
| | | |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | $inst->install_ispconfig(); |
| | | |
| | | // Cleanup |
| | | $inst->cleanup_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(); |
| | |
| | | } |
| | | } |
| | | |
| | | //* Create md5 filelist |
| | | $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5'; |
| | | exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename); |
| | | chmod($md5_filename,0700); |
| | | |
| | | echo "Update finished.\n"; |
| | | |
| | | ?> |
| | |
| | | private $_wb; |
| | | private $_loaded_classes = array(); |
| | | private $_conf; |
| | | private $_security_config; |
| | | |
| | | public $loaded_plugins = array(); |
| | | |
| | |
| | | $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 |
| | |
| | | } |
| | | |
| | | $this->uses('functions'); // we need this before all others! |
| | | $this->uses('auth,plugin'); |
| | | $this->uses('auth,plugin,ini_parser,getconf'); |
| | | |
| | | } |
| | | |
| | | public function __get($prop) { |
| | |
| | | //* possible future = new app($conf); |
| | | $app = new app(); |
| | | |
| | | // load and enable PHP Intrusion Detection System (PHPIDS) |
| | | $ids_security_config = $app->getconf->get_security_config('ids'); |
| | | |
| | | if(is_dir(ISPC_CLASS_PATH.'/IDS') && $ids_security_config['ids_enabled'] == 'yes') { |
| | | $app->uses('ids'); |
| | | $app->ids->start(); |
| | | } |
| | | unset($ids_security_config); |
| | | |
| | | ?> |
| New file |
| | |
| | | # in case PHPIDS is placed in the web-root |
| | | deny from all |
| | | |
| | | # silence is golden |
| | | php_flag display_errors off |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * APC caching wrapper |
| | | * |
| | | * This class inhabits functionality to get and set cache via memcached. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Yves Berkholz <godzilla80@gmx.net> |
| | | * @copyright 2007-2009 The PHPIDS Groupoup |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.6.5 |
| | | */ |
| | | class ApcCache implements CacheInterface |
| | | { |
| | | /** |
| | | * Caching type |
| | | * |
| | | * @var string |
| | | */ |
| | | private $type = null; |
| | | |
| | | /** |
| | | * Cache configuration |
| | | * |
| | | * @var array |
| | | */ |
| | | private $config = null; |
| | | |
| | | /** |
| | | * Flag if the filter storage has been found in memcached |
| | | * |
| | | * @var boolean |
| | | */ |
| | | private $isCached = false; |
| | | |
| | | /** |
| | | * Holds an instance of this class |
| | | * |
| | | * @var object |
| | | */ |
| | | private static $cachingInstance = null; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param string $type caching type |
| | | * @param array $init the IDS_Init object |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($type, $init) |
| | | { |
| | | $this->type = $type; |
| | | $this->config = $init->config['Caching']; |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public static function getInstance($type, $init) |
| | | { |
| | | if (!self::$cachingInstance) { |
| | | self::$cachingInstance = new ApcCache($type, $init); |
| | | } |
| | | |
| | | return self::$cachingInstance; |
| | | } |
| | | |
| | | /** |
| | | * Writes cache data |
| | | * |
| | | * @param array $data the caching data |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public function setCache(array $data) |
| | | { |
| | | if (!$this->isCached) { |
| | | apc_store( |
| | | $this->config['key_prefix'] . '.storage', |
| | | $data, |
| | | $this->config['expiration_time'] |
| | | ); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the cached data |
| | | * |
| | | * Note that this method returns false if either type or file cache is |
| | | * not set |
| | | * |
| | | * @return mixed cache data or false |
| | | */ |
| | | public function getCache() |
| | | { |
| | | $data = apc_fetch($this->config['key_prefix'] . '.storage'); |
| | | $this->isCached = !empty($data); |
| | | |
| | | return $data; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * Caching factory |
| | | * |
| | | * This class is used as a factory to load the correct concrete caching |
| | | * implementation. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class CacheFactory |
| | | { |
| | | /** |
| | | * Factory method |
| | | * |
| | | * @param object $init the IDS_Init object |
| | | * @param string $type the caching type |
| | | * |
| | | * @return object the caching facility |
| | | */ |
| | | public static function factory($init, $type) |
| | | { |
| | | $object = false; |
| | | $wrapper = preg_replace( |
| | | '/\W+/m', |
| | | null, |
| | | ucfirst($init->config['Caching']['caching']) |
| | | ); |
| | | $class = '\\IDS\\Caching\\' . $wrapper . 'Cache'; |
| | | $path = dirname(__FILE__) . DIRECTORY_SEPARATOR . $wrapper . 'Cache.php'; |
| | | |
| | | if (file_exists($path)) { |
| | | include_once $path; |
| | | |
| | | if (class_exists($class)) { |
| | | $object = call_user_func( |
| | | array('' . $class, 'getInstance'), |
| | | $type, |
| | | $init |
| | | ); |
| | | } |
| | | } |
| | | |
| | | return $object; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * Caching wrapper interface |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @since Version 0.4 |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | interface CacheInterface |
| | | { |
| | | /** |
| | | * Interface method |
| | | * |
| | | * @param array $data the cache data |
| | | * |
| | | * @return void |
| | | */ |
| | | public function setCache(array $data); |
| | | |
| | | /** |
| | | * Interface method |
| | | * |
| | | * @return void |
| | | */ |
| | | public function getCache(); |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | |
| | | /** |
| | | * Database caching wrapper |
| | | * |
| | | * This class inhabits functionality to get and set cache via a database. |
| | | * |
| | | * Needed SQL: |
| | | * |
| | | |
| | | #create the database |
| | | |
| | | CREATE DATABASE IF NOT EXISTS `phpids` DEFAULT CHARACTER |
| | | SET utf8 COLLATE utf8_general_ci; |
| | | DROP TABLE IF EXISTS `cache`; |
| | | |
| | | #now select the created datbase and create the table |
| | | |
| | | CREATE TABLE `cache` ( |
| | | `type` VARCHAR( 32 ) NOT null , |
| | | `data` TEXT NOT null , |
| | | `created` DATETIME NOT null , |
| | | `modified` DATETIME NOT null |
| | | ) ENGINE = MYISAM ; |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Groupup |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class DatabaseCache implements CacheInterface |
| | | { |
| | | |
| | | /** |
| | | * Caching type |
| | | * |
| | | * @var string |
| | | */ |
| | | private $type = null; |
| | | |
| | | /** |
| | | * Cache configuration |
| | | * |
| | | * @var array |
| | | */ |
| | | private $config = null; |
| | | |
| | | /** |
| | | * DBH |
| | | * |
| | | * @var object |
| | | */ |
| | | private $handle = null; |
| | | |
| | | /** |
| | | * Holds an instance of this class |
| | | * |
| | | * @var object |
| | | */ |
| | | private static $cachingInstance = null; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * Connects to database. |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($type, $init) |
| | | { |
| | | $this->type = $type; |
| | | $this->config = $init->config['Caching']; |
| | | $this->handle = $this->connect(); |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class |
| | | * |
| | | * @static |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public static function getInstance($type, $init) |
| | | { |
| | | |
| | | if (!self::$cachingInstance) { |
| | | self::$cachingInstance = new DatabaseCache($type, $init); |
| | | } |
| | | |
| | | return self::$cachingInstance; |
| | | } |
| | | |
| | | /** |
| | | * Writes cache data into the database |
| | | * |
| | | * @param array $data the caching data |
| | | * |
| | | * @throws PDOException if a db error occurred |
| | | * @return object $this |
| | | */ |
| | | public function setCache(array $data) |
| | | { |
| | | $handle = $this->handle; |
| | | |
| | | $rows = $handle->query('SELECT created FROM `' . $this->config['table'].'`'); |
| | | |
| | | if (!$rows || $rows->rowCount() === 0) { |
| | | |
| | | $this->write($handle, $data); |
| | | } else { |
| | | |
| | | foreach ($rows as $row) { |
| | | |
| | | if ((time()-strtotime($row['created'])) > |
| | | $this->config['expiration_time']) { |
| | | |
| | | $this->write($handle, $data); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the cached data |
| | | * |
| | | * Note that this method returns false if either type or file cache is |
| | | * not set |
| | | * |
| | | * @throws PDOException if a db error occurred |
| | | * @return mixed cache data or false |
| | | */ |
| | | public function getCache() |
| | | { |
| | | try { |
| | | $handle = $this->handle; |
| | | $result = $handle->prepare( |
| | | 'SELECT * FROM `' . |
| | | $this->config['table'] . |
| | | '` where type=?' |
| | | ); |
| | | $result->execute(array($this->type)); |
| | | |
| | | foreach ($result as $row) { |
| | | return unserialize($row['data']); |
| | | } |
| | | |
| | | } catch (\PDOException $e) { |
| | | throw new \PDOException('PDOException: ' . $e->getMessage()); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * Connect to database and return a handle |
| | | * |
| | | * @return object PDO |
| | | * @throws Exception if connection parameters are faulty |
| | | * @throws PDOException if a db error occurred |
| | | */ |
| | | private function connect() |
| | | { |
| | | // validate connection parameters |
| | | if (!$this->config['wrapper'] |
| | | || !$this->config['user'] |
| | | || !$this->config['password'] |
| | | || !$this->config['table']) { |
| | | |
| | | throw new \Exception('Insufficient connection parameters'); |
| | | } |
| | | |
| | | // try to connect |
| | | try { |
| | | $handle = new \PDO( |
| | | $this->config['wrapper'], |
| | | $this->config['user'], |
| | | $this->config['password'] |
| | | ); |
| | | $handle->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); |
| | | |
| | | } catch (\PDOException $e) { |
| | | throw new \PDOException('PDOException: ' . $e->getMessage()); |
| | | } |
| | | |
| | | return $handle; |
| | | } |
| | | |
| | | /** |
| | | * Write the cache data to the table |
| | | * |
| | | * @param object $handle the database handle |
| | | * @param array $data the caching data |
| | | * |
| | | * @return object PDO |
| | | * @throws PDOException if a db error occurred |
| | | */ |
| | | private function write($handle, $data) |
| | | { |
| | | try { |
| | | $handle->query('TRUNCATE ' . $this->config['table'].''); |
| | | $statement = $handle->prepare( |
| | | 'INSERT INTO `' . |
| | | $this->config['table'].'` ( |
| | | type, |
| | | data, |
| | | created, |
| | | modified |
| | | ) |
| | | VALUES ( |
| | | :type, |
| | | :data, |
| | | now(), |
| | | now() |
| | | )' |
| | | ); |
| | | |
| | | $statement->bindValue( |
| | | 'type', |
| | | $handle->quote($this->type) |
| | | ); |
| | | $statement->bindValue('data', serialize($data)); |
| | | |
| | | if (!$statement->execute()) { |
| | | throw new \PDOException($statement->errorCode()); |
| | | } |
| | | } catch (\PDOException $e) { |
| | | throw new \PDOException('PDOException: ' . $e->getMessage()); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Caching; |
| | | |
| | | use IDS\Init; |
| | | |
| | | /** |
| | | * File caching wrapper |
| | | * |
| | | * This class inhabits functionality to get and set cache via a static flatfile. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class FileCache implements CacheInterface |
| | | { |
| | | /** |
| | | * Caching type |
| | | * |
| | | * @var string |
| | | */ |
| | | private $type; |
| | | |
| | | /** |
| | | * Cache configuration |
| | | * |
| | | * @var array |
| | | */ |
| | | private $config; |
| | | |
| | | /** |
| | | * Path to cache file |
| | | * |
| | | * @var string |
| | | */ |
| | | private $path; |
| | | |
| | | /** |
| | | * Holds an instance of this class |
| | | * |
| | | * @var object |
| | | */ |
| | | private static $cachingInstance; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * @throws \Exception |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($type, Init $init) |
| | | { |
| | | $this->type = $type; |
| | | $this->config = $init->config['Caching']; |
| | | $this->path = $init->getBasePath() . $this->config['path']; |
| | | |
| | | if (file_exists($this->path) && !is_writable($this->path)) { |
| | | throw new \Exception( |
| | | 'Make sure all files in ' . |
| | | htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . |
| | | 'are writeable!' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public static function getInstance($type, $init) |
| | | { |
| | | if (!self::$cachingInstance) { |
| | | self::$cachingInstance = new FileCache($type, $init); |
| | | } |
| | | |
| | | return self::$cachingInstance; |
| | | } |
| | | |
| | | /** |
| | | * Writes cache data into the file |
| | | * |
| | | * @param array $data the cache data |
| | | * |
| | | * @throws Exception if cache file couldn't be created |
| | | * @return object $this |
| | | */ |
| | | public function setCache(array $data) |
| | | { |
| | | if (!is_writable(preg_replace('/[\/][^\/]+\.[^\/]++$/', null, $this->path))) { |
| | | throw new \Exception( |
| | | 'Temp directory ' . |
| | | htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . |
| | | ' seems not writable' |
| | | ); |
| | | } |
| | | |
| | | if (!$this->isValidFile($this->path)) { |
| | | $handle = @fopen($this->path, 'w+'); |
| | | |
| | | if (!$handle) { |
| | | throw new \Exception("Cache file couldn't be created"); |
| | | } |
| | | |
| | | $serialized = @serialize($data); |
| | | if (!$serialized) { |
| | | throw new \Exception("Cache data couldn't be serialized"); |
| | | } |
| | | |
| | | fwrite($handle, $serialized); |
| | | fclose($handle); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the cached data |
| | | * |
| | | * Note that this method returns false if either type or file cache is |
| | | * not set |
| | | * |
| | | * @return mixed cache data or false |
| | | */ |
| | | public function getCache() |
| | | { |
| | | // make sure filters are parsed again if cache expired |
| | | if (!$this->isValidFile($this->path)) { |
| | | return false; |
| | | } |
| | | |
| | | $data = unserialize(file_get_contents($this->path)); |
| | | |
| | | return $data; |
| | | } |
| | | |
| | | /** |
| | | * Returns true if the cache file is still valid |
| | | * |
| | | * @param string $file |
| | | * @return bool |
| | | */ |
| | | private function isValidFile($file) |
| | | { |
| | | return file_exists($file) && time() - filectime($file) <= $this->config['expiration_time']; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * File caching wrapper |
| | | * |
| | | * This class inhabits functionality to get and set cache via memcached. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Groupoup |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class MemcachedCache implements CacheInterface |
| | | { |
| | | /** |
| | | * Caching type |
| | | * |
| | | * @var string |
| | | */ |
| | | private $type = null; |
| | | |
| | | /** |
| | | * Cache configuration |
| | | * |
| | | * @var array |
| | | */ |
| | | private $config = null; |
| | | |
| | | /** |
| | | * Flag if the filter storage has been found in memcached |
| | | * |
| | | * @var boolean |
| | | */ |
| | | private $isCached = false; |
| | | |
| | | /** |
| | | * Memcache object |
| | | * |
| | | * @var object |
| | | */ |
| | | private $memcache = null; |
| | | |
| | | /** |
| | | * Holds an instance of this class |
| | | * |
| | | * @var object |
| | | */ |
| | | private static $cachingInstance = null; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param string $type caching type |
| | | * @param array $init the IDS_Init object |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($type, $init) |
| | | { |
| | | |
| | | $this->type = $type; |
| | | $this->config = $init->config['Caching']; |
| | | |
| | | $this->connect(); |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public static function getInstance($type, $init) |
| | | { |
| | | if (!self::$cachingInstance) { |
| | | self::$cachingInstance = new MemcachedCache($type, $init); |
| | | } |
| | | |
| | | return self::$cachingInstance; |
| | | } |
| | | |
| | | /** |
| | | * Writes cache data |
| | | * |
| | | * @param array $data the caching data |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public function setCache(array $data) |
| | | { |
| | | if (!$this->isCached) { |
| | | $this->memcache->set( |
| | | $this->config['key_prefix'] . '.storage', |
| | | $data, |
| | | false, |
| | | $this->config['expiration_time'] |
| | | ); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the cached data |
| | | * |
| | | * Note that this method returns false if either type or file cache is |
| | | * not set |
| | | * |
| | | * @return mixed cache data or false |
| | | */ |
| | | public function getCache() |
| | | { |
| | | $data = $this->memcache->get( |
| | | $this->config['key_prefix'] . |
| | | '.storage' |
| | | ); |
| | | $this->isCached = !empty($data); |
| | | |
| | | return $data; |
| | | } |
| | | |
| | | /** |
| | | * Connect to the memcached server |
| | | * |
| | | * @throws Exception if connection parameters are insufficient |
| | | * @return void |
| | | */ |
| | | private function connect() |
| | | { |
| | | |
| | | if ($this->config['host'] && $this->config['port']) { |
| | | // establish the memcache connection |
| | | $this->memcache = new \Memcache; |
| | | $this->memcache->pconnect( |
| | | $this->config['host'], |
| | | $this->config['port'] |
| | | ); |
| | | |
| | | } else { |
| | | throw new \Exception('Insufficient connection parameters'); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | |
| | | namespace IDS\Caching; |
| | | |
| | | /** |
| | | * File caching wrapper |
| | | * |
| | | * This class inhabits functionality to get and set cache via session. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class SessionCache implements CacheInterface |
| | | { |
| | | /** |
| | | * Caching type |
| | | * |
| | | * @var string |
| | | */ |
| | | private $type = null; |
| | | |
| | | /** |
| | | * Cache configuration |
| | | * |
| | | * @var array |
| | | */ |
| | | private $config = null; |
| | | |
| | | /** |
| | | * Holds an instance of this class |
| | | * |
| | | * @var object |
| | | */ |
| | | private static $cachingInstance = null; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($type, $init) |
| | | { |
| | | $this->type = $type; |
| | | $this->config = $init->config['Caching']; |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class |
| | | * |
| | | * @param string $type caching type |
| | | * @param object $init the IDS_Init object |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public static function getInstance($type, $init) |
| | | { |
| | | |
| | | if (!self::$cachingInstance) { |
| | | self::$cachingInstance = new SessionCache($type, $init); |
| | | } |
| | | |
| | | return self::$cachingInstance; |
| | | } |
| | | |
| | | /** |
| | | * Writes cache data into the session |
| | | * |
| | | * @param array $data the caching data |
| | | * |
| | | * @return object $this |
| | | */ |
| | | public function setCache(array $data) |
| | | { |
| | | |
| | | $_SESSION['PHPIDS'][$this->type] = $data; |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns the cached data |
| | | * |
| | | * Note that this method returns false if either type or file cache is not set |
| | | * |
| | | * @return mixed cache data or false |
| | | */ |
| | | public function getCache() |
| | | { |
| | | |
| | | if ($this->type && $_SESSION['PHPIDS'][$this->type]) { |
| | | return $_SESSION['PHPIDS'][$this->type]; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | } |
| New file |
| | |
| | | ; <?php die(); ?> |
| | | |
| | | ; PHPIDS Config.ini |
| | | |
| | | ; General configuration settings |
| | | |
| | | [General] |
| | | |
| | | ; basic settings - customize to make the PHPIDS work at all |
| | | filter_type = xml |
| | | |
| | | base_path = /full/path/to/IDS/ |
| | | use_base_path = false |
| | | |
| | | filter_path = default_filter.xml |
| | | tmp_path = tmp |
| | | scan_keys = false |
| | | |
| | | ; in case you want to use a different HTMLPurifier source, specify it here |
| | | ; By default, those files are used that are being shipped with PHPIDS |
| | | HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer |
| | | |
| | | ; define which fields contain html and need preparation before |
| | | ; hitting the PHPIDS rules (new in PHPIDS 0.5) |
| | | ;html[] = POST.__wysiwyg |
| | | |
| | | ; define which fields contain JSON data and should be treated as such |
| | | ; for fewer false positives (new in PHPIDS 0.5.3) |
| | | ;json[] = POST.__jsondata |
| | | |
| | | ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b) |
| | | exceptions[] = GET.__utmz |
| | | exceptions[] = GET.__utmc |
| | | exceptions[] = POST.maildir_path |
| | | |
| | | ; you can use regular expressions for wildcard exceptions - example: /.*foo/i |
| | | |
| | | [Caching] |
| | | |
| | | ; caching: session|file|database|memcached|apc|none |
| | | caching = file |
| | | expiration_time = 600 |
| | | |
| | | ; file cache |
| | | path = tmp/default_filter.cache |
| | | |
| | | ; database cache |
| | | wrapper = "mysql:host=localhost;port=3306;dbname=phpids" |
| | | user = phpids_user |
| | | password = 123456 |
| | | table = cache |
| | | |
| | | ; memcached |
| | | ;host = localhost |
| | | ;port = 11211 |
| | | ;key_prefix = PHPIDS |
| | | |
| | | ; apc |
| | | ;key_prefix = PHPIDS |
| New file |
| | |
| | | ; <?php die(); ?> |
| | | |
| | | ; PHPIDS Config.ini |
| | | |
| | | ; General configuration settings |
| | | |
| | | [General] |
| | | |
| | | ; basic settings - customize to make the PHPIDS work at all |
| | | filter_type = xml |
| | | |
| | | base_path = /full/path/to/IDS/ |
| | | use_base_path = false |
| | | |
| | | filter_path = default_filter.xml |
| | | tmp_path = tmp |
| | | scan_keys = false |
| | | |
| | | ; in case you want to use a different HTMLPurifier source, specify it here |
| | | ; By default, those files are used that are being shipped with PHPIDS |
| | | HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer |
| | | |
| | | ; define which fields contain html and need preparation before |
| | | ; hitting the PHPIDS rules (new in PHPIDS 0.5) |
| | | ;html[] = POST.__wysiwyg |
| | | ;html[] = POST.records |
| | | ;html[] = REQUEST.records |
| | | |
| | | ; define which fields contain JSON data and should be treated as such |
| | | ; for fewer false positives (new in PHPIDS 0.5.3) |
| | | ;json[] = POST.__jsondata |
| | | |
| | | ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b) |
| | | ; exceptions[] = GET.__utmz |
| | | ; exceptions[] = GET.__utmc |
| | | ; exceptions[] = POST.maildir_path |
| | | ; exceptions[] = REQUEST.maildir_path |
| | | ; exceptions[] = REQUEST.website_path |
| | | ; exceptions[] = REQUEST.website_symlinks |
| | | ; exceptions[] = REQUEST.vhost_conf_dir |
| | | ; exceptions[] = REQUEST.vhost_conf_enabled_dir |
| | | ; exceptions[] = REQUEST.nginx_vhost_conf_dir |
| | | ; exceptions[] = REQUEST.nginx_vhost_conf_enabled_dir |
| | | ; exceptions[] = REQUEST.php_open_basedir |
| | | ; exceptions[] = REQUEST.awstats_pl |
| | | ; exceptions[] = POST.website_path |
| | | ; exceptions[] = POST.website_symlinks |
| | | ; exceptions[] = POST.vhost_conf_dir |
| | | ; exceptions[] = POST.vhost_conf_enabled_dir |
| | | ; exceptions[] = POST.nginx_vhost_conf_dir |
| | | ; exceptions[] = POST.nginx_vhost_conf_enabled_dir |
| | | ; exceptions[] = POST.php_open_basedir |
| | | ; exceptions[] = POST.awstats_pl |
| | | ; exceptions[] = REQUEST.fastcgi_starter_path |
| | | ; exceptions[] = REQUEST.fastcgi_bin |
| | | ; exceptions[] = POST.fastcgi_starter_path |
| | | ; exceptions[] = POST.fastcgi_bin |
| | | ; exceptions[] = REQUEST.jailkit_chroot_home |
| | | ; exceptions[] = POST.jailkit_chroot_home |
| | | ; exceptions[] = REQUEST.phpmyadmin_url |
| | | ; exceptions[] = REQUEST.phpmyadmin_url |
| | | ; exceptions[] = REQUEST.records.weak_password_txt |
| | | ; exceptions[] = POST.records.weak_password_txt |
| | | |
| | | |
| | | |
| | | ; you can use regular expressions for wildcard exceptions - example: /.*foo/i |
| | | |
| | | [Caching] |
| | | |
| | | ; caching: session|file|database|memcached|apc|none |
| | | caching = file |
| | | expiration_time = 600 |
| | | |
| | | ; file cache |
| | | path = tmp/default_filter.cache |
| | | |
| | | ; database cache |
| | | wrapper = "mysql:host=localhost;port=3306;dbname=phpids" |
| | | user = phpids_user |
| | | password = 123456 |
| | | table = cache |
| | | |
| | | ; memcached |
| | | ;host = localhost |
| | | ;port = 11211 |
| | | ;key_prefix = PHPIDS |
| | | |
| | | ; apc |
| | | ;key_prefix = PHPIDS |
| | | |
| New file |
| | |
| | | <?php |
| | | |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | |
| | | /** |
| | | * PHPIDS specific utility class to convert charsets manually |
| | | * |
| | | * Note that if you make use of IDS_Converter::runAll(), existing class |
| | | * methods will be executed in the same order as they are implemented in the |
| | | * class tree! |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | |
| | | namespace IDS; |
| | | |
| | | class Converter |
| | | { |
| | | /** |
| | | * Runs all converter functions |
| | | * |
| | | * Note that if you make use of IDS_Converter::runAll(), existing class |
| | | * methods will be executed in the same order as they are implemented in the |
| | | * class tree! |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function runAll($value) |
| | | { |
| | | foreach (get_class_methods(__CLASS__) as $method) { |
| | | if (strpos($method, 'run') !== 0) { |
| | | $value = self::$method($value); |
| | | } |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Check for comments and erases them if available |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromCommented($value) |
| | | { |
| | | // check for existing comments |
| | | if (preg_match('/(?:\<!-|-->|\/\*|\*\/|\/\/\W*\w+\s*$)|(?:--[^-]*-)/ms', $value)) { |
| | | |
| | | $pattern = array( |
| | | '/(?:(?:<!)(?:(?:--(?:[^-]*(?:-[^-]+)*)--\s*)*)(?:>))/ms', |
| | | '/(?:(?:\/\*\/*[^\/\*]*)+\*\/)/ms', |
| | | '/(?:--[^-]*-)/ms' |
| | | ); |
| | | |
| | | $converted = preg_replace($pattern, ';', $value); |
| | | $value .= "\n" . $converted; |
| | | } |
| | | |
| | | //make sure inline comments are detected and converted correctly |
| | | $value = preg_replace('/(<\w+)\/+(\w+=?)/m', '$1/$2', $value); |
| | | $value = preg_replace('/[^\\\:]\/\/(.*)$/m', '/**/$1', $value); |
| | | $value = preg_replace('/([^\-&])#.*[\r\n\v\f]/m', '$1', $value); |
| | | $value = preg_replace('/([^&\-])#.*\n/m', '$1 ', $value); |
| | | $value = preg_replace('/^#.*\n/m', ' ', $value); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Strip newlines |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromWhiteSpace($value) |
| | | { |
| | | //check for inline linebreaks |
| | | $search = array('\r', '\n', '\f', '\t', '\v'); |
| | | $value = str_replace($search, ';', $value); |
| | | |
| | | // replace replacement characters regular spaces |
| | | $value = str_replace('�', ' ', $value); |
| | | |
| | | //convert real linebreaks |
| | | return preg_replace('/(?:\n|\r|\v)/m', ' ', $value); |
| | | } |
| | | |
| | | /** |
| | | * Checks for common charcode pattern and decodes them |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromJSCharcode($value) |
| | | { |
| | | $matches = array(); |
| | | |
| | | // check if value matches typical charCode pattern |
| | | if (preg_match_all('/(?:[\d+-=\/\* ]+(?:\s?,\s?[\d+-=\/\* ]+)){4,}/ms', $value, $matches)) { |
| | | $converted = ''; |
| | | $string = implode(',', $matches[0]); |
| | | $string = preg_replace('/\s/', '', $string); |
| | | $string = preg_replace('/\w+=/', '', $string); |
| | | $charcode = explode(',', $string); |
| | | |
| | | foreach ($charcode as $char) { |
| | | $char = preg_replace('/\W0/s', '', $char); |
| | | |
| | | if (preg_match_all('/\d*[+-\/\* ]\d+/', $char, $matches)) { |
| | | $match = preg_split('/(\W?\d+)/', implode('', $matches[0]), null, PREG_SPLIT_DELIM_CAPTURE); |
| | | |
| | | if (array_sum($match) >= 20 && array_sum($match) <= 127) { |
| | | $converted .= chr(array_sum($match)); |
| | | } |
| | | |
| | | } elseif (!empty($char) && $char >= 20 && $char <= 127) { |
| | | $converted .= chr($char); |
| | | } |
| | | } |
| | | |
| | | $value .= "\n" . $converted; |
| | | } |
| | | |
| | | // check for octal charcode pattern |
| | | if (preg_match_all('/(?:(?:[\\\]+\d+[ \t]*){8,})/ims', $value, $matches)) { |
| | | $converted = ''; |
| | | $charcode = explode('\\', preg_replace('/\s/', '', implode(',', $matches[0]))); |
| | | |
| | | foreach (array_map('octdec', array_filter($charcode)) as $char) { |
| | | if (20 <= $char && $char <= 127) { |
| | | $converted .= chr($char); |
| | | } |
| | | } |
| | | $value .= "\n" . $converted; |
| | | } |
| | | |
| | | // check for hexadecimal charcode pattern |
| | | if (preg_match_all('/(?:(?:[\\\]+\w+\s*){8,})/ims', $value, $matches)) { |
| | | $converted = ''; |
| | | $charcode = explode('\\', preg_replace('/[ux]/', '', implode(',', $matches[0]))); |
| | | |
| | | foreach (array_map('hexdec', array_filter($charcode)) as $char) { |
| | | if (20 <= $char && $char <= 127) { |
| | | $converted .= chr($char); |
| | | } |
| | | } |
| | | $value .= "\n" . $converted; |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Eliminate JS regex modifiers |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertJSRegexModifiers($value) |
| | | { |
| | | return preg_replace('/\/[gim]+/', '/', $value); |
| | | } |
| | | |
| | | /** |
| | | * Converts from hex/dec entities |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertEntities($value) |
| | | { |
| | | $converted = null; |
| | | |
| | | //deal with double encoded payload |
| | | $value = preg_replace('/&/', '&', $value); |
| | | |
| | | if (preg_match('/&#x?[\w]+/ms', $value)) { |
| | | $converted = preg_replace('/(&#x?[\w]{2}\d?);?/ms', '$1;', $value); |
| | | $converted = html_entity_decode($converted, ENT_QUOTES, 'UTF-8'); |
| | | $value .= "\n" . str_replace(';;', ';', $converted); |
| | | } |
| | | |
| | | // normalize obfuscated protocol handlers |
| | | $value = preg_replace( |
| | | '/(?:j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:)|(d\s*a\s*t\s*a\s*:)/ms', |
| | | 'javascript:', |
| | | $value |
| | | ); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Normalize quotes |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertQuotes($value) |
| | | { |
| | | // normalize different quotes to " |
| | | $pattern = array('\'', '`', '´', '’', '‘'); |
| | | $value = str_replace($pattern, '"', $value); |
| | | |
| | | //make sure harmless quoted strings don't generate false alerts |
| | | $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Converts SQLHEX to plain text |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromSQLHex($value) |
| | | { |
| | | $matches = array(); |
| | | if (preg_match_all('/(?:(?:\A|[^\d])0x[a-f\d]{3,}[a-f\d]*)+/im', $value, $matches)) { |
| | | foreach ($matches[0] as $match) { |
| | | $converted = ''; |
| | | foreach (str_split($match, 2) as $hex_index) { |
| | | if (preg_match('/[a-f\d]{2,3}/i', $hex_index)) { |
| | | $converted .= chr(hexdec($hex_index)); |
| | | } |
| | | } |
| | | $value = str_replace($match, $converted, $value); |
| | | } |
| | | } |
| | | // take care of hex encoded ctrl chars |
| | | $value = preg_replace('/0x\d+/m', ' 1 ', $value); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Converts basic SQL keywords and obfuscations |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromSQLKeywords($value) |
| | | { |
| | | $pattern = array( |
| | | '/(?:is\s+null)|(like\s+null)|' . |
| | | '(?:(?:^|\W)in[+\s]*\([\s\d"]+[^()]*\))/ims' |
| | | ); |
| | | $value = preg_replace($pattern, '"=0', $value); |
| | | |
| | | $value = preg_replace('/[^\w\)]+\s*like\s*[^\w\s]+/ims', '1" OR "1"', $value); |
| | | $value = preg_replace('/null([,"\s])/ims', '0$1', $value); |
| | | $value = preg_replace('/\d+\./ims', ' 1', $value); |
| | | $value = preg_replace('/,null/ims', ',0', $value); |
| | | $value = preg_replace('/(?:between)/ims', 'or', $value); |
| | | $value = preg_replace('/(?:and\s+\d+\.?\d*)/ims', '', $value); |
| | | $value = preg_replace('/(?:\s+and\s+)/ims', ' or ', $value); |
| | | |
| | | $pattern = array( |
| | | '/(?:not\s+between)|(?:is\s+not)|(?:not\s+in)|' . |
| | | '(?:xor|<>|rlike(?:\s+binary)?)|' . |
| | | '(?:regexp\s+binary)|' . |
| | | '(?:sounds\s+like)/ims' |
| | | ); |
| | | $value = preg_replace($pattern, '!', $value); |
| | | $value = preg_replace('/"\s+\d/', '"', $value); |
| | | $value = preg_replace('/(\W)div(\W)/ims', '$1 OR $2', $value); |
| | | $value = preg_replace('/\/(?:\d+|null)/', null, $value); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Detects nullbytes and controls chars via ord() |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromControlChars($value) |
| | | { |
| | | // critical ctrl values |
| | | $search = array( |
| | | chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), |
| | | chr(6), chr(7), chr(8), chr(11), chr(12), chr(14), |
| | | chr(15), chr(16), chr(17), chr(18), chr(19), chr(24), |
| | | chr(25), chr(192), chr(193), chr(238), chr(255), '\\0' |
| | | ); |
| | | |
| | | $value = str_replace($search, '%00', $value); |
| | | |
| | | //take care for malicious unicode characters |
| | | $value = urldecode( |
| | | preg_replace( |
| | | '/(?:%E(?:2|3)%8(?:0|1)%(?:A|8|9)\w|%EF%BB%BF|%EF%BF%BD)|(?:&#(?:65|8)\d{3};?)/i', |
| | | null, |
| | | urlencode($value) |
| | | ) |
| | | ); |
| | | $value = urlencode($value); |
| | | $value = preg_replace('/(?:%F0%80%BE)/i', '>', $value); |
| | | $value = preg_replace('/(?:%F0%80%BC)/i', '<', $value); |
| | | $value = preg_replace('/(?:%F0%80%A2)/i', '"', $value); |
| | | $value = preg_replace('/(?:%F0%80%A7)/i', '\'', $value); |
| | | $value = urldecode($value); |
| | | |
| | | $value = preg_replace('/(?:%ff1c)/', '<', $value); |
| | | $value = preg_replace('/(?:&[#x]*(200|820|200|820|zwn?j|lrm|rlm)\w?;?)/i', null, $value); |
| | | $value = preg_replace( |
| | | '/(?:&#(?:65|8)\d{3};?)|' . |
| | | '(?:&#(?:56|7)3\d{2};?)|' . |
| | | '(?:&#x(?:fe|20)\w{2};?)|' . |
| | | '(?:&#x(?:d[c-f])\w{2};?)/i', |
| | | null, |
| | | $value |
| | | ); |
| | | |
| | | $value = str_replace( |
| | | array( |
| | | '«', |
| | | '〈', |
| | | '<', |
| | | '‹', |
| | | '〈', |
| | | '⟨' |
| | | ), |
| | | '<', |
| | | $value |
| | | ); |
| | | $value = str_replace( |
| | | array( |
| | | '»', |
| | | '〉', |
| | | '>', |
| | | '›', |
| | | '〉', |
| | | '⟩' |
| | | ), |
| | | '>', |
| | | $value |
| | | ); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * This method matches and translates base64 strings and fragments |
| | | * used in data URIs |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromNestedBase64($value) |
| | | { |
| | | $matches = array(); |
| | | preg_match_all('/(?:^|[,&?])\s*([a-z0-9]{50,}=*)(?:\W|$)/im', $value, $matches); |
| | | |
| | | foreach ($matches[1] as $item) { |
| | | if (isset($item) && !preg_match('/[a-f0-9]{32}/i', $item)) { |
| | | $base64_item = base64_decode($item); |
| | | $value = str_replace($item, $base64_item, $value); |
| | | } |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Detects nullbytes and controls chars via ord() |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromOutOfRangeChars($value) |
| | | { |
| | | $values = str_split($value); |
| | | foreach ($values as $item) { |
| | | if (ord($item) >= 127) { |
| | | $value = str_replace($item, ' ', $value); |
| | | } |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Strip XML patterns |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromXML($value) |
| | | { |
| | | $converted = strip_tags($value); |
| | | if (!$converted || $converted === $value) { |
| | | return $value; |
| | | } else { |
| | | return $value . "\n" . $converted; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * This method converts JS unicode code points to |
| | | * regular characters |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromJSUnicode($value) |
| | | { |
| | | $matches = array(); |
| | | preg_match_all('/\\\u[0-9a-f]{4}/ims', $value, $matches); |
| | | |
| | | if (!empty($matches[0])) { |
| | | foreach ($matches[0] as $match) { |
| | | $chr = chr(hexdec(substr($match, 2, 4))); |
| | | $value = str_replace($match, $chr, $value); |
| | | } |
| | | $value .= "\n\u0001"; |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Converts relevant UTF-7 tags to UTF-8 |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromUTF7($value) |
| | | { |
| | | if (preg_match('/\+A\w+-?/m', $value)) { |
| | | if (function_exists('mb_convert_encoding')) { |
| | | if (version_compare(PHP_VERSION, '5.2.8', '<')) { |
| | | $tmp_chars = str_split($value); |
| | | $value = ''; |
| | | foreach ($tmp_chars as $char) { |
| | | if (ord($char) <= 127) { |
| | | $value .= $char; |
| | | } |
| | | } |
| | | } |
| | | $value .= "\n" . mb_convert_encoding($value, 'UTF-8', 'UTF-7'); |
| | | } else { |
| | | //list of all critical UTF7 codepoints |
| | | $schemes = array( |
| | | '+ACI-' => '"', |
| | | '+ADw-' => '<', |
| | | '+AD4-' => '>', |
| | | '+AFs-' => '[', |
| | | '+AF0-' => ']', |
| | | '+AHs-' => '{', |
| | | '+AH0-' => '}', |
| | | '+AFw-' => '\\', |
| | | '+ADs-' => ';', |
| | | '+ACM-' => '#', |
| | | '+ACY-' => '&', |
| | | '+ACU-' => '%', |
| | | '+ACQ-' => '$', |
| | | '+AD0-' => '=', |
| | | '+AGA-' => '`', |
| | | '+ALQ-' => '"', |
| | | '+IBg-' => '"', |
| | | '+IBk-' => '"', |
| | | '+AHw-' => '|', |
| | | '+ACo-' => '*', |
| | | '+AF4-' => '^', |
| | | '+ACIAPg-' => '">', |
| | | '+ACIAPgA8-' => '">' |
| | | ); |
| | | |
| | | $value = str_ireplace( |
| | | array_keys($schemes), |
| | | array_values($schemes), |
| | | $value |
| | | ); |
| | | } |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * Converts basic concatenations |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromConcatenated($value) |
| | | { |
| | | //normalize remaining backslashes |
| | | if ($value != preg_replace('/(\w)\\\/', "$1", $value)) { |
| | | $value .= preg_replace('/(\w)\\\/', "$1", $value); |
| | | } |
| | | |
| | | $compare = stripslashes($value); |
| | | |
| | | $pattern = array( |
| | | '/(?:<\/\w+>\+<\w+>)/s', |
| | | '/(?:":\d+[^"[]+")/s', |
| | | '/(?:"?"\+\w+\+")/s', |
| | | '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s', |
| | | '/(?:"\s*(?:;|\+).{8,18}:\s*")/s', |
| | | '/(?:";\w+=)|(?:!""&&")|(?:~)/s', |
| | | '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s', |
| | | '/(?:"\s*\W+")/s', |
| | | '/(?:";\w\s*\+=\s*\w?\s*")/s', |
| | | '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s', |
| | | '/(?:";\s*\w+\W+\w*\s*[|&]*")/s', |
| | | '/(?:"\s*"\s*\.)/s', |
| | | '/(?:\s*new\s+\w+\s*[+",])/', |
| | | '/(?:(?:^|\s+)(?:do|else)\s+)/', |
| | | '/(?:[{(]\s*new\s+\w+\s*[)}])/', |
| | | '/(?:(this|self)\.)/', |
| | | '/(?:undefined)/', |
| | | '/(?:in\s+)/' |
| | | ); |
| | | |
| | | // strip out concatenations |
| | | $converted = preg_replace($pattern, null, $compare); |
| | | |
| | | //strip object traversal |
| | | $converted = preg_replace('/\w(\.\w\()/', "$1", $converted); |
| | | |
| | | // normalize obfuscated method calls |
| | | $converted = preg_replace('/\)\s*\+/', ")", $converted); |
| | | |
| | | //convert JS special numbers |
| | | $converted = preg_replace( |
| | | '/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims', |
| | | 1, |
| | | $converted |
| | | ); |
| | | |
| | | if ($converted && ($compare != $converted)) { |
| | | $value .= "\n" . $converted; |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * This method collects and decodes proprietary encoding types |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromProprietaryEncodings($value) |
| | | { |
| | | //Xajax error reportings |
| | | $value = preg_replace('/<!\[CDATA\[(\W+)\]\]>/im', '$1', $value); |
| | | |
| | | //strip false alert triggering apostrophes |
| | | $value = preg_replace('/(\w)\"(s)/m', '$1$2', $value); |
| | | |
| | | //strip quotes within typical search patterns |
| | | $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); |
| | | |
| | | //OpenID login tokens |
| | | $value = preg_replace('/{[\w-]{8,9}\}(?:\{[\w=]{8}\}){2}/', null, $value); |
| | | |
| | | //convert Content and \sdo\s to null |
| | | $value = preg_replace('/Content|\Wdo\s/', null, $value); |
| | | |
| | | //strip emoticons |
| | | $value = preg_replace( |
| | | '/(?:\s[:;]-[)\/PD]+)|(?:\s;[)PD]+)|(?:\s:[)PD]+)|-\.-|\^\^/m', |
| | | null, |
| | | $value |
| | | ); |
| | | |
| | | //normalize separation char repetion |
| | | $value = preg_replace('/([.+~=*_\-;])\1{2,}/m', '$1', $value); |
| | | |
| | | //normalize multiple single quotes |
| | | $value = preg_replace('/"{2,}/m', '"', $value); |
| | | |
| | | //normalize quoted numerical values and asterisks |
| | | $value = preg_replace('/"(\d+)"/m', '$1', $value); |
| | | |
| | | //normalize pipe separated request parameters |
| | | $value = preg_replace('/\|(\w+=\w+)/m', '&$1', $value); |
| | | |
| | | //normalize ampersand listings |
| | | $value = preg_replace('/(\w\s)&\s(\w)/', '$1$2', $value); |
| | | |
| | | //normalize escaped RegExp modifiers |
| | | $value = preg_replace('/\/\\\(\w)/', '/$1', $value); |
| | | |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * This method removes encoded sql # comments |
| | | * |
| | | * @param string $value the value to convert |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function convertFromUrlencodeSqlComment($value) |
| | | { |
| | | if (preg_match_all('/(?:\%23.*?\%0a)/im',$value,$matches)){ |
| | | $converted = $value; |
| | | foreach($matches[0] as $match){ |
| | | $converted = str_replace($match,' ',$converted); |
| | | } |
| | | $value .= "\n" . $converted; |
| | | } |
| | | return $value; |
| | | } |
| | | |
| | | /** |
| | | * This method is the centrifuge prototype |
| | | * |
| | | * @param string $value the value to convert |
| | | * @param Monitor $monitor the monitor object |
| | | * |
| | | * @static |
| | | * @return string |
| | | */ |
| | | public static function runCentrifuge($value, Monitor $monitor = null) |
| | | { |
| | | $threshold = 3.49; |
| | | if (strlen($value) > 25) { |
| | | //strip padding |
| | | $tmp_value = preg_replace('/\s{4}|==$/m', null, $value); |
| | | $tmp_value = preg_replace( |
| | | '/\s{4}|[\p{L}\d\+\-=,.%()]{8,}/m', |
| | | 'aaa', |
| | | $tmp_value |
| | | ); |
| | | |
| | | // Check for the attack char ratio |
| | | $tmp_value = preg_replace('/([*.!?+-])\1{1,}/m', '$1', $tmp_value); |
| | | $tmp_value = preg_replace('/"[\p{L}\d\s]+"/m', null, $tmp_value); |
| | | |
| | | $stripped_length = strlen( |
| | | preg_replace( |
| | | '/[\d\s\p{L}\.:,%&\/><\-)!|]+/m', |
| | | null, |
| | | $tmp_value |
| | | ) |
| | | ); |
| | | $overall_length = strlen( |
| | | preg_replace( |
| | | '/([\d\s\p{L}:,\.]{3,})+/m', |
| | | 'aaa', |
| | | preg_replace('/\s{2,}/m', null, $tmp_value) |
| | | ) |
| | | ); |
| | | |
| | | if ($stripped_length != 0 && $overall_length/$stripped_length <= $threshold) { |
| | | $monitor->centrifuge['ratio'] = $overall_length / $stripped_length; |
| | | $monitor->centrifuge['threshold'] =$threshold; |
| | | |
| | | $value .= "\n$[!!!]"; |
| | | } |
| | | } |
| | | |
| | | if (strlen($value) > 40) { |
| | | // Replace all non-special chars |
| | | $converted = preg_replace('/[\w\s\p{L},.:!]/', null, $value); |
| | | |
| | | // Split string into an array, unify and sort |
| | | $array = str_split($converted); |
| | | $array = array_unique($array); |
| | | asort($array); |
| | | |
| | | // Normalize certain tokens |
| | | $schemes = array( |
| | | '~' => '+', |
| | | '^' => '+', |
| | | '|' => '+', |
| | | '*' => '+', |
| | | '%' => '+', |
| | | '&' => '+', |
| | | '/' => '+' |
| | | ); |
| | | |
| | | $converted = implode($array); |
| | | |
| | | $_keys = array_keys($schemes); |
| | | $_values = array_values($schemes); |
| | | |
| | | $converted = str_replace($_keys, $_values, $converted); |
| | | |
| | | $converted = preg_replace('/[+-]\s*\d+/', '+', $converted); |
| | | $converted = preg_replace('/[()[\]{}]/', '(', $converted); |
| | | $converted = preg_replace('/[!?:=]/', ':', $converted); |
| | | $converted = preg_replace('/[^:(+]/', null, stripslashes($converted)); |
| | | |
| | | // Sort again and implode |
| | | $array = str_split($converted); |
| | | asort($array); |
| | | $converted = implode($array); |
| | | |
| | | if (preg_match('/(?:\({2,}\+{2,}:{2,})|(?:\({2,}\+{2,}:+)|(?:\({3,}\++:{2,})/', $converted)) { |
| | | $monitor->centrifuge['converted'] = $converted; |
| | | |
| | | return $value . "\n" . $converted; |
| | | } |
| | | } |
| | | |
| | | return $value; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | /** |
| | | * PHPIDS event object |
| | | * |
| | | * This class represents a certain event that occured while applying the filters |
| | | * to the supplied data. It aggregates a bunch of IDS_Filter implementations and |
| | | * is a assembled in IDS_Report. |
| | | * |
| | | * Note that this class implements both Countable and IteratorAggregate |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | class Event implements \Countable, \IteratorAggregate |
| | | { |
| | | /** |
| | | * Event name |
| | | * |
| | | * @var string |
| | | */ |
| | | protected $name = null; |
| | | |
| | | /** |
| | | * Value of the event |
| | | * |
| | | * @var mixed |
| | | */ |
| | | protected $value = null; |
| | | |
| | | /** |
| | | * List of filter objects |
| | | * |
| | | * Filter objects in this array are those that matched the events value |
| | | * |
| | | * @var Filter[]|array |
| | | */ |
| | | protected $filters = array(); |
| | | |
| | | /** |
| | | * Calculated impact |
| | | * |
| | | * Total impact of the event |
| | | * |
| | | * @var integer |
| | | */ |
| | | protected $impact = 0; |
| | | |
| | | /** |
| | | * Affecte tags |
| | | * |
| | | * @var string[]|array |
| | | */ |
| | | protected $tags = array(); |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * Fills event properties |
| | | * |
| | | * @param string $name the event name |
| | | * @param mixed $value the event value |
| | | * @param Filter[]|array $filters the corresponding filters |
| | | * |
| | | * @throws \InvalidArgumentException |
| | | * @return \IDS\Event |
| | | */ |
| | | public function __construct($name, $value, array $filters) |
| | | { |
| | | if (!is_scalar($name)) { |
| | | throw new \InvalidArgumentException( |
| | | 'Expected $name to be a scalar,' . gettype($name) . ' given' |
| | | ); |
| | | } |
| | | |
| | | if (!is_scalar($value)) { |
| | | throw new \InvalidArgumentException( |
| | | 'Expected $value to be a scalar,' . gettype($value) . ' given' |
| | | ); |
| | | } |
| | | |
| | | $this->name = $name; |
| | | $this->value = $value; |
| | | |
| | | foreach ($filters as $filter) { |
| | | if (!$filter instanceof Filter) { |
| | | throw new \InvalidArgumentException( |
| | | 'Filter must be derived from IDS_Filter' |
| | | ); |
| | | } |
| | | |
| | | $this->filters[] = $filter; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns event name |
| | | * |
| | | * The name of the event usually is the key of the variable that was |
| | | * considered to be malicious |
| | | * |
| | | * @return string |
| | | */ |
| | | public function getName() |
| | | { |
| | | return $this->name; |
| | | } |
| | | |
| | | /** |
| | | * Returns event value |
| | | * |
| | | * @return mixed |
| | | */ |
| | | public function getValue() |
| | | { |
| | | return $this->value; |
| | | } |
| | | |
| | | /** |
| | | * Returns calculated impact |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function getImpact() |
| | | { |
| | | if (!$this->impact) { |
| | | $this->impact = 0; |
| | | foreach ($this->filters as $filter) { |
| | | $this->impact += $filter->getImpact(); |
| | | } |
| | | } |
| | | |
| | | return $this->impact; |
| | | } |
| | | |
| | | /** |
| | | * Returns affected tags |
| | | * |
| | | * @return string[]|array |
| | | */ |
| | | public function getTags() |
| | | { |
| | | foreach ($this->getFilters() as $filter) { |
| | | $this->tags = array_merge($this->tags, $filter->getTags()); |
| | | } |
| | | |
| | | return $this->tags = array_values(array_unique($this->tags)); |
| | | } |
| | | |
| | | /** |
| | | * Returns list of filter objects |
| | | * |
| | | * @return Filter[]|array |
| | | */ |
| | | public function getFilters() |
| | | { |
| | | return $this->filters; |
| | | } |
| | | |
| | | /** |
| | | * Returns number of filters |
| | | * |
| | | * To implement interface Countable this returns the number of filters |
| | | * appended. |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function count() |
| | | { |
| | | return count($this->getFilters()); |
| | | } |
| | | |
| | | /** |
| | | * IteratorAggregate iterator getter |
| | | * |
| | | * Returns an iterator to iterate over the appended filters. |
| | | * |
| | | * @return \Iterator the filter collection |
| | | */ |
| | | public function getIterator() |
| | | { |
| | | return new \ArrayIterator($this->getFilters()); |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | /** |
| | | * PHPIDS Filter object |
| | | * |
| | | * Each object of this class serves as a container for a specific filter. The |
| | | * object provides methods to get information about this particular filter and |
| | | * also to match an arbitrary string against it. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class Filter |
| | | { |
| | | /** |
| | | * Filter rule |
| | | * |
| | | * @var string |
| | | */ |
| | | protected $rule; |
| | | |
| | | /** |
| | | * List of tags of the filter |
| | | * |
| | | * @var string[]|array |
| | | */ |
| | | protected $tags = array(); |
| | | |
| | | /** |
| | | * Filter impact level |
| | | * |
| | | * @var integer |
| | | */ |
| | | protected $impact = 0; |
| | | |
| | | /** |
| | | * Filter description |
| | | * |
| | | * @var string |
| | | */ |
| | | protected $description = ''; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param integer $id filter id |
| | | * @param string $rule filter rule |
| | | * @param string $description filter description |
| | | * @param string[]|array $tags list of tags |
| | | * @param integer $impact filter impact level |
| | | * |
| | | * @return \IDS\Filter |
| | | */ |
| | | public function __construct($id, $rule, $description, array $tags, $impact) |
| | | { |
| | | $this->id = $id; |
| | | $this->rule = $rule; |
| | | $this->tags = $tags; |
| | | $this->impact = $impact; |
| | | $this->description = $description; |
| | | } |
| | | |
| | | /** |
| | | * Matches a string against current filter |
| | | * |
| | | * Matches given string against the filter rule the specific object of this |
| | | * class represents |
| | | * |
| | | * @param string $input the string input to match |
| | | * |
| | | * @throws \InvalidArgumentException if argument is no string |
| | | * @return boolean |
| | | */ |
| | | public function match($input) |
| | | { |
| | | if (!is_string($input)) { |
| | | throw new \InvalidArgumentException( |
| | | 'Invalid argument. Expected a string, received ' . gettype($input) |
| | | ); |
| | | } |
| | | |
| | | return (bool) preg_match('/' . $this->getRule() . '/ms', strtolower($input)); |
| | | } |
| | | |
| | | /** |
| | | * Returns filter description |
| | | * |
| | | * @return string |
| | | */ |
| | | public function getDescription() |
| | | { |
| | | return $this->description; |
| | | } |
| | | |
| | | /** |
| | | * Return list of affected tags |
| | | * |
| | | * Each filter rule is concerned with a certain kind of attack vectors. |
| | | * This method returns those affected kinds. |
| | | * |
| | | * @return string[]|array |
| | | */ |
| | | public function getTags() |
| | | { |
| | | return $this->tags; |
| | | } |
| | | |
| | | /** |
| | | * Returns filter rule |
| | | * |
| | | * @return string |
| | | */ |
| | | public function getRule() |
| | | { |
| | | return $this->rule; |
| | | } |
| | | |
| | | /** |
| | | * Get filter impact level |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function getImpact() |
| | | { |
| | | return $this->impact; |
| | | } |
| | | |
| | | /** |
| | | * Get filter ID |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function getId() |
| | | { |
| | | return $this->id; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS\Filter; |
| | | |
| | | use IDS\Init; |
| | | use IDS\Caching\CacheFactory; |
| | | |
| | | /** |
| | | * Filter Storage |
| | | * |
| | | * This class provides various default functions for gathering filter patterns |
| | | * to be used later on by the detection mechanism. You might extend this class |
| | | * to your requirements. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | class Storage |
| | | { |
| | | /** |
| | | * Filter source file |
| | | * |
| | | * @var string |
| | | */ |
| | | protected $source = null; |
| | | |
| | | /** |
| | | * Holds caching settings |
| | | * |
| | | * @var array |
| | | */ |
| | | protected $cacheSettings = null; |
| | | |
| | | /** |
| | | * Cache container |
| | | * |
| | | * @var object IDS_Caching wrapper |
| | | */ |
| | | protected $cache = null; |
| | | |
| | | /** |
| | | * Filter container |
| | | * |
| | | * @var array |
| | | */ |
| | | protected $filterSet = array(); |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * Loads filters based on provided IDS_Init settings. |
| | | * |
| | | * @param object $init IDS_Init instance |
| | | * |
| | | * @throws \InvalidArgumentException if unsupported filter type is given |
| | | * @return void |
| | | */ |
| | | final public function __construct(Init $init) |
| | | { |
| | | if ($init->config) { |
| | | |
| | | $caching = isset($init->config['Caching']['caching']) ? $init->config['Caching']['caching'] : 'none'; |
| | | |
| | | $type = $init->config['General']['filter_type']; |
| | | $this->source = $init->getBasePath(). $init->config['General']['filter_path']; |
| | | |
| | | if ($caching && $caching !== 'none') { |
| | | $this->cacheSettings = $init->config['Caching']; |
| | | $this->cache = CacheFactory::factory($init, 'storage'); |
| | | } |
| | | |
| | | switch ($type) { |
| | | case 'xml': |
| | | return $this->getFilterFromXML(); |
| | | case 'json': |
| | | return $this->getFilterFromJson(); |
| | | default: |
| | | throw new \InvalidArgumentException('Unsupported filter type.'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Sets the filter array |
| | | * |
| | | * @param array $filterSet array containing multiple IDS_Filter instances |
| | | * |
| | | * @return object $this |
| | | */ |
| | | final public function setFilterSet($filterSet) |
| | | { |
| | | foreach ($filterSet as $filter) { |
| | | $this->addFilter($filter); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Returns registered filters |
| | | * |
| | | * @return array |
| | | */ |
| | | final public function getFilterSet() |
| | | { |
| | | return $this->filterSet; |
| | | } |
| | | |
| | | /** |
| | | * Adds a filter |
| | | * |
| | | * @param object $filter IDS_Filter instance |
| | | * |
| | | * @return object $this |
| | | */ |
| | | final public function addFilter(\IDS\Filter $filter) |
| | | { |
| | | $this->filterSet[] = $filter; |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Checks if any filters are cached |
| | | * |
| | | * @return mixed $filters cached filters or false |
| | | */ |
| | | private function isCached() |
| | | { |
| | | $filters = false; |
| | | |
| | | if ($this->cacheSettings) { |
| | | if ($this->cache) { |
| | | $filters = $this->cache->getCache(); |
| | | } |
| | | } |
| | | |
| | | return $filters; |
| | | } |
| | | |
| | | /** |
| | | * Loads filters from XML using SimpleXML |
| | | * |
| | | * This function parses the provided source file and stores the result. |
| | | * If caching mode is enabled the result will be cached to increase |
| | | * the performance. |
| | | * |
| | | * @throws \InvalidArgumentException if source file doesn't exist |
| | | * @throws \RuntimeException if problems with fetching the XML data occur |
| | | * @return object $this |
| | | */ |
| | | public function getFilterFromXML() |
| | | { |
| | | if (extension_loaded('SimpleXML')) { |
| | | |
| | | /* |
| | | * See if filters are already available in the cache |
| | | */ |
| | | $filters = $this->isCached(); |
| | | |
| | | /* |
| | | * If they aren't, parse the source file |
| | | */ |
| | | if (!$filters) { |
| | | |
| | | if (!file_exists($this->source)) { |
| | | throw new \InvalidArgumentException( |
| | | sprintf('Invalid config: %s doesn\'t exist.', $this->source) |
| | | ); |
| | | } |
| | | |
| | | if (LIBXML_VERSION >= 20621) { |
| | | $filters = simplexml_load_file($this->source, null, LIBXML_COMPACT); |
| | | } else { |
| | | $filters = simplexml_load_file($this->source); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * In case we still don't have any filters loaded and exception |
| | | * will be thrown |
| | | */ |
| | | if (empty($filters)) { |
| | | throw new \RuntimeException( |
| | | 'XML data could not be loaded.' . |
| | | ' Make sure you specified the correct path.' |
| | | ); |
| | | } |
| | | |
| | | /* |
| | | * Now the storage will be filled with IDS_Filter objects |
| | | */ |
| | | $nocache = $filters instanceof \SimpleXMLElement; |
| | | |
| | | if ($nocache) |
| | | { |
| | | // build filters and cache them for re-use on next run |
| | | $data = array(); |
| | | $filters = $filters->filter; |
| | | |
| | | foreach ($filters as $filter) { |
| | | $id = (string) $filter->id; |
| | | $rule = (string) $filter->rule; |
| | | $impact = (string) $filter->impact; |
| | | $tags = array_values((array) $filter->tags); |
| | | $description = (string) $filter->description; |
| | | |
| | | $this->addFilter( |
| | | new \IDS\Filter( |
| | | $id, |
| | | $rule, |
| | | $description, |
| | | (array) $tags[0], |
| | | (int) $impact |
| | | ) |
| | | ); |
| | | |
| | | $data[] = array( |
| | | 'id' => $id, |
| | | 'rule' => $rule, |
| | | 'impact' => $impact, |
| | | 'tags' => $tags, |
| | | 'description' => $description |
| | | ); |
| | | } |
| | | |
| | | /* |
| | | * If caching is enabled, the fetched data will be cached |
| | | */ |
| | | if ($this->cacheSettings) { |
| | | $this->cache->setCache($data); |
| | | } |
| | | |
| | | } else { |
| | | |
| | | // build filters from cached content |
| | | $this->addFiltersFromArray($filters); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | throw new \RuntimeException('SimpleXML is not loaded.'); |
| | | } |
| | | |
| | | /** |
| | | * Loads filters from Json file using ext/Json |
| | | * |
| | | * This function parses the provided source file and stores the result. |
| | | * If caching mode is enabled the result will be cached to increase |
| | | * the performance. |
| | | * |
| | | * @throws \RuntimeException if problems with fetching the JSON data occur |
| | | * @return object $this |
| | | */ |
| | | public function getFilterFromJson() |
| | | { |
| | | |
| | | if (extension_loaded('Json')) { |
| | | |
| | | /* |
| | | * See if filters are already available in the cache |
| | | */ |
| | | $filters = $this->isCached(); |
| | | |
| | | /* |
| | | * If they aren't, parse the source file |
| | | */ |
| | | if (!$filters) { |
| | | if (!file_exists($this->source)) { |
| | | throw new \InvalidArgumentException( |
| | | sprintf('Invalid config: %s doesn\'t exist.', $this->source) |
| | | ); |
| | | } |
| | | $filters = json_decode(file_get_contents($this->source)); |
| | | } |
| | | |
| | | if (!$filters) { |
| | | throw new \RuntimeException('JSON data could not be loaded. Make sure you specified the correct path.'); |
| | | } |
| | | |
| | | /* |
| | | * Now the storage will be filled with IDS_Filter objects |
| | | */ |
| | | $nocache = !is_array($filters); |
| | | |
| | | if ($nocache) { |
| | | |
| | | // build filters and cache them for re-use on next run |
| | | $data = array(); |
| | | $filters = $filters->filters->filter; |
| | | |
| | | foreach ($filters as $filter) { |
| | | |
| | | $id = (string) $filter->id; |
| | | $rule = (string) $filter->rule; |
| | | $impact = (string) $filter->impact; |
| | | $tags = array_values((array) $filter->tags); |
| | | $description = (string) $filter->description; |
| | | |
| | | $this->addFilter( |
| | | new \IDS\Filter( |
| | | $id, |
| | | $rule, |
| | | $description, |
| | | (array) $tags[0], |
| | | (int) $impact |
| | | ) |
| | | ); |
| | | |
| | | $data[] = array( |
| | | 'id' => $id, |
| | | 'rule' => $rule, |
| | | 'impact' => $impact, |
| | | 'tags' => $tags, |
| | | 'description' => $description |
| | | ); |
| | | } |
| | | |
| | | /* |
| | | * If caching is enabled, the fetched data will be cached |
| | | */ |
| | | if ($this->cacheSettings) { |
| | | $this->cache->setCache($data); |
| | | } |
| | | |
| | | } else { |
| | | |
| | | // build filters from cached content |
| | | $this->addFiltersFromArray($filters); |
| | | } |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | throw new \RuntimeException('json extension is not loaded.'); |
| | | } |
| | | |
| | | /** |
| | | * This functions adds an array of filters to the IDS_Storage object. |
| | | * Each entry within the array is expected to be an simple array containing all parts of the filter. |
| | | * |
| | | * @param array $filters |
| | | */ |
| | | private function addFiltersFromArray(array $filters) |
| | | { |
| | | foreach ($filters as $filter) { |
| | | |
| | | $id = $filter['id']; |
| | | $rule = $filter['rule']; |
| | | $impact = $filter['impact']; |
| | | $tags = $filter['tags']; |
| | | $description = $filter['description']; |
| | | |
| | | $this->addFilter( |
| | | new \IDS\Filter( |
| | | $id, |
| | | $rule, |
| | | $description, |
| | | (array) $tags[0], |
| | | (int) $impact |
| | | ) |
| | | ); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | /** |
| | | * Framework initiation |
| | | * |
| | | * This class is used for the purpose to initiate the framework and inhabits |
| | | * functionality to parse the needed configuration file. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Groupup |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | * @since Version 0.4 |
| | | */ |
| | | class Init |
| | | { |
| | | /** |
| | | * Holds config settings |
| | | * |
| | | * @var array |
| | | */ |
| | | public $config = array(); |
| | | |
| | | /** |
| | | * Instance of this class depending on the supplied config file |
| | | * |
| | | * @var Init[]|array |
| | | * @static |
| | | */ |
| | | private static $instances = array(); |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * Includes needed classes and parses the configuration file |
| | | * |
| | | * @param array $config |
| | | * |
| | | * @return \IDS\Init $this |
| | | */ |
| | | public function __construct(array $config = array()) |
| | | { |
| | | $this->config = $config; |
| | | } |
| | | |
| | | /** |
| | | * Returns an instance of this class. Also a PHP version check |
| | | * is being performed to avoid compatibility problems with PHP < 5.1.6 |
| | | * |
| | | * @param string|null $configPath the path to the config file |
| | | * |
| | | * @throws \InvalidArgumentException |
| | | * @return self |
| | | */ |
| | | public static function init($configPath = null) |
| | | { |
| | | if (!$configPath) { |
| | | return new self(); |
| | | } |
| | | if (!isset(self::$instances[$configPath])) { |
| | | if (!file_exists($configPath) || !is_readable($configPath)) { |
| | | throw new \InvalidArgumentException("Invalid config path '$configPath'"); |
| | | } |
| | | self::$instances[$configPath] = new static(parse_ini_file($configPath, true)); |
| | | } |
| | | |
| | | return self::$instances[$configPath]; |
| | | } |
| | | |
| | | /** |
| | | * This method checks if a base path is given and usage is set to true. |
| | | * If all that tests succeed the base path will be returned as a string - |
| | | * else null will be returned. |
| | | * |
| | | * @return string|null the base path or null |
| | | */ |
| | | public function getBasePath() |
| | | { |
| | | return (!empty($this->config['General']['base_path']) |
| | | && !empty($this->config['General']['use_base_path'])) |
| | | ? $this->config['General']['base_path'] : null; |
| | | } |
| | | |
| | | /** |
| | | * Merges new settings into the exsiting ones or overwrites them |
| | | * |
| | | * @param array $config the config array |
| | | * @param boolean $overwrite config overwrite flag |
| | | * |
| | | * @return void |
| | | */ |
| | | public function setConfig(array $config, $overwrite = false) |
| | | { |
| | | if ($overwrite) { |
| | | $this->config = $this->mergeConfig($this->config, $config); |
| | | } else { |
| | | $this->config = $this->mergeConfig($config, $this->config); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Merge config hashes recursivly |
| | | * |
| | | * The algorithm merges configuration arrays recursively. If an element is |
| | | * an array in both, the values will be appended. If it is a scalar in both, |
| | | * the value will be replaced. |
| | | * |
| | | * @param array $current The legacy hash |
| | | * @param array $successor The hash which values count more when in doubt |
| | | * @return array Merged hash |
| | | */ |
| | | protected function mergeConfig($current, $successor) |
| | | { |
| | | if (is_array($current) and is_array($successor)) { |
| | | foreach ($successor as $key => $value) { |
| | | if (isset($current[$key]) |
| | | and is_array($value) |
| | | and is_array($current[$key])) { |
| | | |
| | | $current[$key] = $this->mergeConfig($current[$key], $value); |
| | | } else { |
| | | $current[$key] = $successor[$key]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return $current; |
| | | } |
| | | |
| | | /** |
| | | * Returns the config array |
| | | * |
| | | * @return array the config array |
| | | */ |
| | | public function getConfig() |
| | | { |
| | | return $this->config; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | use IDS\Filter\Storage; |
| | | |
| | | /** |
| | | * Monitoring engine |
| | | * |
| | | * This class represents the core of the frameworks attack detection mechanism |
| | | * and provides functions to scan incoming data for malicious appearing script |
| | | * fragments. |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | class Monitor |
| | | { |
| | | /** |
| | | * Tags to define what to search for |
| | | * |
| | | * Accepted values are xss, csrf, sqli, dt, id, lfi, rfe, spam, dos |
| | | * |
| | | * @var array |
| | | */ |
| | | private $tags = null; |
| | | |
| | | /** |
| | | * Container for filter rules |
| | | * |
| | | * Holds an instance of Storage |
| | | * |
| | | * @var Storage |
| | | */ |
| | | private $storage = null; |
| | | |
| | | /** |
| | | * Scan keys switch |
| | | * |
| | | * Enabling this property will cause the monitor to scan both the key and |
| | | * the value of variables |
| | | * |
| | | * @var boolean |
| | | */ |
| | | public $scanKeys = false; |
| | | |
| | | /** |
| | | * Exception container |
| | | * |
| | | * Using this array it is possible to define variables that must not be |
| | | * scanned. Per default, utmz google analytics parameters are permitted. |
| | | * |
| | | * @var array |
| | | */ |
| | | private $exceptions = array(); |
| | | |
| | | /** |
| | | * Html container |
| | | * |
| | | * Using this array it is possible to define variables that legally |
| | | * contain html and have to be prepared before hitting the rules to |
| | | * avoid too many false alerts |
| | | * |
| | | * @var array |
| | | */ |
| | | private $html = array(); |
| | | |
| | | /** |
| | | * JSON container |
| | | * |
| | | * Using this array it is possible to define variables that contain |
| | | * JSON data - and should be treated as such |
| | | * |
| | | * @var array |
| | | */ |
| | | private $json = array(); |
| | | |
| | | /** |
| | | * Holds HTMLPurifier object |
| | | * |
| | | * @var \HTMLPurifier |
| | | */ |
| | | private $htmlPurifier = null; |
| | | |
| | | /** |
| | | * HTMLPurifier cache directory |
| | | * |
| | | * @var string |
| | | */ |
| | | private $HTMLPurifierCache = ''; |
| | | |
| | | /** |
| | | * This property holds the tmp JSON string from the _jsonDecodeValues() callback |
| | | * |
| | | * @var string |
| | | */ |
| | | private $tmpJsonString = ''; |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @throws \InvalidArgumentException When PHP version is less than what the library supports |
| | | * @throws \Exception |
| | | * @param Init $init instance of IDS_Init |
| | | * @param array|null $tags list of tags to which filters should be applied |
| | | * @return Monitor |
| | | */ |
| | | public function __construct(Init $init, array $tags = null) |
| | | { |
| | | $this->storage = new Storage($init); |
| | | $this->tags = $tags; |
| | | $this->scanKeys = $init->config['General']['scan_keys']; |
| | | $this->exceptions = isset($init->config['General']['exceptions']) ? $init->config['General']['exceptions'] : array(); |
| | | $this->html = isset($init->config['General']['html']) ? $init->config['General']['html'] : array(); |
| | | $this->json = isset($init->config['General']['json']) ? $init->config['General']['json'] : array(); |
| | | |
| | | if (isset($init->config['General']['HTML_Purifier_Cache'])) { |
| | | $this->HTMLPurifierCache = $init->getBasePath() . $init->config['General']['HTML_Purifier_Cache']; |
| | | } |
| | | |
| | | $tmpPath = $init->getBasePath() . $init->config['General']['tmp_path']; |
| | | |
| | | if (!is_writeable($tmpPath)) { |
| | | throw new \InvalidArgumentException("Please make sure the folder '$tmpPath' is writable"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Starts the scan mechanism |
| | | * |
| | | * @param array $request |
| | | * @return Report |
| | | */ |
| | | public function run(array $request) |
| | | { |
| | | $report = new Report; |
| | | foreach ($request as $key => $value) { |
| | | $report = $this->iterate($key, $value, $report); |
| | | } |
| | | return $report; |
| | | } |
| | | |
| | | /** |
| | | * Iterates through given data and delegates it to IDS_Monitor::_detect() in |
| | | * order to check for malicious appearing fragments |
| | | * |
| | | * @param string $key the former array key |
| | | * @param array|string $value the former array value |
| | | * @param Report $report |
| | | * @return Report |
| | | */ |
| | | private function iterate($key, $value, Report $report) |
| | | { |
| | | if (is_array($value)) { |
| | | foreach ($value as $subKey => $subValue) { |
| | | $this->iterate("$key.$subKey", $subValue, $report); |
| | | } |
| | | } elseif (is_string($value)) { |
| | | if ($filter = $this->detect($key, $value)) { |
| | | $report->addEvent(new Event($key, $value, $filter)); |
| | | } |
| | | } |
| | | return $report; |
| | | } |
| | | |
| | | /** |
| | | * Checks whether given value matches any of the supplied filter patterns |
| | | * |
| | | * @param mixed $key the key of the value to scan |
| | | * @param mixed $value the value to scan |
| | | * |
| | | * @return Filter[] array of filter(s) that matched the value |
| | | */ |
| | | private function detect($key, $value) |
| | | { |
| | | // define the pre-filter |
| | | $preFilter = '([^\w\s/@!?\.]+|(?:\./)|(?:@@\w+)|(?:\+ADw)|(?:union\s+select))i'; |
| | | |
| | | // to increase performance, only start detection if value isn't alphanumeric |
| | | if ((!$this->scanKeys || !$key || !preg_match($preFilter, $key)) && (!$value || !preg_match($preFilter, $value))) { |
| | | return array(); |
| | | } |
| | | |
| | | // check if this field is part of the exceptions |
| | | foreach ($this->exceptions as $exception) { |
| | | $matches = array(); |
| | | if (($exception === $key) || preg_match('((/.*/[^eE]*)$)', $exception, $matches) && isset($matches[1]) && preg_match($matches[1], $key)) { |
| | | return array(); |
| | | } |
| | | } |
| | | |
| | | // check for magic quotes and remove them if necessary |
| | | if (function_exists('get_magic_quotes_gpc') && !get_magic_quotes_gpc()) { |
| | | $value = preg_replace('(\\\(["\'/]))im', '$1', $value); |
| | | } |
| | | |
| | | // if html monitoring is enabled for this field - then do it! |
| | | if (is_array($this->html) && in_array($key, $this->html, true)) { |
| | | list($key, $value) = $this->purifyValues($key, $value); |
| | | } |
| | | |
| | | // check if json monitoring is enabled for this field |
| | | if (is_array($this->json) && in_array($key, $this->json, true)) { |
| | | list($key, $value) = $this->jsonDecodeValues($key, $value); |
| | | } |
| | | |
| | | // use the converter |
| | | $value = Converter::runAll($value); |
| | | $value = Converter::runCentrifuge($value, $this); |
| | | |
| | | // scan keys if activated via config |
| | | $key = $this->scanKeys ? Converter::runAll($key) : $key; |
| | | $key = $this->scanKeys ? Converter::runCentrifuge($key, $this) : $key; |
| | | |
| | | $filterSet = $this->storage->getFilterSet(); |
| | | |
| | | if ($tags = $this->tags) { |
| | | $filterSet = @array_filter( |
| | | $filterSet, |
| | | function (Filter $filter) use ($tags) { |
| | | return (bool) array_intersect($tags, $filter->getTags()); |
| | | } |
| | | ); |
| | | } |
| | | |
| | | $scanKeys = $this->scanKeys; |
| | | $filterSet = @array_filter( |
| | | $filterSet, |
| | | function (Filter $filter) use ($key, $value, $scanKeys) { |
| | | return $filter->match($value) || $scanKeys && $filter->match($key); |
| | | } |
| | | ); |
| | | |
| | | return $filterSet; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Purifies given key and value variables using HTMLPurifier |
| | | * |
| | | * This function is needed whenever there is variables for which HTML |
| | | * might be allowed like e.g. WYSIWYG post bodies. It will detect malicious |
| | | * code fragments and leaves harmless parts untouched. |
| | | * |
| | | * @param mixed $key |
| | | * @param mixed $value |
| | | * @since 0.5 |
| | | * @throws \Exception |
| | | * |
| | | * @return array tuple [key,value] |
| | | */ |
| | | private function purifyValues($key, $value) |
| | | { |
| | | /* |
| | | * Perform a pre-check if string is valid for purification |
| | | */ |
| | | if ($this->purifierPreCheck($key, $value)) { |
| | | if (!is_writeable($this->HTMLPurifierCache)) { |
| | | throw new \Exception($this->HTMLPurifierCache . ' must be writeable'); |
| | | } |
| | | |
| | | /** @var $config \HTMLPurifier_Config */ |
| | | $config = \HTMLPurifier_Config::createDefault(); |
| | | $config->set('Attr.EnableID', true); |
| | | $config->set('Cache.SerializerPath', $this->HTMLPurifierCache); |
| | | $config->set('Output.Newline', "\n"); |
| | | $this->htmlPurifier = new \HTMLPurifier($config); |
| | | |
| | | $value = preg_replace('([\x0b-\x0c])', ' ', $value); |
| | | $key = preg_replace('([\x0b-\x0c])', ' ', $key); |
| | | |
| | | $purifiedValue = $this->htmlPurifier->purify($value); |
| | | $purifiedKey = $this->htmlPurifier->purify($key); |
| | | |
| | | $plainValue = strip_tags($value); |
| | | $plainKey = strip_tags($key); |
| | | |
| | | $value = $value != $purifiedValue || $plainValue ? $this->diff($value, $purifiedValue, $plainValue) : null; |
| | | $key = $key != $purifiedKey ? $this->diff($key, $purifiedKey, $plainKey) : null; |
| | | } |
| | | return array($key, $value); |
| | | } |
| | | |
| | | /** |
| | | * This method makes sure no dangerous markup can be smuggled in |
| | | * attributes when HTML mode is switched on. |
| | | * |
| | | * If the precheck considers the string too dangerous for |
| | | * purification false is being returned. |
| | | * |
| | | * @param string $key |
| | | * @param string $value |
| | | * @since 0.6 |
| | | * |
| | | * @return boolean |
| | | */ |
| | | private function purifierPreCheck($key = '', $value = '') |
| | | { |
| | | /* |
| | | * Remove control chars before pre-check |
| | | */ |
| | | $tmpValue = preg_replace('/\p{C}/', null, $value); |
| | | $tmpKey = preg_replace('/\p{C}/', null, $key); |
| | | |
| | | $preCheck = '/<(script|iframe|applet|object)\W/i'; |
| | | return !(preg_match($preCheck, $tmpKey) || preg_match($preCheck, $tmpValue)); |
| | | } |
| | | |
| | | /** |
| | | * This method calculates the difference between the original |
| | | * and the purified markup strings. |
| | | * |
| | | * @param string $original the original markup |
| | | * @param string $purified the purified markup |
| | | * @param string $plain the string without html |
| | | * @since 0.5 |
| | | * |
| | | * @return string the difference between the strings |
| | | */ |
| | | private function diff($original, $purified, $plain) |
| | | { |
| | | /* |
| | | * deal with over-sensitive alt-attribute addition of the purifier |
| | | * and other common html formatting problems |
| | | */ |
| | | $purified = preg_replace('/\s+alt="[^"]*"/m', null, $purified); |
| | | $purified = preg_replace('/=?\s*"\s*"/m', null, $purified); |
| | | $original = preg_replace('/\s+alt="[^"]*"/m', null, $original); |
| | | $original = preg_replace('/=?\s*"\s*"/m', null, $original); |
| | | $original = preg_replace('/style\s*=\s*([^"])/m', 'style = "$1', $original); |
| | | |
| | | # deal with oversensitive CSS normalization |
| | | $original = preg_replace('/(?:([\w\-]+:)+\s*([^;]+;\s*))/m', '$1$2', $original); |
| | | |
| | | # strip whitespace between tags |
| | | $original = trim(preg_replace('/>\s*</m', '><', $original)); |
| | | $purified = trim(preg_replace('/>\s*</m', '><', $purified)); |
| | | |
| | | $original = preg_replace('/(=\s*(["\'`])[^>"\'`]*>[^>"\'`]*["\'`])/m', 'alt$1', $original); |
| | | |
| | | // no purified html is left |
| | | if (!$purified) { |
| | | return $original; |
| | | } |
| | | |
| | | // calculate the diff length |
| | | $length = mb_strlen($original) - mb_strlen($purified); |
| | | |
| | | /* |
| | | * Calculate the difference between the original html input |
| | | * and the purified string. |
| | | */ |
| | | $array1 = preg_split('/(?<!^)(?!$)/u', html_entity_decode(urldecode($original))); |
| | | $array2 = preg_split('/(?<!^)(?!$)/u', $purified); |
| | | |
| | | // create an array containing the single character differences |
| | | $differences = array_diff_assoc($array1, $array2); |
| | | |
| | | // return the diff - ready to hit the converter and the rules |
| | | $differences = trim(implode('', $differences)); |
| | | $diff = $length <= 10 ? $differences : mb_substr($differences, 0, strlen($original)); |
| | | |
| | | // clean up spaces between tag delimiters |
| | | $diff = preg_replace('/>\s*</m', '><', $diff); |
| | | |
| | | // correct over-sensitively stripped bad html elements |
| | | $diff = preg_replace('/[^<](iframe|script|embed|object|applet|base|img|style)/m', '<$1', $diff ); |
| | | |
| | | return mb_strlen($diff) >= 4 ? $diff . $plain : null; |
| | | } |
| | | |
| | | /** |
| | | * This method prepares incoming JSON data for the PHPIDS detection |
| | | * process. It utilizes _jsonConcatContents() as callback and returns a |
| | | * string version of the JSON data structures. |
| | | * |
| | | * @param string $key |
| | | * @param string $value |
| | | * @since 0.5.3 |
| | | * |
| | | * @return array tuple [key,value] |
| | | */ |
| | | private function jsonDecodeValues($key, $value) |
| | | { |
| | | $decodedKey = json_decode($key); |
| | | $decodedValue = json_decode($value); |
| | | |
| | | if ($decodedValue && is_array($decodedValue) || is_object($decodedValue)) { |
| | | array_walk_recursive($decodedValue, array($this, 'jsonConcatContents')); |
| | | $value = $this->tmpJsonString; |
| | | } else { |
| | | $this->tmpJsonString .= " " . $decodedValue . "\n"; |
| | | } |
| | | |
| | | if ($decodedKey && is_array($decodedKey) || is_object($decodedKey)) { |
| | | array_walk_recursive($decodedKey, array($this, 'jsonConcatContents')); |
| | | $key = $this->tmpJsonString; |
| | | } else { |
| | | $this->tmpJsonString .= " " . $decodedKey . "\n"; |
| | | } |
| | | |
| | | return array($key, $value); |
| | | } |
| | | |
| | | /** |
| | | * This is the callback used in _jsonDecodeValues(). The method |
| | | * concatenates key and value and stores them in $this->tmpJsonString. |
| | | * |
| | | * @param mixed $key |
| | | * @param mixed $value |
| | | * @since 0.5.3 |
| | | * |
| | | * @return void |
| | | */ |
| | | private function jsonConcatContents($key, $value) |
| | | { |
| | | if (is_string($key) && is_string($value)) { |
| | | $this->tmpJsonString .= $key . " " . $value . "\n"; |
| | | } else { |
| | | $this->jsonDecodeValues(json_encode($key), json_encode($value)); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Sets exception array |
| | | * |
| | | * @param string[]|string $exceptions the thrown exceptions |
| | | * |
| | | * @return void |
| | | */ |
| | | public function setExceptions($exceptions) |
| | | { |
| | | $this->exceptions = (array) $exceptions; |
| | | } |
| | | |
| | | /** |
| | | * Returns exception array |
| | | * |
| | | * @return array |
| | | */ |
| | | public function getExceptions() |
| | | { |
| | | return $this->exceptions; |
| | | } |
| | | |
| | | /** |
| | | * Sets html array |
| | | * |
| | | * @param string[]|string $html the fields containing html |
| | | * @since 0.5 |
| | | * |
| | | * @return void |
| | | */ |
| | | public function setHtml($html) |
| | | { |
| | | $this->html = (array) $html; |
| | | } |
| | | |
| | | /** |
| | | * Adds a value to the html array |
| | | * |
| | | * @since 0.5 |
| | | * |
| | | * @param mixed $value |
| | | * @return void |
| | | */ |
| | | public function addHtml($value) |
| | | { |
| | | $this->html[] = $value; |
| | | } |
| | | |
| | | /** |
| | | * Returns html array |
| | | * |
| | | * @since 0.5 |
| | | * |
| | | * @return array the fields that contain allowed html |
| | | */ |
| | | public function getHtml() |
| | | { |
| | | return $this->html; |
| | | } |
| | | |
| | | /** |
| | | * Sets json array |
| | | * |
| | | * @param string[]|string $json the fields containing json |
| | | * @since 0.5.3 |
| | | * |
| | | * @return void |
| | | */ |
| | | public function setJson($json) |
| | | { |
| | | $this->json = (array) $json; |
| | | } |
| | | |
| | | /** |
| | | * Adds a value to the json array |
| | | * |
| | | * @param string $value the value containing JSON data |
| | | * @since 0.5.3 |
| | | * |
| | | * @return void |
| | | */ |
| | | public function addJson($value) |
| | | { |
| | | $this->json[] = $value; |
| | | } |
| | | |
| | | /** |
| | | * Returns json array |
| | | * |
| | | * @since 0.5.3 |
| | | * |
| | | * @return array the fields that contain json |
| | | */ |
| | | public function getJson() |
| | | { |
| | | return $this->json; |
| | | } |
| | | |
| | | /** |
| | | * Returns storage container |
| | | * |
| | | * @return array |
| | | */ |
| | | public function getStorage() |
| | | { |
| | | return $this->storage; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | /** |
| | | * PHPIDS report object |
| | | * |
| | | * The report objects collects a number of events and thereby presents the |
| | | * detected results. It provides a convenient API to work with the results. |
| | | * |
| | | * Note that this class implements Countable, IteratorAggregate and |
| | | * a __toString() method |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | class Report implements \Countable, \IteratorAggregate |
| | | { |
| | | /** |
| | | * Event container |
| | | * |
| | | * @var Event[]|array |
| | | */ |
| | | protected $events = array(); |
| | | |
| | | /** |
| | | * List of affected tags |
| | | * |
| | | * This list of tags is collected from the collected event objects on |
| | | * demand when IDS_Report->getTags() is called |
| | | * |
| | | * @var string[]|array |
| | | */ |
| | | protected $tags = array(); |
| | | |
| | | /** |
| | | * Impact level |
| | | * |
| | | * The impact level is calculated on demand by adding the results of the |
| | | * event objects on IDS\Report->getImpact() |
| | | * |
| | | * @var integer |
| | | */ |
| | | protected $impact = 0; |
| | | |
| | | /** |
| | | * Centrifuge data |
| | | * |
| | | * This variable - initiated as an empty array - carries all information |
| | | * about the centrifuge data if available |
| | | * |
| | | * @var array |
| | | */ |
| | | protected $centrifuge = array(); |
| | | |
| | | /** |
| | | * Constructor |
| | | * |
| | | * @param array $events the events the report should include |
| | | * |
| | | * @return Report |
| | | */ |
| | | public function __construct(array $events = null) |
| | | { |
| | | foreach ((array) $events as $event) { |
| | | $this->addEvent($event); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Adds an IDS_Event object to the report |
| | | * |
| | | * @param Event $event IDS_Event |
| | | * |
| | | * @return self $this |
| | | */ |
| | | public function addEvent(Event $event) |
| | | { |
| | | $this->clear(); |
| | | $this->events[$event->getName()] = $event; |
| | | |
| | | return $this; |
| | | } |
| | | |
| | | /** |
| | | * Get event by name |
| | | * |
| | | * In most cases an event is identified by the key of the variable that |
| | | * contained maliciously appearing content |
| | | * |
| | | * @param string|integer $name the event name |
| | | * |
| | | * @throws \InvalidArgumentException if argument is invalid |
| | | * @return Event|null IDS_Event object or false if the event does not exist |
| | | */ |
| | | public function getEvent($name) |
| | | { |
| | | if (!is_scalar($name)) { |
| | | throw new \InvalidArgumentException('Invalid argument type given'); |
| | | } |
| | | |
| | | return $this->hasEvent($name) ? $this->events[$name] : null; |
| | | } |
| | | |
| | | /** |
| | | * Returns list of events |
| | | * |
| | | * @return string[]|array |
| | | */ |
| | | |
| | | public function getEvents() |
| | | { |
| | | return $this->events; |
| | | } |
| | | |
| | | /** |
| | | * Returns list of affected tags |
| | | * |
| | | * @return string[]|array |
| | | */ |
| | | public function getTags() |
| | | { |
| | | if (!$this->tags) { |
| | | $this->tags = array(); |
| | | |
| | | foreach ($this->events as $event) { |
| | | $this->tags = array_merge($this->tags, $event->getTags()); |
| | | } |
| | | |
| | | $this->tags = array_values(array_unique($this->tags)); |
| | | } |
| | | |
| | | return $this->tags; |
| | | } |
| | | |
| | | /** |
| | | * Returns total impact |
| | | * |
| | | * Each stored IDS_Event object and its IDS_Filter sub-object are called |
| | | * to calculate the overall impact level of this request |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function getImpact() |
| | | { |
| | | if (!$this->impact) { |
| | | $this->impact = 0; |
| | | foreach ($this->events as $event) { |
| | | $this->impact += $event->getImpact(); |
| | | } |
| | | } |
| | | |
| | | return $this->impact; |
| | | } |
| | | |
| | | /** |
| | | * Checks if a specific event with given name exists |
| | | * |
| | | * @param string|integer $name the event name |
| | | * |
| | | * @throws \InvalidArgumentException if argument is illegal |
| | | * @return boolean |
| | | */ |
| | | public function hasEvent($name) |
| | | { |
| | | if (!is_scalar($name)) { |
| | | throw new \InvalidArgumentException('Invalid argument given'); |
| | | } |
| | | |
| | | return isset($this->events[$name]); |
| | | } |
| | | |
| | | /** |
| | | * Returns total amount of events |
| | | * |
| | | * @return integer |
| | | */ |
| | | public function count() |
| | | { |
| | | return count($this->events); |
| | | } |
| | | |
| | | /** |
| | | * Return iterator object |
| | | * |
| | | * In order to provide the possibility to directly iterate over the |
| | | * IDS_Event object the IteratorAggregate is implemented. One can easily |
| | | * use foreach() to iterate through all stored IDS_Event objects. |
| | | * |
| | | * @return \Iterator the event collection |
| | | */ |
| | | public function getIterator() |
| | | { |
| | | return new \ArrayIterator($this->events); |
| | | } |
| | | |
| | | /** |
| | | * Checks if any events are registered |
| | | * |
| | | * @return boolean |
| | | */ |
| | | public function isEmpty() |
| | | { |
| | | return empty($this->events); |
| | | } |
| | | |
| | | /** |
| | | * Clears calculated/collected values |
| | | * |
| | | * @return void |
| | | */ |
| | | protected function clear() |
| | | { |
| | | $this->impact = 0; |
| | | $this->tags = array(); |
| | | } |
| | | |
| | | /** |
| | | * This method returns the centrifuge property or null if not |
| | | * filled with data |
| | | * |
| | | * @return array |
| | | */ |
| | | public function getCentrifuge() |
| | | { |
| | | return $this->centrifuge; |
| | | } |
| | | |
| | | /** |
| | | * This method sets the centrifuge property |
| | | * |
| | | * @param array $centrifuge the centrifuge data |
| | | * |
| | | * @throws \InvalidArgumentException if argument is illegal |
| | | * @return void |
| | | */ |
| | | public function setCentrifuge(array $centrifuge = array()) |
| | | { |
| | | if (!$centrifuge) { |
| | | throw new \InvalidArgumentException('Empty centrifuge given'); |
| | | } |
| | | $this->centrifuge = $centrifuge; |
| | | } |
| | | |
| | | /** |
| | | * Directly outputs all available information |
| | | * |
| | | * @return string |
| | | */ |
| | | public function __toString() |
| | | { |
| | | $output = ''; |
| | | if (!$this->isEmpty()) { |
| | | $output .= vsprintf( |
| | | "Total impact: %d<br/>\nAffected tags: %s<br/>\n", |
| | | array( |
| | | $this->getImpact(), |
| | | implode(', ', $this->getTags()) |
| | | ) |
| | | ); |
| | | |
| | | foreach ($this->events as $event) { |
| | | $output .= vsprintf( |
| | | "<br/>\nVariable: %s | Value: %s<br/>\nImpact: %d | Tags: %s<br/>\n", |
| | | array( |
| | | htmlspecialchars($event->getName()), |
| | | htmlspecialchars($event->getValue()), |
| | | $event->getImpact(), |
| | | implode(', ', $event->getTags()) |
| | | ) |
| | | ); |
| | | |
| | | foreach ($event as $filter) { |
| | | $output .= vsprintf( |
| | | "Description: %s | Tags: %s | ID %s<br/>\n", |
| | | array( |
| | | $filter->getDescription(), |
| | | implode(', ', $filter->getTags()), |
| | | $filter->getId() |
| | | ) |
| | | ); |
| | | } |
| | | } |
| | | |
| | | $output .= '<br/>'; |
| | | |
| | | if ($centrifuge = $this->getCentrifuge()) { |
| | | $output .= vsprintf( |
| | | "Centrifuge detection data<br/> Threshold: %s<br/> Ratio: %s", |
| | | array( |
| | | isset($centrifuge['threshold']) && $centrifuge['threshold'] ? $centrifuge['threshold'] : '---', |
| | | isset($centrifuge['ratio']) && $centrifuge['ratio'] ? $centrifuge['ratio'] : '---' |
| | | ) |
| | | ); |
| | | if (isset($centrifuge['converted'])) { |
| | | $output .= '<br/> Converted: ' . $centrifuge['converted']; |
| | | } |
| | | $output .= "<br/><br/>\n"; |
| | | } |
| | | } |
| | | |
| | | return $output; |
| | | } |
| | | } |
| New file |
| | |
| | | <?php |
| | | /** |
| | | * PHPIDS |
| | | * |
| | | * Requirements: PHP5, SimpleXML |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | | * |
| | | * PHP version 5.1.6+ |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | namespace IDS; |
| | | |
| | | /** |
| | | * PHPIDS version class |
| | | * |
| | | * @category Security |
| | | * @package PHPIDS |
| | | * @author Christian Matthies <ch0012@gmail.com> |
| | | * @author Mario Heiderich <mario.heiderich@gmail.com> |
| | | * @author Lars Strojny <lars@strojny.net> |
| | | * @copyright 2007-2009 The PHPIDS Group |
| | | * @license http://www.gnu.org/licenses/lgpl.html LGPL |
| | | * @link http://php-ids.org/ |
| | | */ |
| | | abstract class Version |
| | | { |
| | | const VERSION = 'master'; |
| | | } |
| New file |
| | |
| | | { |
| | | "filters":{ |
| | | "filter":[ |
| | | { |
| | | "id":"1", |
| | | "rule":"(?:\"[^\"]*[^-]?>)|(?:[^\\w\\s]\\s*\\\/>)|(?:>\")", |
| | | "description":"Finds html breaking injections including whitespace attacks", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"2", |
| | | "rule":"(?:\"+.*[<=]\\s*\"[^\"]+\")|(?:\"\\s*\\w+\\s*=)|(?:>\\w=\\\/)|(?:#.+\\)[\"\\s]*>)|(?:\"\\s*(?:src|style|on\\w+)\\s*=\\s*\")|(?:[^\"]?\"[,;\\s]+\\w*[\\[\\(])", |
| | | "description":"Finds attribute breaking injections including whitespace attacks", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"3", |
| | | "rule":"(?:^>[\\w\\s]*<\\\/?\\w{2,}>)", |
| | | "description":"Finds unquoted attribute breaking injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"2" |
| | | }, |
| | | { |
| | | "id":"4", |
| | | "rule":"(?:[+\\\/]\\s*name[\\W\\d]*[)+])|(?:;\\W*url\\s*=)|(?:[^\\w\\s\\\/?:>]\\s*(?:location|referrer|name)\\s*[^\\\/\\w\\s-])", |
| | | "description":"Detects url-, name-, JSON, and referrer-contained payload attacks", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"5", |
| | | "rule":"(?:\\W\\s*hash\\s*[^\\w\\s-])|(?:\\w+=\\W*[^,]*,[^\\s(]\\s*\\()|(?:\\?\"[^\\s\"]\":)|(?:(?<!\\\/)__[a-z]+__)|(?:(?:^|[\\s)\\]\\}])(?:s|g)etter\\s*=)", |
| | | "description":"Detects hash-contained xss payload attacks, setter usage and property overloading", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"6", |
| | | "rule":"(?:with\\s*\\(\\s*.+\\s*\\)\\s*\\w+\\s*\\()|(?:(?:do|while|for)\\s*\\([^)]*\\)\\s*\\{)|(?:\\\/[\\w\\s]*\\[\\W*\\w)", |
| | | "description":"Detects self contained xss via with(), common loops and regex to string conversion", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"7", |
| | | "rule":"(?:[=(].+\\?.+:)|(?:with\\([^)]*\\)\\))|(?:\\.\\s*source\\W)", |
| | | "description":"Detects JavaScript with(), ternary operators and XML predicate attacks", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"8", |
| | | "rule":"(?:\\\/\\w*\\s*\\)\\s*\\()|(?:\\([\\w\\s]+\\([\\w\\s]+\\)[\\w\\s]+\\))|(?:(?<!(?:mozilla\\\/\\d\\.\\d\\s))\\([^)[]+\\[[^\\]]+\\][^)]*\\))|(?:[^\\s!][{([][^({[]+[{([][^}\\])]+[}\\])][\\s+\",\\d]*[}\\])])|(?:\"\\)?\\]\\W*\\[)|(?:=\\s*[^\\s:;]+\\s*[{([][^}\\])]+[}\\])];)", |
| | | "description":"Detects self-executing JavaScript functions", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"9", |
| | | "rule":"(?:\\\\u00[a-f0-9]{2})|(?:\\\\x0*[a-f0-9]{2})|(?:\\\\\\d{2,3})", |
| | | "description":"Detects the IE octal, hex and unicode entities", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"2" |
| | | }, |
| | | { |
| | | "id":"10", |
| | | "rule":"(?:(?:\\\/|\\\\)?\\.+(\\\/|\\\\)(?:\\.+)?)|(?:\\w+\\.exe\\??\\s)|(?:;\\s*\\w+\\s*\\\/[\\w*-]+\\\/)|(?:\\d\\.\\dx\\|)|(?:%(?:c0\\.|af\\.|5c\\.))|(?:\\\/(?:%2e){2})", |
| | | "description":"Detects basic directory traversal", |
| | | "tags":{ |
| | | "tag":[ |
| | | "dt", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"11", |
| | | "rule":"(?:%c0%ae\\\/)|(?:(?:\\\/|\\\\)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:\\\/|\\\\))|(?:(?:\\\/|\\\\)inetpub|localstart\\.asp|boot\\.ini)", |
| | | "description":"Detects specific directory and path traversal", |
| | | "tags":{ |
| | | "tag":[ |
| | | "dt", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"12", |
| | | "rule":"(?:etc\\\/\\W*passwd)", |
| | | "description":"Detects etc\/passwd inclusion attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "dt", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"13", |
| | | "rule":"(?:%u(?:ff|00|e\\d)\\w\\w)|(?:(?:%(?:e\\w|c[^3\\W]|))(?:%\\w\\w)(?:%\\w\\w)?)", |
| | | "description":"Detects halfwidth\/fullwidth encoded unicode HTML breaking attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"3" |
| | | }, |
| | | { |
| | | "id":"14", |
| | | "rule":"(?:#@~\\^\\w+)|(?:\\w+script:|@import[^\\w]|;base64|base64,)|(?:\\w\\s*\\([\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+\\))", |
| | | "description":"Detects possible includes, VBSCript\/JScript encodeed and packed functions", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"15", |
| | | "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:create(?:element|attribute|textnode)|[a-z]+events?|setattribute|getelement\\w+|appendchild|createrange|createcontextualfragment|removenode|parentnode|decodeuricomponent|\\wettimeout|(?:ms)?setimmediate|option|useragent)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\",.+\\-]))", |
| | | "description":"Detects JavaScript DOM\/miscellaneous properties and methods", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"16", |
| | | "rule":"([^*\\s\\w,.\\\/?+-]\\s*)?(?<![a-mo-z]\\s)(?<![a-z\\\/_@])(\\s*return\\s*)?(?:alert|inputbox|showmod(?:al|eless)dialog|showhelp|infinity|isnan|isnull|iterator|msgbox|executeglobal|expression|prompt|write(?:ln)?|confirm|dialog|urn|(?:un)?eval|exec|execscript|tostring|status|execute|window|unescape|navigate|jquery|getscript|extend|prototype)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\",.:\\\/+\\-]))", |
| | | "description":"Detects possible includes and typical script methods", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"17", |
| | | "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@])(\\s*return\\s*)?(?:hash|name|href|navigateandfind|source|pathname|close|constructor|port|protocol|assign|replace|back|forward|document|ownerdocument|window|top|this|self|parent|frames|_?content|date|cookie|innerhtml|innertext|csstext+?|outerhtml|print|moveby|resizeto|createstylesheet|stylesheets)(?(1)[^\\w%\"]|(?:\\s*[^@\\\/\\s\\w%.+\\-]))", |
| | | "description":"Detects JavaScript object properties and methods", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"18", |
| | | "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:join|pop|push|reverse|reduce|concat|map|shift|sp?lice|sort|unshift)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%,.+\\-]))", |
| | | "description":"Detects JavaScript array properties and methods", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"19", |
| | | "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:set|atob|btoa|charat|charcodeat|charset|concat|crypto|frames|fromcharcode|indexof|lastindexof|match|navigator|toolbar|menubar|replace|regexp|slice|split|substr|substring|escape|\\w+codeuri\\w*)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%,.+\\-]))", |
| | | "description":"Detects JavaScript string properties and methods", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"20", |
| | | "rule":"(?:\\)\\s*\\[)|([^*\":\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z_@\\|])(\\s*return\\s*)?(?:globalstorage|sessionstorage|postmessage|callee|constructor|content|domain|prototype|try|catch|top|call|apply|url|function|object|array|string|math|if|for\\s*(?:each)?|elseif|case|switch|regex|boolean|location|(?:ms)?setimmediate|settimeout|setinterval|void|setexpression|namespace|while)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\".+\\-\\\/]))", |
| | | "description":"Detects JavaScript language constructs", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"21", |
| | | "rule":"(?:,\\s*(?:alert|showmodaldialog|eval)\\s*,)|(?::\\s*eval\\s*[^\\s])|([^:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z\\\/_@])(\\s*return\\s*)?(?:(?:document\\s*\\.)?(?:.+\\\/)?(?:alert|eval|msgbox|showmod(?:al|eless)dialog|showhelp|prompt|write(?:ln)?|confirm|dialog|open))\\s*(?:[^.a-z\\s\\-]|(?:\\s*[^\\s\\w,.@\\\/+-]))|(?:java[\\s\\\/]*\\.[\\s\\\/]*lang)|(?:\\w\\s*=\\s*new\\s+\\w+)|(?:&\\s*\\w+\\s*\\)[^,])|(?:\\+[\\W\\d]*new\\s+\\w+[\\W\\d]*\\+)|(?:document\\.\\w)", |
| | | "description":"Detects very basic XSS probings", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"3" |
| | | }, |
| | | { |
| | | "id":"22", |
| | | "rule":"(?:=\\s*(?:top|this|window|content|self|frames|_content))|(?:\\\/\\s*[gimx]*\\s*[)}])|(?:[^\\s]\\s*=\\s*script)|(?:\\.\\s*constructor)|(?:default\\s+xml\\s+namespace\\s*=)|(?:\\\/\\s*\\+[^+]+\\s*\\+\\s*\\\/)", |
| | | "description":"Detects advanced XSS probings via Script(), RexExp, constructors and XML namespaces", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"23", |
| | | "rule":"(?:\\.\\s*\\w+\\W*=)|(?:\\W\\s*(?:location|document)\\s*\\W[^({[;]+[({[;])|(?:\\(\\w+\\?[:\\w]+\\))|(?:\\w{2,}\\s*=\\s*\\d+[^&\\w]\\w+)|(?:\\]\\s*\\(\\s*\\w+)", |
| | | "description":"Detects JavaScript location\/document property access and window access obfuscation", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"24", |
| | | "rule":"(?:[\".]script\\s*\\()|(?:\\$\\$?\\s*\\(\\s*[\\w\"])|(?:\\\/[\\w\\s]+\\\/\\.)|(?:=\\s*\\\/\\w+\\\/\\s*\\.)|(?:(?:this|window|top|parent|frames|self|content)\\[\\s*[(,\"]*\\s*[\\w\\$])|(?:,\\s*new\\s+\\w+\\s*[,;)])", |
| | | "description":"Detects basic obfuscated JavaScript script injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"25", |
| | | "rule":"(?:=\\s*[$\\w]\\s*[\\(\\[])|(?:\\(\\s*(?:this|top|window|self|parent|_?content)\\s*\\))|(?:src\\s*=s*(?:\\w+:|\\\/\\\/))|(?:\\w+\\[(\"\\w+\"|\\w+\\|\\|))|(?:[\\d\\W]\\|\\|[\\d\\W]|\\W=\\w+,)|(?:\\\/\\s*\\+\\s*[a-z\"])|(?:=\\s*\\$[^([]*\\()|(?:=\\s*\\(\\s*\")", |
| | | "description":"Detects obfuscated JavaScript script injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"26", |
| | | "rule":"(?:[^:\\s\\w]+\\s*[^\\w\\\/](href|protocol|host|hostname|pathname|hash|port|cookie)[^\\w])", |
| | | "description":"Detects JavaScript cookie stealing and redirection attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"27", |
| | | "rule":"(?:(?:vbs|vbscript|data):.*[,+])|(?:\\w+\\s*=\\W*(?!https?)\\w+:)|(jar:\\w+:)|(=\\s*\"?\\s*vbs(?:ript)?:)|(language\\s*=\\s?\"?\\s*vbs(?:ript)?)|on\\w+\\s*=\\*\\w+\\-\"?", |
| | | "description":"Detects data: URL injections, VBS injections and common URI schemes", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"28", |
| | | "rule":"(?:firefoxurl:\\w+\\|)|(?:(?:file|res|telnet|nntp|news|mailto|chrome)\\s*:\\s*[%&#xu\\\/]+)|(wyciwyg|firefoxurl\\s*:\\s*\\\/\\s*\\\/)", |
| | | "description":"Detects IE firefoxurl injections, cache poisoning attempts and local file inclusion\/execution", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "rfe", |
| | | "lfi", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"29", |
| | | "rule":"(?:binding\\s?=|moz-binding|behavior\\s?=)|(?:[\\s\\\/]style\\s*=\\s*[-\\\\])", |
| | | "description":"Detects bindings and behavior injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"30", |
| | | "rule":"(?:=\\s*\\w+\\s*\\+\\s*\")|(?:\\+=\\s*\\(\\s\")|(?:!+\\s*[\\d.,]+\\w?\\d*\\s*\\?)|(?:=\\s*\\[s*\\])|(?:\"\\s*\\+\\s*\")|(?:[^\\s]\\[\\s*\\d+\\s*\\]\\s*[;+])|(?:\"\\s*[&|]+\\s*\")|(?:\\\/\\s*\\?\\s*\")|(?:\\\/\\s*\\)\\s*\\[)|(?:\\d\\?.+:\\d)|(?:]\\s*\\[\\W*\\w)|(?:[^\\s]\\s*=\\s*\\\/)", |
| | | "description":"Detects common XSS concatenation patterns 1\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"31", |
| | | "rule":"(?:=\\s*\\d*\\.\\d*\\?\\d*\\.\\d*)|(?:[|&]{2,}\\s*\")|(?:!\\d+\\.\\d*\\?\")|(?:\\\/:[\\w.]+,)|(?:=[\\d\\W\\s]*\\[[^]]+\\])|(?:\\?\\w+:\\w+)", |
| | | "description":"Detects common XSS concatenation patterns 2\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"32", |
| | | "rule":"(?:[^\\w\\s=]on(?!g\\>)\\w+[^=_+-]*=[^$]+(?:\\W|\\>)?)", |
| | | "description":"Detects possible event handlers", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"33", |
| | | "rule":"(?:\\<\\w*:?\\s(?:[^\\>]*)t(?!rong))|(?:\\<scri)|(<\\w+:\\w+)", |
| | | "description":"Detects obfuscated script tags and XML wrapped HTML", |
| | | "tags":{ |
| | | "tag":"xss" |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"34", |
| | | "rule":"(?:\\<\\\/\\w+\\s\\w+)|(?:@(?:cc_on|set)[\\s@,\"=])", |
| | | "description":"Detects attributes in closing tags and conditional compilation tokens", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"35", |
| | | "rule":"(?:--[^\\n]*$)|(?:\\<!-|-->)|(?:[^*]\\\/\\*|\\*\\\/[^*])|(?:(?:[\\W\\d]#|--|{)$)|(?:\\\/{3,}.*$)|(?:<!\\[\\W)|(?:\\]!>)", |
| | | "description":"Detects common comment types", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"3" |
| | | }, |
| | | { |
| | | "id":"37", |
| | | "rule":"(?:\\<base\\s+)|(?:<!(?:element|entity|\\[CDATA))", |
| | | "description":"Detects base href injections and XML entity injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"38", |
| | | "rule":"(?:\\<[\\\/]?(?:[i]?frame|applet|isindex|marquee|keygen|script|audio|video|input|button|textarea|style|base|body|meta|link|object|embed|param|plaintext|xm\\w+|image|im(?:g|port)))", |
| | | "description":"Detects possibly malicious html elements including some attributes", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"39", |
| | | "rule":"(?:\\\\x[01fe][\\db-ce-f])|(?:%[01fe][\\db-ce-f])|(?:&#[01fe][\\db-ce-f])|(?:\\\\[01fe][\\db-ce-f])|(?:&#x[01fe][\\db-ce-f])", |
| | | "description":"Detects nullbytes and other dangerous characters", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "rfe", |
| | | "xss" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"40", |
| | | "rule":"(?:\\)\\s*when\\s*\\d+\\s*then)|(?:\"\\s*(?:#|--|{))|(?:\\\/\\*!\\s?\\d+)|(?:ch(?:a)?r\\s*\\(\\s*\\d)|(?:(?:(n?and|x?or|not)\\s+|\\|\\||\\&\\&)\\s*\\w+\\()", |
| | | "description":"Detects MySQL comments, conditions and ch(a)r injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"41", |
| | | "rule":"(?:[\\s()]case\\s*\\()|(?:\\)\\s*like\\s*\\()|(?:having\\s*[^\\s]+\\s*[^\\w\\s])|(?:if\\s?\\([\\d\\w]\\s*[=<>~])", |
| | | "description":"Detects conditional SQL injection attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"42", |
| | | "rule":"(?:\"\\s*or\\s*\"?\\d)|(?:\\\\x(?:23|27|3d))|(?:^.?\"$)|(?:(?:^[\"\\\\]*(?:[\\d\"]+|[^\"]+\"))+\\s*(?:n?and|x?or|not|\\|\\||\\&\\&)\\s*[\\w\"[+&!@(),.-])|(?:[^\\w\\s]\\w+\\s*[|-]\\s*\"\\s*\\w)|(?:@\\w+\\s+(and|or)\\s*[\"\\d]+)|(?:@[\\w-]+\\s(and|or)\\s*[^\\w\\s])|(?:[^\\w\\s:]\\s*\\d\\W+[^\\w\\s]\\s*\".)|(?:\\Winformation_schema|table_name\\W)", |
| | | "description":"Detects classic SQL injection probings 1\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"43", |
| | | "rule":"(?:\"\\s*\\*.+(?:or|id)\\W*\"\\d)|(?:\\^\")|(?:^[\\w\\s\"-]+(?<=and\\s)(?<=or\\s)(?<=xor\\s)(?<=nand\\s)(?<=not\\s)(?<=\\|\\|)(?<=\\&\\&)\\w+\\()|(?:\"[\\s\\d]*[^\\w\\s]+\\W*\\d\\W*.*[\"\\d])|(?:\"\\s*[^\\w\\s?]+\\s*[^\\w\\s]+\\s*\")|(?:\"\\s*[^\\w\\s]+\\s*[\\W\\d].*(?:#|--))|(?:\".*\\*\\s*\\d)|(?:\"\\s*or\\s[^\\d]+[\\w-]+.*\\d)|(?:[()*<>%+-][\\w-]+[^\\w\\s]+\"[^,])", |
| | | "description":"Detects classic SQL injection probings 2\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"44", |
| | | "rule":"(?:\\d\"\\s+\"\\s+\\d)|(?:^admin\\s*\"|(\\\/\\*)+\"+\\s?(?:--|#|\\\/\\*|{)?)|(?:\"\\s*or[\\w\\s-]+\\s*[+<>=(),-]\\s*[\\d\"])|(?:\"\\s*[^\\w\\s]?=\\s*\")|(?:\"\\W*[+=]+\\W*\")|(?:\"\\s*[!=|][\\d\\s!=+-]+.*[\"(].*$)|(?:\"\\s*[!=|][\\d\\s!=]+.*\\d+$)|(?:\"\\s*like\\W+[\\w\"(])|(?:\\sis\\s*0\\W)|(?:where\\s[\\s\\w\\.,-]+\\s=)|(?:\"[<>~]+\")", |
| | | "description":"Detects basic SQL authentication bypass attempts 1\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"45", |
| | | "rule":"(?:union\\s*(?:all|distinct|[(!@]*)\\s*[([]*\\s*select)|(?:\\w+\\s+like\\s+\\\")|(?:like\\s*\"\\%)|(?:\"\\s*like\\W*[\"\\d])|(?:\"\\s*(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w]+=\\s*\\w+\\s*having)|(?:\"\\s*\\*\\s*\\w+\\W+\")|(?:\"\\s*[^?\\w\\s=.,;)(]+\\s*[(@\"]*\\s*\\w+\\W+\\w)|(?:select\\s*[\\[\\]()\\s\\w\\.,\"-]+from)|(?:find_in_set\\s*\\()", |
| | | "description":"Detects basic SQL authentication bypass attempts 2\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"46", |
| | | "rule":"(?:in\\s*\\(+\\s*select)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w+]+(?:regexp\\s*\\(|sounds\\s+like\\s*\"|[=\\d]+x))|(\"\\s*\\d\\s*(?:--|#))|(?:\"[%&<>^=]+\\d\\s*(=|or))|(?:\"\\W+[\\w+-]+\\s*=\\s*\\d\\W+\")|(?:\"\\s*is\\s*\\d.+\"?\\w)|(?:\"\\|?[\\w-]{3,}[^\\w\\s.,]+\")|(?:\"\\s*is\\s*[\\d.]+\\s*\\W.*\")", |
| | | "description":"Detects basic SQL authentication bypass attempts 3\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"47", |
| | | "rule":"(?:[\\d\\W]\\s+as\\s*[\"\\w]+\\s*from)|(?:^[\\W\\d]+\\s*(?:union|select|create|rename|truncate|load|alter|delete|update|insert|desc))|(?:(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s+(?:(?:group_)concat|char|load_file)\\s?\\(?)|(?:end\\s*\\);)|(\"\\s+regexp\\W)|(?:[\\s(]load_file\\s*\\()", |
| | | "description":"Detects concatenated basic SQL injection and SQLLFI attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"48", |
| | | "rule":"(?:@.+=\\s*\\(\\s*select)|(?:\\d+\\s*or\\s*\\d+\\s*[\\-+])|(?:\\\/\\w+;?\\s+(?:having|and|or|select)\\W)|(?:\\d\\s+group\\s+by.+\\()|(?:(?:;|#|--)\\s*(?:drop|alter))|(?:(?:;|#|--)\\s*(?:update|insert)\\s*\\w{2,})|(?:[^\\w]SET\\s*@\\w+)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)[\\s(]+\\w+[\\s)]*[!=+]+[\\s\\d]*[\"=()])", |
| | | "description":"Detects chained SQL injection attempts 1\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"49", |
| | | "rule":"(?:\"\\s+and\\s*=\\W)|(?:\\(\\s*select\\s*\\w+\\s*\\()|(?:\\*\\\/from)|(?:\\+\\s*\\d+\\s*\\+\\s*@)|(?:\\w\"\\s*(?:[-+=|@]+\\s*)+[\\d(])|(?:coalesce\\s*\\(|@@\\w+\\s*[^\\w\\s])|(?:\\W!+\"\\w)|(?:\";\\s*(?:if|while|begin))|(?:\"[\\s\\d]+=\\s*\\d)|(?:order\\s+by\\s+if\\w*\\s*\\()|(?:[\\s(]+case\\d*\\W.+[tw]hen[\\s(])", |
| | | "description":"Detects chained SQL injection attempts 2\/2", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"50", |
| | | "rule":"(?:(select|;)\\s+(?:benchmark|if|sleep)\\s*?\\(\\s*\\(?\\s*\\w+)", |
| | | "description":"Detects SQL benchmark and sleep injection attempts including conditional queries", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"51", |
| | | "rule":"(?:create\\s+function\\s+\\w+\\s+returns)|(?:;\\s*(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*[\\[(]?\\w{2,})", |
| | | "description":"Detects MySQL UDF injection and other data\/structure manipulation attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"52", |
| | | "rule":"(?:alter\\s*\\w+.*character\\s+set\\s+\\w+)|(\";\\s*waitfor\\s+time\\s+\")|(?:\";.*:\\s*goto)", |
| | | "description":"Detects MySQL charset switch and MSSQL DoS attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"53", |
| | | "rule":"(?:procedure\\s+analyse\\s*\\()|(?:;\\s*(declare|open)\\s+[\\w-]+)|(?:create\\s+(procedure|function)\\s*\\w+\\s*\\(\\s*\\)\\s*-)|(?:declare[^\\w]+[@#]\\s*\\w+)|(exec\\s*\\(\\s*@)", |
| | | "description":"Detects MySQL and PostgreSQL stored procedure\/function injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"54", |
| | | "rule":"(?:select\\s*pg_sleep)|(?:waitfor\\s*delay\\s?\"+\\s?\\d)|(?:;\\s*shutdown\\s*(?:;|--|#|\\\/\\*|{))", |
| | | "description":"Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"55", |
| | | "rule":"(?:\\sexec\\s+xp_cmdshell)|(?:\"\\s*!\\s*[\"\\w])|(?:from\\W+information_schema\\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\\s*\\([^\\)]*)|(?:\";?\\s*(?:select|union|having)\\s*[^\\s])|(?:\\wiif\\s*\\()|(?:exec\\s+master\\.)|(?:union select @)|(?:union[\\w(\\s]*select)|(?:select.*\\w?user\\()|(?:into[\\s+]+(?:dump|out)file\\s*\")", |
| | | "description":"Detects MSSQL code execution and information gathering attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"56", |
| | | "rule":"(?:merge.*using\\s*\\()|(execute\\s*immediate\\s*\")|(?:\\W+\\d*\\s*having\\s*[^\\s\\-])|(?:match\\s*[\\w(),+-]+\\s*against\\s*\\()", |
| | | "description":"Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"57", |
| | | "rule":"(?:,.*[)\\da-f\"]\"(?:\".*\"|\\Z|[^\"]+))|(?:\\Wselect.+\\W*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*\\(\\s*space\\s*\\()", |
| | | "description":"Detects MySQL comment-\/space-obfuscated injections and backtick termination", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"58", |
| | | "rule":"(?:@[\\w-]+\\s*\\()|(?:]\\s*\\(\\s*[\"!]\\s*\\w)|(?:<[?%](?:php)?.*(?:[?%]>)?)|(?:;[\\s\\w|]*\\$\\w+\\s*=)|(?:\\$\\w+\\s*=(?:(?:\\s*\\$?\\w+\\s*[(;])|\\s*\".*\"))|(?:;\\s*\\{\\W*\\w+\\s*\\()", |
| | | "description":"Detects code injection attempts 1\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"59", |
| | | "rule":"(?:(?:[;]+|(<[?%](?:php)?)).*(?:define|eval|file_get_contents|include|require|require_once|set|shell_exec|phpinfo|system|passthru|preg_\\w+|execute)\\s*[\"(@])", |
| | | "description":"Detects code injection attempts 2\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"60", |
| | | "rule":"(?:(?:[;]+|(<[?%](?:php)?)).*[^\\w](?:echo|print|print_r|var_dump|[fp]open))|(?:;\\s*rm\\s+-\\w+\\s+)|(?:;.*{.*\\$\\w+\\s*=)|(?:\\$\\w+\\s*\\[\\]\\s*=\\s*)", |
| | | "description":"Detects code injection attempts 3\/3", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"62", |
| | | "rule":"(?:function[^(]*\\([^)]*\\))|(?:(?:delete|void|throw|instanceof|new|typeof)[^\\w.]+\\w+\\s*[([])|([)\\]]\\s*\\.\\s*\\w+\\s*=)|(?:\\(\\s*new\\s+\\w+\\s*\\)\\.)", |
| | | "description":"Detects common function declarations and special JS operators", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"63", |
| | | "rule":"(?:[\\w.-]+@[\\w.-]+%(?:[01][\\db-ce-f])+\\w+:)", |
| | | "description":"Detects common mail header injections", |
| | | "tags":{ |
| | | "tag":[ |
| | | "id", |
| | | "spam" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"64", |
| | | "rule":"(?:\\.pl\\?\\w+=\\w?\\|\\w+;)|(?:\\|\\(\\w+=\\*)|(?:\\*\\s*\\)+\\s*;)", |
| | | "description":"Detects perl echo shellcode injection and LDAP vectors", |
| | | "tags":{ |
| | | "tag":[ |
| | | "lfi", |
| | | "rfe" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"65", |
| | | "rule":"(?:(^|\\W)const\\s+[\\w\\-]+\\s*=)|(?:(?:do|for|while)\\s*\\([^;]+;+\\))|(?:(?:^|\\W)on\\w+\\s*=[\\w\\W]*(?:on\\w+|alert|eval|print|confirm|prompt))|(?:groups=\\d+\\(\\w+\\))|(?:(.)\\1{128,})", |
| | | "description":"Detects basic XSS DoS attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "rfe", |
| | | "dos" |
| | | ] |
| | | }, |
| | | "impact":"5" |
| | | }, |
| | | { |
| | | "id":"67", |
| | | "rule":"(?:\\({2,}\\+{2,}:{2,})|(?:\\({2,}\\+{2,}:+)|(?:\\({3,}\\++:{2,})|(?:\\$\\[!!!\\])", |
| | | "description":"Detects unknown attack vectors based on PHPIDS Centrifuge detection", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf", |
| | | "id", |
| | | "rfe", |
| | | "lfi" |
| | | ] |
| | | }, |
| | | "impact":"7" |
| | | }, |
| | | { |
| | | "id":"68", |
| | | "rule":"(?:[\\s\\\/\"]+[-\\w\\\/\\\\\\*]+\\s*=.+(?:\\\/\\s*>))", |
| | | "description":"Finds attribute breaking injections including obfuscated attributes", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"69", |
| | | "rule":"(?:(?:msgbox|eval)\\s*\\+|(?:language\\s*=\\*vbscript))", |
| | | "description":"Finds basic VBScript injection attempts", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"70", |
| | | "rule":"(?:\\[\\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\\])", |
| | | "description":"Finds basic MongoDB SQL injection attempts", |
| | | "tags":{ |
| | | "tag":"sqli" |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"71", |
| | | "rule":"(?:[\\s\\d\\\/\"]+(?:on\\w+|style|poster|background)=[$\"\\w])|(?:-type\\s*:\\s*multipart)", |
| | | "description":"Finds malicious attribute injection attempts and MHTML attacks", |
| | | "tags":{ |
| | | "tag":[ |
| | | "xss", |
| | | "csrf" |
| | | ] |
| | | }, |
| | | "impact":"6" |
| | | }, |
| | | { |
| | | "id":"72", |
| | | "rule":"(?:(sleep\\((\\s*)(\\d*)(\\s*)\\)|benchmark\\((.*)\\,(.*)\\)))", |
| | | "description":"Detects blind sqli tests using sleep() or benchmark().", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"73", |
| | | "rule":"(?:(\\%SYSTEMROOT\\%))", |
| | | "description":"An attacker is trying to locate a file to read or write.", |
| | | "tags":{ |
| | | "tag":[ |
| | | "files", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"75", |
| | | "rule":"(?:(((.*)\\%[c|d|i|e|f|g|o|s|u|x|p|n]){8}))", |
| | | "description":"Looking for a format string attack", |
| | | "tags":{ |
| | | "tag":"format string" |
| | | }, |
| | | "impact":"4" |
| | | }, |
| | | { |
| | | "id":"76", |
| | | "rule":"(?:(union(.*)select(.*)from))", |
| | | "description":"Looking for basic sql injection. Common attack string for mysql, oracle and others.", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"3" |
| | | }, |
| | | { |
| | | "id":"77", |
| | | "rule":"(?:^(-0000023456|4294967295|4294967296|2147483648|2147483647|0000012345|-2147483648|-2147483649|0000023456|2.2250738585072007e-308|1e309)$)", |
| | | "description":"Looking for integer overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the \"magic number\" crash", |
| | | "tags":{ |
| | | "tag":[ |
| | | "sqli", |
| | | "id" |
| | | ] |
| | | }, |
| | | "impact":"3" |
| | | }, |
| | | { |
| | | "id":"78", |
| | | "rule":"(?:%23.*?%0a)", |
| | | "description":"Detects SQL comment filter evasion", |
| | | "tags":{ |
| | | "tag":[ |
| | | "format string" |
| | | ] |
| | | }, |
| | | "impact":"4" |
| | | } |
| | | ] |
| | | } |
| | | } |
| New file |
| | |
| | | <filters> |
| | | <filter> |
| | | <id>1</id> |
| | | <rule><![CDATA[(?:"[^"]*[^-]?>)|(?:[^\w\s]\s*\/>)|(?:>")]]></rule> |
| | | <description>Finds html breaking injections including whitespace attacks</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>2</id> |
| | | <rule><![CDATA[(?:"+.*[<=]\s*"[^"]+")|(?:"\s*\w+\s*=)|(?:>\w=\/)|(?:#.+\)["\s]*>)|(?:"\s*(?:src|style|on\w+)\s*=\s*")|(?:[^"]?"[,;\s]+\w*[\[\(])]]></rule> |
| | | <description>Finds attribute breaking injections including whitespace attacks</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>3</id> |
| | | <rule><![CDATA[(?:^>[\w\s]*<\/?\w{2,}>)]]></rule> |
| | | <description>Finds unquoted attribute breaking injections</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>2</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>4</id> |
| | | <rule><![CDATA[(?:[+\/]\s*name[\W\d]*[)+])|(?:;\W*url\s*=)|(?:[^\w\s\/?:>]\s*(?:location|referrer|name)\s*[^\/\w\s-])]]></rule> |
| | | <description>Detects url-, name-, JSON, and referrer-contained payload attacks</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>5</id> |
| | | <rule><![CDATA[(?:\W\s*hash\s*[^\w\s-])|(?:\w+=\W*[^,]*,[^\s(]\s*\()|(?:\?"[^\s"]":)|(?:(?<!\/)__[a-z]+__)|(?:(?:^|[\s)\]\}])(?:s|g)etter\s*=)]]></rule> |
| | | <description>Detects hash-contained xss payload attacks, setter usage and property overloading</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>6</id> |
| | | <rule><![CDATA[(?:with\s*\(\s*.+\s*\)\s*\w+\s*\()|(?:(?:do|while|for)\s*\([^)]*\)\s*\{)|(?:\/[\w\s]*\[\W*\w)]]></rule> |
| | | <description>Detects self contained xss via with(), common loops and regex to string conversion</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>7</id> |
| | | <rule><![CDATA[(?:[=(].+\?.+:)|(?:with\([^)]*\)\))|(?:\.\s*source\W)]]></rule> |
| | | <description>Detects JavaScript with(), ternary operators and XML predicate attacks</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>8</id> |
| | | <rule><![CDATA[(?:\/\w*\s*\)\s*\()|(?:\([\w\s]+\([\w\s]+\)[\w\s]+\))|(?:(?<!(?:mozilla\/\d\.\d\s))\([^)[]+\[[^\]]+\][^)]*\))|(?:[^\s!][{([][^({[]+[{([][^}\])]+[}\])][\s+",\d]*[}\])])|(?:"\)?\]\W*\[)|(?:=\s*[^\s:;]+\s*[{([][^}\])]+[}\])];)]]></rule> |
| | | <description>Detects self-executing JavaScript functions</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>9</id> |
| | | <rule><![CDATA[(?:\\u00[a-f0-9]{2})|(?:\\x0*[a-f0-9]{2})|(?:\\\d{2,3})]]></rule> |
| | | <description>Detects the IE octal, hex and unicode entities</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>2</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>10</id> |
| | | <rule><![CDATA[(?:(?:\/|\\)?\.+(\/|\\)(?:\.+)?)|(?:\w+\.exe\??\s)|(?:;\s*\w+\s*\/[\w*-]+\/)|(?:\d\.\dx\|)|(?:%(?:c0\.|af\.|5c\.))|(?:\/(?:%2e){2})]]></rule> |
| | | <description>Detects basic directory traversal</description> |
| | | <tags> |
| | | <tag>dt</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>11</id> |
| | | <rule><![CDATA[(?:%c0%ae\/)|(?:(?:\/|\\)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:\/|\\))|(?:(?:\/|\\)inetpub|localstart\.asp|boot\.ini)]]></rule> |
| | | <description>Detects specific directory and path traversal</description> |
| | | <tags> |
| | | <tag>dt</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>12</id> |
| | | <rule><![CDATA[(?:etc\/\W*passwd)]]></rule> |
| | | <description>Detects etc/passwd inclusion attempts</description> |
| | | <tags> |
| | | <tag>dt</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>13</id> |
| | | <rule><![CDATA[(?:%u(?:ff|00|e\d)\w\w)|(?:(?:%(?:e\w|c[^3\W]|))(?:%\w\w)(?:%\w\w)?)]]></rule> |
| | | <description>Detects halfwidth/fullwidth encoded unicode HTML breaking attempts</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>3</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>14</id> |
| | | <rule><![CDATA[(?:#@~\^\w+)|(?:\w+script:|@import[^\w]|;base64|base64,)|(?:\w\s*\([\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+\))]]></rule> |
| | | <description>Detects possible includes, VBSCript/JScript encodeed and packed functions</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>15</id> |
| | | <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:create(?:element|attribute|textnode)|[a-z]+events?|setattribute|getelement\w+|appendchild|createrange|createcontextualfragment|removenode|parentnode|decodeuricomponent|\wettimeout|(?:ms)?setimmediate|option|useragent)(?(1)[^\w%"]|(?:\s*[^@\s\w%",.+\-]))]]></rule> |
| | | <description>Detects JavaScript DOM/miscellaneous properties and methods</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>16</id> |
| | | <rule><![CDATA[([^*\s\w,.\/?+-]\s*)?(?<![a-mo-z]\s)(?<![a-z\/_@])(\s*return\s*)?(?:alert|inputbox|showmod(?:al|eless)dialog|showhelp|infinity|isnan|isnull|iterator|msgbox|executeglobal|expression|prompt|write(?:ln)?|confirm|dialog|urn|(?:un)?eval|exec|execscript|tostring|status|execute|window|unescape|navigate|jquery|getscript|extend|prototype)(?(1)[^\w%"]|(?:\s*[^@\s\w%",.:\/+\-]))]]></rule> |
| | | <description>Detects possible includes and typical script methods</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>17</id> |
| | | <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@])(\s*return\s*)?(?:hash|name|href|navigateandfind|source|pathname|close|constructor|port|protocol|assign|replace|back|forward|document|ownerdocument|window|top|this|self|parent|frames|_?content|date|cookie|innerhtml|innertext|csstext+?|outerhtml|print|moveby|resizeto|createstylesheet|stylesheets)(?(1)[^\w%"]|(?:\s*[^@\/\s\w%.+\-]))]]></rule> |
| | | <description>Detects JavaScript object properties and methods</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>18</id> |
| | | <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:join|pop|push|reverse|reduce|concat|map|shift|sp?lice|sort|unshift)(?(1)[^\w%"]|(?:\s*[^@\s\w%,.+\-]))]]></rule> |
| | | <description>Detects JavaScript array properties and methods</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>19</id> |
| | | <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:set|atob|btoa|charat|charcodeat|charset|concat|crypto|frames|fromcharcode|indexof|lastindexof|match|navigator|toolbar|menubar|replace|regexp|slice|split|substr|substring|escape|\w+codeuri\w*)(?(1)[^\w%"]|(?:\s*[^@\s\w%,.+\-]))]]></rule> |
| | | <description>Detects JavaScript string properties and methods</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>20</id> |
| | | <rule><![CDATA[(?:\)\s*\[)|([^*":\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z_@\|])(\s*return\s*)?(?:globalstorage|sessionstorage|postmessage|callee|constructor|content|domain|prototype|try|catch|top|call|apply|url|function|object|array|string|math|if|for\s*(?:each)?|elseif|case|switch|regex|boolean|location|(?:ms)?setimmediate|settimeout|setinterval|void|setexpression|namespace|while)(?(1)[^\w%"]|(?:\s*[^@\s\w%".+\-\/]))]]></rule> |
| | | <description>Detects JavaScript language constructs</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>21</id> |
| | | <rule><![CDATA[(?:,\s*(?:alert|showmodaldialog|eval)\s*,)|(?::\s*eval\s*[^\s])|([^:\s\w,.\/?+-]\s*)?(?<![a-z\/_@])(\s*return\s*)?(?:(?:document\s*\.)?(?:.+\/)?(?:alert|eval|msgbox|showmod(?:al|eless)dialog|showhelp|prompt|write(?:ln)?|confirm|dialog|open))\s*(?:[^.a-z\s\-]|(?:\s*[^\s\w,.@\/+-]))|(?:java[\s\/]*\.[\s\/]*lang)|(?:\w\s*=\s*new\s+\w+)|(?:&\s*\w+\s*\)[^,])|(?:\+[\W\d]*new\s+\w+[\W\d]*\+)|(?:document\.\w)]]></rule> |
| | | <description>Detects very basic XSS probings</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>3</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>22</id> |
| | | <rule><![CDATA[(?:=\s*(?:top|this|window|content|self|frames|_content))|(?:\/\s*[gimx]*\s*[)}])|(?:[^\s]\s*=\s*script)|(?:\.\s*constructor)|(?:default\s+xml\s+namespace\s*=)|(?:\/\s*\+[^+]+\s*\+\s*\/)]]></rule> |
| | | <description>Detects advanced XSS probings via Script(), RexExp, constructors and XML namespaces</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>23</id> |
| | | <rule><![CDATA[(?:\.\s*\w+\W*=)|(?:\W\s*(?:location|document)\s*\W[^({[;]+[({[;])|(?:\(\w+\?[:\w]+\))|(?:\w{2,}\s*=\s*\d+[^&\w]\w+)|(?:\]\s*\(\s*\w+)]]></rule> |
| | | <description>Detects JavaScript location/document property access and window access obfuscation</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>24</id> |
| | | <rule><![CDATA[(?:[".]script\s*\()|(?:\$\$?\s*\(\s*[\w"])|(?:\/[\w\s]+\/\.)|(?:=\s*\/\w+\/\s*\.)|(?:(?:this|window|top|parent|frames|self|content)\[\s*[(,"]*\s*[\w\$])|(?:,\s*new\s+\w+\s*[,;)])]]></rule> |
| | | <description>Detects basic obfuscated JavaScript script injections</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>25</id> |
| | | <rule><![CDATA[(?:=\s*[$\w]\s*[\(\[])|(?:\(\s*(?:this|top|window|self|parent|_?content)\s*\))|(?:src\s*=s*(?:\w+:|\/\/))|(?:\w+\[("\w+"|\w+\|\|))|(?:[\d\W]\|\|[\d\W]|\W=\w+,)|(?:\/\s*\+\s*[a-z"])|(?:=\s*\$[^([]*\()|(?:=\s*\(\s*")]]></rule> |
| | | <description>Detects obfuscated JavaScript script injections</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>26</id> |
| | | <rule><![CDATA[(?:[^:\s\w]+\s*[^\w\/](href|protocol|host|hostname|pathname|hash|port|cookie)[^\w])]]></rule> |
| | | <description>Detects JavaScript cookie stealing and redirection attempts</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>27</id> |
| | | <rule><![CDATA[(?:(?:vbs|vbscript|data):.*[,+])|(?:\w+\s*=\W*(?!https?)\w+:)|(jar:\w+:)|(=\s*"?\s*vbs(?:ript)?:)|(language\s*=\s?"?\s*vbs(?:ript)?)|on\w+\s*=\*\w+\-"?]]></rule> |
| | | <description>Detects data: URL injections, VBS injections and common URI schemes</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>28</id> |
| | | <rule><![CDATA[(?:firefoxurl:\w+\|)|(?:(?:file|res|telnet|nntp|news|mailto|chrome)\s*:\s*[%&#xu\/]+)|(wyciwyg|firefoxurl\s*:\s*\/\s*\/)]]></rule> |
| | | <description>Detects IE firefoxurl injections, cache poisoning attempts and local file inclusion/execution</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>29</id> |
| | | <rule><![CDATA[(?:binding\s?=|moz-binding|behavior\s?=)|(?:[\s\/]style\s*=\s*[-\\])]]></rule> |
| | | <description>Detects bindings and behavior injections</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>30</id> |
| | | <rule><![CDATA[(?:=\s*\w+\s*\+\s*")|(?:\+=\s*\(\s")|(?:!+\s*[\d.,]+\w?\d*\s*\?)|(?:=\s*\[s*\])|(?:"\s*\+\s*")|(?:[^\s]\[\s*\d+\s*\]\s*[;+])|(?:"\s*[&|]+\s*")|(?:\/\s*\?\s*")|(?:\/\s*\)\s*\[)|(?:\d\?.+:\d)|(?:]\s*\[\W*\w)|(?:[^\s]\s*=\s*\/)]]></rule> |
| | | <description>Detects common XSS concatenation patterns 1/2</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>31</id> |
| | | <rule><![CDATA[(?:=\s*\d*\.\d*\?\d*\.\d*)|(?:[|&]{2,}\s*")|(?:!\d+\.\d*\?")|(?:\/:[\w.]+,)|(?:=[\d\W\s]*\[[^]]+\])|(?:\?\w+:\w+)]]></rule> |
| | | <description>Detects common XSS concatenation patterns 2/2</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>32</id> |
| | | <rule><![CDATA[(?:[^\w\s=]on(?!g\>)\w+[^=_+-]*=[^$]+(?:\W|\>)?)]]></rule> |
| | | <description>Detects possible event handlers</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>33</id> |
| | | <rule><![CDATA[(?:\<\w*:?\s(?:[^\>]*)t(?!rong))|(?:\<scri)|(<\w+:\w+)]]></rule> |
| | | <description>Detects obfuscated script tags and XML wrapped HTML</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>34</id> |
| | | <rule><![CDATA[(?:\<\/\w+\s\w+)|(?:@(?:cc_on|set)[\s@,"=])]]></rule> |
| | | <description>Detects attributes in closing tags and conditional compilation tokens</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>35</id> |
| | | <rule><![CDATA[(?:--[^\n]*$)|(?:\<!-|-->)|(?:[^*]\/\*|\*\/[^*])|(?:(?:[\W\d]#|--|{)$)|(?:\/{3,}.*$)|(?:<!\[\W)|(?:\]!>)]]></rule> |
| | | <description>Detects common comment types</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>3</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>37</id> |
| | | <rule><![CDATA[(?:\<base\s+)|(?:<!(?:element|entity|\[CDATA))]]></rule> |
| | | <description>Detects base href injections and XML entity injections</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>38</id> |
| | | <rule><![CDATA[(?:\<[\/]?(?:[i]?frame|applet|isindex|marquee|keygen|script|audio|video|input|button|textarea|style|base|body|meta|link|object|embed|param|plaintext|xm\w+|image|im(?:g|port)))]]></rule> |
| | | <description>Detects possibly malicious html elements including some attributes</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>39</id> |
| | | <rule><![CDATA[(?:\\x[01fe][\db-ce-f])|(?:%[01fe][\db-ce-f])|(?:&#[01fe][\db-ce-f])|(?:\\[01fe][\db-ce-f])|(?:&#x[01fe][\db-ce-f])]]></rule> |
| | | <description>Detects nullbytes and other dangerous characters</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>xss</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>40</id> |
| | | <rule><![CDATA[(?:\)\s*when\s*\d+\s*then)|(?:"\s*(?:#|--|{))|(?:\/\*!\s?\d+)|(?:ch(?:a)?r\s*\(\s*\d)|(?:(?:(n?and|x?or|not)\s+|\|\||\&\&)\s*\w+\()]]></rule> |
| | | <description>Detects MySQL comments, conditions and ch(a)r injections</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>41</id> |
| | | <rule><![CDATA[(?:[\s()]case\s*\()|(?:\)\s*like\s*\()|(?:having\s*[^\s]+\s*[^\w\s])|(?:if\s?\([\d\w]\s*[=<>~])]]></rule> |
| | | <description>Detects conditional SQL injection attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>42</id> |
| | | <rule><![CDATA[(?:"\s*or\s*"?\d)|(?:\\x(?:23|27|3d))|(?:^.?"$)|(?:(?:^["\\]*(?:[\d"]+|[^"]+"))+\s*(?:n?and|x?or|not|\|\||\&\&)\s*[\w"[+&!@(),.-])|(?:[^\w\s]\w+\s*[|-]\s*"\s*\w)|(?:@\w+\s+(and|or)\s*["\d]+)|(?:@[\w-]+\s(and|or)\s*[^\w\s])|(?:[^\w\s:]\s*\d\W+[^\w\s]\s*".)|(?:\Winformation_schema|table_name\W)]]></rule> |
| | | <description>Detects classic SQL injection probings 1/2</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>43</id> |
| | | <rule><![CDATA[(?:"\s*\*.+(?:or|id)\W*"\d)|(?:\^")|(?:^[\w\s"-]+(?<=and\s)(?<=or\s)(?<=xor\s)(?<=nand\s)(?<=not\s)(?<=\|\|)(?<=\&\&)\w+\()|(?:"[\s\d]*[^\w\s]+\W*\d\W*.*["\d])|(?:"\s*[^\w\s?]+\s*[^\w\s]+\s*")|(?:"\s*[^\w\s]+\s*[\W\d].*(?:#|--))|(?:".*\*\s*\d)|(?:"\s*or\s[^\d]+[\w-]+.*\d)|(?:[()*<>%+-][\w-]+[^\w\s]+"[^,])]]></rule> |
| | | <description>Detects classic SQL injection probings 2/2</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>44</id> |
| | | <rule><![CDATA[(?:\d"\s+"\s+\d)|(?:^admin\s*"|(\/\*)+"+\s?(?:--|#|\/\*|{)?)|(?:"\s*or[\w\s-]+\s*[+<>=(),-]\s*[\d"])|(?:"\s*[^\w\s]?=\s*")|(?:"\W*[+=]+\W*")|(?:"\s*[!=|][\d\s!=+-]+.*["(].*$)|(?:"\s*[!=|][\d\s!=]+.*\d+$)|(?:"\s*like\W+[\w"(])|(?:\sis\s*0\W)|(?:where\s[\s\w\.,-]+\s=)|(?:"[<>~]+")]]></rule> |
| | | <description>Detects basic SQL authentication bypass attempts 1/3</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>45</id> |
| | | <rule><![CDATA[(?:union\s*(?:all|distinct|[(!@]*)\s*[([]*\s*select)|(?:\w+\s+like\s+\")|(?:like\s*"\%)|(?:"\s*like\W*["\d])|(?:"\s*(?:n?and|x?or|not |\|\||\&\&)\s+[\s\w]+=\s*\w+\s*having)|(?:"\s*\*\s*\w+\W+")|(?:"\s*[^?\w\s=.,;)(]+\s*[(@"]*\s*\w+\W+\w)|(?:select\s*[\[\]()\s\w\.,"-]+from)|(?:find_in_set\s*\()]]></rule> |
| | | <description>Detects basic SQL authentication bypass attempts 2/3</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>46</id> |
| | | <rule><![CDATA[(?:in\s*\(+\s*select)|(?:(?:n?and|x?or|not |\|\||\&\&)\s+[\s\w+]+(?:regexp\s*\(|sounds\s+like\s*"|[=\d]+x))|("\s*\d\s*(?:--|#))|(?:"[%&<>^=]+\d\s*(=|or))|(?:"\W+[\w+-]+\s*=\s*\d\W+")|(?:"\s*is\s*\d.+"?\w)|(?:"\|?[\w-]{3,}[^\w\s.,]+")|(?:"\s*is\s*[\d.]+\s*\W.*")]]></rule> |
| | | <description>Detects basic SQL authentication bypass attempts 3/3</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>47</id> |
| | | <rule><![CDATA[(?:[\d\W]\s+as\s*["\w]+\s*from)|(?:^[\W\d]+\s*(?:union|select|create|rename|truncate|load|alter|delete|update|insert|desc))|(?:(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s+(?:(?:group_)concat|char|load_file)\s?\(?)|(?:end\s*\);)|("\s+regexp\W)|(?:[\s(]load_file\s*\()]]></rule> |
| | | <description>Detects concatenated basic SQL injection and SQLLFI attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>48</id> |
| | | <rule><![CDATA[(?:@.+=\s*\(\s*select)|(?:\d+\s*or\s*\d+\s*[\-+])|(?:\/\w+;?\s+(?:having|and|or|select)\W)|(?:\d\s+group\s+by.+\()|(?:(?:;|#|--)\s*(?:drop|alter))|(?:(?:;|#|--)\s*(?:update|insert)\s*\w{2,})|(?:[^\w]SET\s*@\w+)|(?:(?:n?and|x?or|not |\|\||\&\&)[\s(]+\w+[\s)]*[!=+]+[\s\d]*["=()])]]></rule> |
| | | <description>Detects chained SQL injection attempts 1/2</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>49</id> |
| | | <rule><![CDATA[(?:"\s+and\s*=\W)|(?:\(\s*select\s*\w+\s*\()|(?:\*\/from)|(?:\+\s*\d+\s*\+\s*@)|(?:\w"\s*(?:[-+=|@]+\s*)+[\d(])|(?:coalesce\s*\(|@@\w+\s*[^\w\s])|(?:\W!+"\w)|(?:";\s*(?:if|while|begin))|(?:"[\s\d]+=\s*\d)|(?:order\s+by\s+if\w*\s*\()|(?:[\s(]+case\d*\W.+[tw]hen[\s(])]]></rule> |
| | | <description>Detects chained SQL injection attempts 2/2</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>50</id> |
| | | <rule><![CDATA[(?:(select|;)\s+(?:benchmark|if|sleep)\s*?\(\s*\(?\s*\w+)]]></rule> |
| | | <description>Detects SQL benchmark and sleep injection attempts including conditional queries</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>51</id> |
| | | <rule><![CDATA[(?:create\s+function\s+\w+\s+returns)|(?:;\s*(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*[\[(]?\w{2,})]]></rule> |
| | | <description>Detects MySQL UDF injection and other data/structure manipulation attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>52</id> |
| | | <rule><![CDATA[(?:alter\s*\w+.*character\s+set\s+\w+)|(";\s*waitfor\s+time\s+")|(?:";.*:\s*goto)]]></rule> |
| | | <description>Detects MySQL charset switch and MSSQL DoS attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>53</id> |
| | | <rule><![CDATA[(?:procedure\s+analyse\s*\()|(?:;\s*(declare|open)\s+[\w-]+)|(?:create\s+(procedure|function)\s*\w+\s*\(\s*\)\s*-)|(?:declare[^\w]+[@#]\s*\w+)|(exec\s*\(\s*@)]]></rule> |
| | | <description>Detects MySQL and PostgreSQL stored procedure/function injections</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>54</id> |
| | | <rule><![CDATA[(?:select\s*pg_sleep)|(?:waitfor\s*delay\s?"+\s?\d)|(?:;\s*shutdown\s*(?:;|--|#|\/\*|{))]]></rule> |
| | | <description>Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>55</id> |
| | | <rule><![CDATA[(?:\sexec\s+xp_cmdshell)|(?:"\s*!\s*["\w])|(?:from\W+information_schema\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\s*\([^\)]*)|(?:";?\s*(?:select|union|having)\s*[^\s])|(?:\wiif\s*\()|(?:exec\s+master\.)|(?:union select @)|(?:union[\w(\s]*select)|(?:select.*\w?user\()|(?:into[\s+]+(?:dump|out)file\s*")]]></rule> |
| | | <description>Detects MSSQL code execution and information gathering attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>56</id> |
| | | <rule><![CDATA[(?:merge.*using\s*\()|(execute\s*immediate\s*")|(?:\W+\d*\s*having\s*[^\s\-])|(?:match\s*[\w(),+-]+\s*against\s*\()]]></rule> |
| | | <description>Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>57</id> |
| | | <rule><![CDATA[(?:,.*[)\da-f"]"(?:".*"|\Z|[^"]+))|(?:\Wselect.+\W*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*\(\s*space\s*\()]]></rule> |
| | | <description>Detects MySQL comment-/space-obfuscated injections and backtick termination</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>58</id> |
| | | <rule><![CDATA[(?:@[\w-]+\s*\()|(?:]\s*\(\s*["!]\s*\w)|(?:<[?%](?:php)?.*(?:[?%]>)?)|(?:;[\s\w|]*\$\w+\s*=)|(?:\$\w+\s*=(?:(?:\s*\$?\w+\s*[(;])|\s*".*"))|(?:;\s*\{\W*\w+\s*\()]]></rule> |
| | | <description>Detects code injection attempts 1/3</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>59</id> |
| | | <rule><![CDATA[(?:(?:[;]+|(<[?%](?:php)?)).*(?:define|eval|file_get_contents|include|require|require_once|set|shell_exec|phpinfo|system|passthru|preg_\w+|execute)\s*["(@])]]></rule> |
| | | <description>Detects code injection attempts 2/3</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>60</id> |
| | | <rule><![CDATA[(?:(?:[;]+|(<[?%](?:php)?)).*[^\w](?:echo|print|print_r|var_dump|[fp]open))|(?:;\s*rm\s+-\w+\s+)|(?:;.*{.*\$\w+\s*=)|(?:\$\w+\s*\[\]\s*=\s*)]]></rule> |
| | | <description>Detects code injection attempts 3/3</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>62</id> |
| | | <rule><![CDATA[(?:function[^(]*\([^)]*\))|(?:(?:delete|void|throw|instanceof|new|typeof)[^\w.]+\w+\s*[([])|([)\]]\s*\.\s*\w+\s*=)|(?:\(\s*new\s+\w+\s*\)\.)]]></rule> |
| | | <description>Detects common function declarations and special JS operators</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>63</id> |
| | | <rule><![CDATA[(?:[\w.-]+@[\w.-]+%(?:[01][\db-ce-f])+\w+:)]]></rule> |
| | | <description>Detects common mail header injections</description> |
| | | <tags> |
| | | <tag>id</tag> |
| | | <tag>spam</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>64</id> |
| | | <rule><![CDATA[(?:\.pl\?\w+=\w?\|\w+;)|(?:\|\(\w+=\*)|(?:\*\s*\)+\s*;)]]></rule> |
| | | <description>Detects perl echo shellcode injection and LDAP vectors</description> |
| | | <tags> |
| | | <tag>lfi</tag> |
| | | <tag>rfe</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>65</id> |
| | | <rule><![CDATA[(?:(^|\W)const\s+[\w\-]+\s*=)|(?:(?:do|for|while)\s*\([^;]+;+\))|(?:(?:^|\W)on\w+\s*=[\w\W]*(?:on\w+|alert|eval|print|confirm|prompt))|(?:groups=\d+\(\w+\))|(?:(.)\1{128,})]]></rule> |
| | | <description>Detects basic XSS DoS attempts</description> |
| | | <tags> |
| | | <tag>rfe</tag> |
| | | <tag>dos</tag> |
| | | </tags> |
| | | <impact>5</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>67</id> |
| | | <rule><![CDATA[(?:\({2,}\+{2,}:{2,})|(?:\({2,}\+{2,}:+)|(?:\({3,}\++:{2,})|(?:\$\[!!!\])]]></rule> |
| | | <description>Detects unknown attack vectors based on PHPIDS Centrifuge detection</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | <tag>id</tag> |
| | | <tag>rfe</tag> |
| | | <tag>lfi</tag> |
| | | </tags> |
| | | <impact>7</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>68</id> |
| | | <rule><![CDATA[(?:[\s\/"]+[-\w\/\\\*]+\s*=.+(?:\/\s*>))]]></rule> |
| | | <description>Finds attribute breaking injections including obfuscated attributes</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>69</id> |
| | | <rule><![CDATA[(?:(?:msgbox|eval)\s*\+|(?:language\s*=\*vbscript))]]></rule> |
| | | <description>Finds basic VBScript injection attempts</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>70</id> |
| | | <rule><![CDATA[(?:\[\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\])]]></rule> |
| | | <description>Finds basic MongoDB SQL injection attempts</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>71</id> |
| | | <rule><![CDATA[(?:[\s\d\/"]+(?:on\w+|style|poster|background)=[$"\w])|(?:-type\s*:\s*multipart)]]></rule> |
| | | <description>Finds malicious attribute injection attempts and MHTML attacks</description> |
| | | <tags> |
| | | <tag>xss</tag> |
| | | <tag>csrf</tag> |
| | | </tags> |
| | | <impact>6</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>72</id> |
| | | <rule><![CDATA[(?:(sleep\((\s*)(\d*)(\s*)\)|benchmark\((.*)\,(.*)\)))]]></rule> |
| | | <description>Detects blind sqli tests using sleep() or benchmark().</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>73</id> |
| | | <rule><![CDATA[(?:(\%SYSTEMROOT\%))]]></rule> |
| | | <description>An attacker is trying to locate a file to read or write.</description> |
| | | <tags> |
| | | <tag>files</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>75</id> |
| | | <rule><![CDATA[(?:(((.*)\%[c|d|i|e|f|g|o|s|u|x|p|n]){8}))]]></rule> |
| | | <description>Looking for a format string attack</description> |
| | | <tags> |
| | | <tag>format string</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>76</id> |
| | | <rule><![CDATA[(?:(union(.*)select(.*)from))]]></rule> |
| | | <description>Looking for basic sql injection. Common attack string for mysql, oracle and others.</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>3</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>77</id> |
| | | <rule><![CDATA[(?:^(-0000023456|4294967295|4294967296|2147483648|2147483647|0000012345|-2147483648|-2147483649|0000023456|2.2250738585072007e-308|1e309)$)]]></rule> |
| | | <description>Looking for integer overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the "magic number" crash</description> |
| | | <tags> |
| | | <tag>sqli</tag> |
| | | <tag>id</tag> |
| | | </tags> |
| | | <impact>3</impact> |
| | | </filter> |
| | | <filter> |
| | | <id>78</id> |
| | | <rule><![CDATA[(?:%23.*?%0a)]]></rule> |
| | | <description>Detects SQL comment filter evasion</description> |
| | | <tags> |
| | | <tag>format string</tag> |
| | | </tags> |
| | | <impact>4</impact> |
| | | </filter> |
| | | </filters> |
| New file |
| | |
| | | * |
| | | * The files in the folder IDS and its subfolders belong to the |
| | | * PHP Intrusion Detection System software and are licensed under LGPL. |
| | | * |
| | | * Copyright (c) 2008 PHPIDS group (https://phpids.org) |
| | | * |
| | | * PHPIDS is free software; you can redistribute it and/or modify |
| | | * it under the terms of the GNU Lesser General Public License as published by |
| | | * the Free Software Foundation, version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * PHPIDS is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU Lesser General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU Lesser General Public License |
| | | * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. |
| | |
| | | } |
| | | |
| | | //* 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 |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public function is_superadmin() { |
| | | if($_SESSION['s']['user']['typ'] == 'admin' && $_SESSION['s']['user']['userid'] == 1) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public function has_clients($userid) { |
| | | global $app, $conf; |
| | |
| | | global $app; |
| | | |
| | | $userid = $app->functions->intval($userid); |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$limitname)) $app->error('Invalid limit name '.$limitname); |
| | | |
| | | // simple query cache |
| | | if($this->client_limits===null) |
| | |
| | | |
| | | public function check_module_permissions($module) { |
| | | // Check if the current user has the permissions to access this module |
| | | if(!stristr($_SESSION["s"]["user"]["modules"], $module)) { |
| | | $user_modules = explode(',',$_SESSION["s"]["user"]["modules"]); |
| | | if(!in_array($module,$user_modules)) { |
| | | // echo "LOGIN_REDIRECT:/index.php"; |
| | | header("Location: /index.php"); |
| | | exit; |
| | | } |
| | | } |
| | | |
| | | public function check_security_permissions($permission) { |
| | | |
| | | global $app; |
| | | |
| | | $app->uses('getconf'); |
| | | $security_config = $app->getconf->get_security_config('permissions'); |
| | | |
| | | $security_check = false; |
| | | if($security_config[$permission] == 'yes') $security_check = true; |
| | | if($security_config[$permission] == 'superadmin' && $app->auth->is_superadmin()) $security_check = true; |
| | | if($security_check !== true) { |
| | | $app->error($app->lng('security_check1_txt').' '.$permission.' '.$app->lng('security_check2_txt')); |
| | | } |
| | | |
| | | } |
| | | |
| | | public function get_random_password($length = 8) { |
| | | $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; |
| | |
| | | mysqli_query($this->_iConnId, 'SET NAMES '.$this->dbCharset); |
| | | mysqli_query($this->_iConnId, "SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'"); |
| | | } |
| | | |
| | | private function securityScan($string) { |
| | | global $app, $conf; |
| | | |
| | | // get security config |
| | | if(isset($app)) { |
| | | $app->uses('getconf'); |
| | | $ids_config = $app->getconf->get_security_config('ids'); |
| | | |
| | | if($ids_config['sql_scan_enabled'] == 'yes') { |
| | | |
| | | $string_orig = $string; |
| | | |
| | | //echo $string; |
| | | $chars = array(';', '#', '/*', '*/', '--', '\\\'', '\\"'); |
| | | |
| | | $string = str_replace('\\\\', '', $string); |
| | | $string = preg_replace('/(^|[^\\\])([\'"])\\2/is', '$1', $string); |
| | | $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\])\\2/is', '$1', $string); |
| | | $ok = true; |
| | | |
| | | if(substr_count($string, "`") % 2 != 0 || substr_count($string, "'") % 2 != 0 || substr_count($string, '"') % 2 != 0) { |
| | | $app->log("SQL injection warning (" . $string_orig . ")",2); |
| | | $ok = false; |
| | | } else { |
| | | foreach($chars as $char) { |
| | | if(strpos($string, $char) !== false) { |
| | | $ok = false; |
| | | $app->log("SQL injection warning (" . $string_orig . ")",2); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if($ok == true) { |
| | | return true; |
| | | } else { |
| | | if($ids_config['sql_scan_action'] == 'warn') { |
| | | // we return false in warning level. |
| | | return false; |
| | | } else { |
| | | // if sql action = 'block' or anything else then stop here. |
| | | $app->error('Possible SQL injection. All actions have been logged.'); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private function _query($sQuery = '') { |
| | | global $app; |
| | |
| | | |
| | | $aArgs = func_get_args(); |
| | | $sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs); |
| | | $this->securityScan($sQuery); |
| | | |
| | | $this->_iQueryId = mysqli_query($this->_iConnId, $sQuery); |
| | | if (!$this->_iQueryId) { |
| | |
| | | public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new, $force_update = false) { |
| | | global $app, $conf; |
| | | |
| | | // Insert backticks only for incomplete table names. |
| | | if(stristr($db_table, '.')) { |
| | | $escape = ''; |
| | | } else { |
| | | $escape = '`'; |
| | | } |
| | | // Check fields |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$primary_field)) $app->error('Invalid primary field '.$primary_field.' in table '.$db_table); |
| | | |
| | | $primary_field = $this->quote($primary_field); |
| | | $primary_id = intval($primary_id); |
| | | |
| | | if($force_update == true) { |
| | | //* We force a update even if no record has changed |
| | |
| | | //** Inserts a record and saves the changes into the datalog |
| | | public function datalogInsert($tablename, $insert_data, $index_field) { |
| | | global $app; |
| | | |
| | | |
| | | // Check fields |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); |
| | | |
| | | if(is_array($insert_data)) { |
| | | $key_str = ''; |
| | | $val_str = ''; |
| | |
| | | public function datalogUpdate($tablename, $update_data, $index_field, $index_value, $force_update = false) { |
| | | global $app; |
| | | |
| | | // Check fields |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); |
| | | |
| | | $old_rec = $this->queryOneRecord("SELECT * FROM ?? WHERE ?? = ?", $tablename, $index_field, $index_value); |
| | | |
| | | if(is_array($update_data)) { |
| | |
| | | public function datalogDelete($tablename, $index_field, $index_value) { |
| | | global $app; |
| | | |
| | | // Check fields |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); |
| | | if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); |
| | | |
| | | $old_rec = $this->queryOneRecord("SELECT * FROM ?? WHERE ?? = ?", $tablename, $index_field, $index_value); |
| | | $this->query("DELETE FROM ?? WHERE ?? = ?", $tablename, $index_field, $index_value); |
| | | $new_rec = array(); |
| | |
| | | } |
| | | |
| | | $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'])){ |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | ?> |
| | |
| | | class getconf { |
| | | |
| | | private $config; |
| | | private $security_config; |
| | | |
| | | public function get_server_config($server_id, $section = '') { |
| | | global $app; |
| | |
| | | } |
| | | return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; |
| | | } |
| | | |
| | | // Function has been moved to $app->get_security_config($section) |
| | | public function get_security_config($section = '') { |
| | | global $app; |
| | | |
| | | if(is_array($this->security_config)) { |
| | | return ($section == '') ? $this->security_config : $this->security_config[$section]; |
| | | } else { |
| | | $app->uses('ini_parser'); |
| | | $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; |
| | | if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); |
| | | $this->security_config = $app->ini_parser->parse_ini_string(file_get_contents($security_config_path)); |
| | | |
| | | return ($section == '') ? $this->security_config : $this->security_config[$section]; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| New file |
| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2014, Till Brehm, ISPConfig UG |
| | | 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 ids { |
| | | |
| | | public function start() |
| | | { |
| | | global $app, $conf; |
| | | |
| | | $security_config = $app->getconf->get_security_config('ids'); |
| | | |
| | | set_include_path( |
| | | get_include_path() |
| | | . PATH_SEPARATOR |
| | | . ISPC_CLASS_PATH.'/' |
| | | ); |
| | | |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Init.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Monitor.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Filter.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Filter/Storage.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Report.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Event.php'); |
| | | require_once(ISPC_CLASS_PATH.'/IDS/Converter.php'); |
| | | |
| | | $ids_request = array( |
| | | 'GET' => $_GET, |
| | | 'POST' => $_POST, |
| | | 'COOKIE' => $_COOKIE |
| | | ); |
| | | |
| | | $ids_init = IDS\Init::init(ISPC_CLASS_PATH.'/IDS/Config/Config.ini.php'); |
| | | |
| | | $ids_init->config['General']['base_path'] = ISPC_CLASS_PATH.'/IDS/'; |
| | | $ids_init->config['General']['tmp_path'] = '../../../temp'; |
| | | $ids_init->config['General']['use_base_path'] = true; |
| | | $ids_init->config['Caching']['caching'] = 'none'; |
| | | $ids_init->config['Logging']['path'] = '../../../temp/ids.log'; |
| | | |
| | | $current_script_name = trim($_SERVER['SCRIPT_NAME']); |
| | | |
| | | // Get whitelist |
| | | $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist'; |
| | | if(is_file('/usr/local/ispconfig/security/ids.whitelist.custom')) $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist.custom'; |
| | | if(!is_file($whitelist_path)) $whitelist_path = realpath(ISPC_ROOT_PATH.'/../security/ids.whitelist'); |
| | | |
| | | $whitelist_lines = file($whitelist_path); |
| | | if(is_array($whitelist_lines)) { |
| | | foreach($whitelist_lines as $line) { |
| | | $line = trim($line); |
| | | if(substr($line,0,1) != '#') { |
| | | list($user,$path,$varname) = explode(':',$line); |
| | | if($current_script_name == $path) { |
| | | if($user = 'any' |
| | | || ($user == 'user' && ($_SESSION['s']['user']['typ'] == 'user' || $_SESSION['s']['user']['typ'] == 'admin')) |
| | | || ($user == 'admin' && $_SESSION['s']['user']['typ'] == 'admin')) { |
| | | $ids_init->config['General']['exceptions'][] = $varname; |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // Get HTML fields |
| | | $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield'; |
| | | if(is_file('/usr/local/ispconfig/security/ids.htmlfield.custom')) $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield.custom'; |
| | | if(!is_file($htmlfield_path)) $htmlfield_path = realpath(ISPC_ROOT_PATH.'/../security/ids.htmlfield'); |
| | | |
| | | $htmlfield_lines = file($htmlfield_path); |
| | | if(is_array($htmlfield_lines)) { |
| | | foreach($htmlfield_lines as $line) { |
| | | $line = trim($line); |
| | | if(substr($line,0,1) != '#') { |
| | | list($user,$path,$varname) = explode(':',$line); |
| | | if($current_script_name == $path) { |
| | | if($user = 'any' |
| | | || ($user == 'user' && ($_SESSION['s']['user']['typ'] == 'user' || $_SESSION['s']['user']['typ'] == 'admin')) |
| | | || ($user == 'admin' && $_SESSION['s']['user']['typ'] == 'admin')) { |
| | | $ids_init->config['General']['html'][] = $varname; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | $ids = new IDS\Monitor($ids_init); |
| | | $ids_result = $ids->run($ids_request); |
| | | |
| | | if (!$ids_result->isEmpty()) { |
| | | |
| | | $impact = $ids_result->getImpact(); |
| | | |
| | | if($impact >= $security_config['ids_log_level']) { |
| | | $ids_log = ISPC_ROOT_PATH.'/temp/ids.log'; |
| | | if(!is_file($ids_log)) touch($ids_log); |
| | | |
| | | $user = isset($_SESSION['s']['user']['typ'])?$_SESSION['s']['user']['typ']:'any'; |
| | | |
| | | $log_lines = ''; |
| | | foreach ($ids_result->getEvents() as $event) { |
| | | $log_lines .= $user.':'.$current_script_name.':'.$event->getName()."\n"; |
| | | } |
| | | file_put_contents($ids_log,$log_lines,FILE_APPEND); |
| | | |
| | | } |
| | | |
| | | if($impact >= $security_config['ids_warn_level']) { |
| | | $app->log("PHP IDS Alert.".$ids_result, 2); |
| | | } |
| | | |
| | | if($impact >= $security_config['ids_block_level']) { |
| | | $app->error("Possible attack detected. This action has been logged.",'', true, 2); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | ?> |
| | |
| | | * @access private |
| | | */ |
| | | private function _smtp_login() { |
| | | $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'ssl://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); |
| | | $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'tls://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); |
| | | $response = fgets($this->_smtp_conn, 515); |
| | | if(empty($this->_smtp_conn)) return false; |
| | | |
| | |
| | | $url_info = parse_url($url); |
| | | if(isset($url_info['scheme']) && $url_info['scheme'] == 'https') { |
| | | $port = isset($url_info['port']) ? $url_info['port'] : 443; |
| | | //@$fp = stream_socket_client('ssl://' . $url_info['host'] . ':' . $port, $errno, $errstr, 10, STREAM_CLIENT_CONNECT, stream_context_create(array('ssl' => array('ciphers' => 'ALL:!AES:!3DES:!RC4:@STRENGTH')))); |
| | | @$fp = fsockopen('sslv3://' . $url_info['host'], $port, $errno, $errstr, 10); |
| | | @$fp = fsockopen('tls://' . $url_info['host'], $port, $errno, $errstr, 10); |
| | | } else { |
| | | $port = isset($url_info['port']) ? $url_info['port'] : 80; |
| | | @$fp = fsockopen($url_info['host'], $port, $errno, $errstr, 10); |
| | |
| | | $url_info = parse_url($url); |
| | | if((isset($url_info['scheme']) && $url_info['scheme'] == 'https') || $url_info['port'] == 443) { |
| | | $port = (!isset($url_info['port']) || !$url_info['port'] || $url_info['port'] == 443 || $url_info['port'] == 80) ? 443 : $url_info['port']; |
| | | //@$fp = stream_socket_client('ssl://' . $url_info['host'] . ':' . $port, $errno, $errstr, 10, STREAM_CLIENT_CONNECT, stream_context_create(array('ssl' => array('ciphers' => 'ALL:!AES:!3DES:!RC4:@STRENGTH')))); |
| | | @$fp = fsockopen('sslv3://' . $url_info['host'], $port, $errno, $errstr, 10); |
| | | @$fp = fsockopen('tls://' . $url_info['host'], $port, $errno, $errstr, 10); |
| | | } else { |
| | | $port = isset($url_info['port']) ? $url_info['port'] : 80; |
| | | @$fp = fsockopen($url_info['host'], $port, $errno, $errstr, 10); |
| | |
| | | $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); |
| | |
| | | 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){ |
| | |
| | | |
| | | //* 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; |
| | |
| | | |
| | | public function client_add($session_id, $reseller_id, $params) |
| | | { |
| | | global $app; |
| | | |
| | | if (!$this->checkPerm($session_id, 'client_add')) |
| | | { |
| | | throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); |
| | | return false; |
| | | } |
| | | if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; |
| | | $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $params); |
| | | |
| | | if($params['parent_client_id']) { |
| | | // check if this one is reseller |
| | | $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($params['parent_client_id'])); |
| | | if($check['limit_client'] == 0) { |
| | | $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); |
| | | return false; |
| | | } |
| | | |
| | | if(isset($params['limit_client']) && $params['limit_client'] != 0) { |
| | | $this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.'); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $params); |
| | | |
| | | return $affected_rows; |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | $app->uses('remoting_lib'); |
| | | $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php'); |
| | | $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php'); |
| | | $old_rec = $app->remoting_lib->getDataRecord($client_id); |
| | | |
| | | //* merge old record with params, so only new values have to be set in $params |
| | | $params = $app->functions->array_merge($old_rec,$params); |
| | | |
| | | if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; |
| | | |
| | | if($params['parent_client_id']) { |
| | | // check if this one is reseller |
| | | $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($params['parent_client_id'])); |
| | | if($check['limit_client'] == 0) { |
| | | $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); |
| | | return false; |
| | | } |
| | | |
| | | if(isset($params['limit_client']) && $params['limit_client'] != 0) { |
| | | $this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.'); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // we need the previuos templates assigned here |
| | | $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id); |
| | |
| | | } |
| | | |
| | | |
| | | if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; |
| | | $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update'); |
| | | $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update'); |
| | | |
| | | $app->remoting_lib->ispconfig_sysuser_update($params, $client_id); |
| | | |
| | |
| | | // 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); |
| | | |
| | | } |
| | |
| | | /*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); |
| | | //} |
| | | |
| | |
| | | public function processDatabaseInsert($form_page) { |
| | | global $app; |
| | | |
| | | /*if($form_page->dataRecord["parent_domain_id"] > 0) { |
| | | $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); |
| | | |
| | | //* The Database user shall be owned by the same group then the website |
| | | $sys_groupid = $web['sys_groupid']; |
| | | } else { |
| | | $sys_groupid = $form_page->dataRecord['sys_groupid']; |
| | | } |
| | | |
| | | |
| | | if($form_page->dataRecord['database_user_id']) { |
| | | // check if there has already been a database on this server with that user |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); |
| | | |
| | | if($check && $check['cnt'] < 1) { |
| | | // we need to make a datalog insert for the database users that are connected to this database |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if($form_page->dataRecord['database_ro_user_id']) { |
| | | // check if there has already been a database on this server with that user |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); |
| | | |
| | | if($check && $check['cnt'] < 1) { |
| | | // we need to make a datalog insert for the database users that are connected to this database |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); |
| | | } |
| | | } |
| | | }*/ |
| | | $this->processDatabaseUpdate($form_page); |
| | | } |
| | | |
| | | public function processDatabaseUpdate($form_page) { |
| | | global $app; |
| | | |
| | | /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($form_page->id)); |
| | | if($form_page->dataRecord["parent_domain_id"] > 0) { |
| | | $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); |
| | | |
| | | if($form_page->dataRecord["parent_domain_id"] > 0) { |
| | | $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); |
| | | //* The Database user shall be owned by the same group then the website |
| | | $sys_groupid = $app->functions->intval($web['sys_groupid']); |
| | | $backup_interval = $app->db->quote($web['backup_interval']); |
| | | $backup_copies = $app->functions->intval($web['backup_copies']); |
| | | |
| | | //* The Database user shall be owned by the same group then the website |
| | | $sys_groupid = $web['sys_groupid']; |
| | | } else { |
| | | $sys_groupid = $form_page->dataRecord['sys_groupid']; |
| | | } |
| | | |
| | | // check if database user has changed |
| | | if($old_record['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_ro_user_id']) { |
| | | // check if any database on the server still uses this one |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); |
| | | if($check['cnt'] < 1) { |
| | | // send a datalog delete |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); |
| | | } |
| | | } |
| | | } |
| | | // check if readonly database user has changed |
| | | if($old_record['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_user_id']) { |
| | | // check if any database on the server still uses this one |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); |
| | | if($check['cnt'] < 1) { |
| | | // send a datalog delete |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | /*if($form_page->dataRecord['database_user_id']) { |
| | | // check if there has already been a database on this server with that user |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); |
| | | |
| | | if($check && $check['cnt'] < 1) { |
| | | // we need to make a datalog insert for the database users that are connected to this database |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if($form_page->dataRecord['database_ro_user_id']) { |
| | | // check if there has already been a database on this server with that user |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); |
| | | |
| | | if($check && $check['cnt'] < 1) { |
| | | // we need to make a datalog insert for the database users that are connected to this database |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $form_page->dataRecord['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$form_page->id; |
| | | $app->db->query($sql); |
| | | } |
| | | } |
| | | |
| | | public function processDatabaseDelete($primary_id) { |
| | | global $app; |
| | | |
| | | /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($primary_id)); |
| | | if($old_record['database_user_id']) { |
| | | // check if any database on the server still uses this one |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); |
| | | if($check['cnt'] < 1) { |
| | | // send a datalog delete |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $old_record['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); |
| | | } |
| | | } |
| | | } |
| | | if($old_record['database_ro_user_id']) { |
| | | // check if any database on the server still uses this one |
| | | $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); |
| | | if($check['cnt'] < 1) { |
| | | // send a datalog delete |
| | | $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); |
| | | if($db_user) { |
| | | $db_user['server_id'] = $old_record['server_id']; |
| | | $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | } |
| | | |
| | |
| | | This function checks if a user has the parmissions $perm for the data record with the ID $record_id |
| | | If record_id = 0, the the permissions are tested against the defaults of the form file. |
| | | */ |
| | | |
| | | function checkPerm($record_id, $perm) { |
| | | global $app; |
| | | |
| | |
| | | */ |
| | | 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'); |
| | |
| | | unset($tmp_recordid); |
| | | |
| | | $querystring = str_replace("{AUTHSQL}", $this->getAuthSQL('r'), $querystring); |
| | | $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', array($this, 'table_auth_sql'), $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); |
| | |
| | | |
| | | } |
| | | |
| | | /* |
| | | function table_auth_sql($matches){ |
| | | return $this->getAuthSQL('r', $matches[1]); |
| | | } |
| | | |
| | | */ |
| | | |
| | | /** |
| | | * Get the key => value array of a form filled from a datasource definitiom |
| | | * |
| | |
| | | case 'TEXT': |
| | | $type = 'text'; |
| | | $typevalue = ''; |
| | | $defaultValue = 'NULL'; |
| | | $defaultValue = NULL; |
| | | break; |
| | | case 'DATE': |
| | | $type = 'date'; |
| | |
| | | $result = $this->_check_unique($field_value . '.' . $check_domain, true); |
| | | if(!$result) return $this->get_error('domain_error_autosub'); |
| | | } |
| | | |
| | | /* Check apache directives */ |
| | | function web_apache_directives($field_name, $field_value, $validator) { |
| | | global $app; |
| | | |
| | | if(trim($field_value) != '') { |
| | | $security_config = $app->getconf->get_security_config('ids'); |
| | | |
| | | if($security_config['apache_directives_scan_enabled'] == 'yes') { |
| | | |
| | | // Get blacklist |
| | | $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist'; |
| | | if(is_file('/usr/local/ispconfig/security/apache_directives.blacklist.custom')) $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist.custom'; |
| | | if(!is_file($blacklist_path)) $blacklist_path = realpath(ISPC_ROOT_PATH.'/../security/apache_directives.blacklist'); |
| | | |
| | | $directives = explode("\n",$field_value); |
| | | $regex = explode("\n",file_get_contents($blacklist_path)); |
| | | $blocked = false; |
| | | $blocked_line = ''; |
| | | |
| | | if(is_array($directives) && is_array($regex)) { |
| | | foreach($directives as $directive) { |
| | | $directive = trim($directive); |
| | | foreach($regex as $r) { |
| | | if(preg_match(trim($r),$directive)) { |
| | | $blocked = true; |
| | | $blocked_line .= $directive.'<br />'; |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if($blocked === true) { |
| | | return $this->get_error('apache_directive_blocked_error').' '.$blocked_line; |
| | | } |
| | | } |
| | | |
| | | |
| | | /* internal validator function to match regexp */ |
| | | function _regex_validate($domain_name, $allow_wildcard = false) { |
| | |
| | | } |
| | | |
| | | // 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; |
| | | } |
| | | |
| | |
| | | } |
| | | return true; // admin may always add wildcard domain |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | function ftp_dir($field_name, $field_value, $validator) { |
| | | global $app; |
| | | |
| | | if($app->tform->primary_id == 0) { |
| | | $primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id; |
| | | $primary_id = $app->functions->intval($primary_id); |
| | | |
| | | if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | $ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($app->tform->primary_id)."'"); |
| | | if(!is_array($ftp_data) || $ftp_data["parent_domain_id"] < 1) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | if($primary_id > 0) { |
| | | //* get parent_domain_id from website |
| | | $ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($primary_id)."'"); |
| | | if(!is_array($ftp_data) || $ftp_data["parent_domain_id"] < 1) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | $parent_domain_id = $ftp_data["parent_domain_id"]; |
| | | } |
| | | } else { |
| | | //* get parent_domain_id from dataRecord when we have a insert operation trough remote API |
| | | $parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']); |
| | | } |
| | | |
| | | $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($ftp_data["parent_domain_id"])."'"); |
| | | $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'"); |
| | | if(!is_array($domain_data) || $domain_data["domain_id"] < 1) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | |
| | | $different += 1; |
| | | } |
| | | |
| | | if (preg_match('/[`~!@#$%^&*()_+|\\=-[]}{\';:\/?.>,<" ]/', $password)) { |
| | | if (preg_match('/[`~!@#$%^&*()_+|\\=-\[\]}{\';:\/?.>,<" ]/', $password)) { |
| | | $points += 1; |
| | | $different += 1; |
| | | } |
| | | |
| | | |
| | | if ($points == 0 || $different < 3) { |
| | | if ($length >= 5 && $length <= 6) { |
| | |
| | | $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; |
| | | |
| New file |
| | |
| | | <?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 { |
| | | |
| | | function get_error($errmsg) { |
| | | global $app; |
| | | |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } |
| | | |
| | | /* |
| | | Validator function to check if a given user is ok. |
| | | */ |
| | | function check_sysuser($field_name, $field_value, $validator) { |
| | | global $app; |
| | | |
| | | //* Skip Test if we have the placeholder input of the remote APi for the web_domain system_user field here. |
| | | if($field_name == 'system_user' && $field_value == '-') return ''; |
| | | |
| | | //* Check the input |
| | | $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 $this->get_error($errmsg); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | Validator function to check if a given group is ok. |
| | | */ |
| | | function check_sysgroup($field_name, $field_value, $validator) { |
| | | global $app; |
| | | |
| | | //* Skip Test if we have the placeholder input of the remote APi for the web_domain system_group field here. |
| | | if($field_name == 'system_group' && $field_value == '-') return ''; |
| | | |
| | | $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 $this->get_error($errmsg); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | Validator function to check if a given dir is ok. |
| | | */ |
| | | function shelluser_dir($field_name, $field_value, $validator) { |
| | | global $app; |
| | | |
| | | $primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id; |
| | | $primary_id = $app->functions->intval($primary_id); |
| | | |
| | | if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } |
| | | |
| | | if($primary_id > 0) { |
| | | //* get parent_domain_id from website |
| | | $shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($primary_id)."'"); |
| | | if(!is_array($shell_data) || $shell_data["parent_domain_id"] < 1) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } else { |
| | | $parent_domain_id = $shell_data["parent_domain_id"]; |
| | | } |
| | | } else { |
| | | //* get parent_domain_id from dataRecord when we have a insert operation trough remote API |
| | | $parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']); |
| | | } |
| | | |
| | | $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'"); |
| | | if(!is_array($domain_data) || $domain_data["domain_id"] < 1) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } |
| | | |
| | | $doc_root = $domain_data["document_root"]; |
| | | $is_ok = false; |
| | | if($doc_root == $field_value) $is_ok = true; |
| | | |
| | | $doc_root .= "/"; |
| | | if(substr($field_value, 0, strlen($doc_root)) == $doc_root) $is_ok = true; |
| | | |
| | | if(stristr($field_value, '..') or stristr($field_value, './') or stristr($field_value, '/.')) $is_ok = false; |
| | | |
| | | //* Final check if docroot path of website is >= 5 chars |
| | | if(strlen($doc_root) < 5) $is_ok = false; |
| | | |
| | | if($is_ok == false) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($app->tform->wordbook[$errmsg])) { |
| | | return $app->tform->wordbook[$errmsg]."<br>\r\n"; |
| | | } else { |
| | | return $errmsg."<br>\r\n"; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $wb['strength_5'] = 'Velmi silná'; |
| | | $wb['weak_password_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé a mající sílu \\"{strength}\\".'; |
| | | $wb['weak_password_length_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | | |
| | |
| | | $wb['strength_5'] = 'Sehr stark'; |
| | | $wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \\"{strength}\\" besitzen.'; |
| | | $wb['weak_password_length_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein.'; |
| | | $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; |
| | | $wb['security_check2_txt'] = 'fehlgeschlagen.'; |
| | | ?> |
| | |
| | | $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.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; |
| | | $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; |
| | | $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; |
| | | |
| | | $wb['login_as_txt'] = 'Log in as'; |
| | | $wb["no_domain_perm"] = 'You have no permission for this domain.'; |
| | | $wb["no_destination_perm"] = 'You have no permission for this destination.'; |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | |
| | | ?> |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $wb['weak_password_txt'] = 'La contraseña elegida no cumple las directrices de seguridad. Debe tener al menos {chars} caracteres y una fortaleza \"{strength}\".'; |
| | | $wb['weak_password_length_txt'] = 'La contraseña elegida no cumple las directrices de seguridad. Debe tener al menos {chars} caracteres.'; |
| | | $wb['Firewall'] = 'Cortafuegos'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $wb['number_format_decimals_client'] = '2'; |
| | | $wb['number_format_dec_point'] = ','; |
| | | $wb['number_format_thousands_sep'] = '.'; |
| | | $wb['delete_confirmation'] = 'Da li želite obrisati ovaj DNS zapis?'; |
| | | $wb['error_no_view_permission'] = 'Nemate dozvolu za pregled DNS zapisa ili zapis ne postoji!'; |
| | | $wb['error_no_delete_permission'] = 'Nemate dozvolu za brisanje DNS zapisa!'; |
| | | $wb['delete_confirmation'] = 'Da li sigurno želite obrisati ovaj zapis?'; |
| | | $wb['error_no_view_permission'] = 'Nemate dozvolu za pregled zapisa ili zapis ne postoji!'; |
| | | $wb['error_no_delete_permission'] = 'Nemate dozvolu za brisanje zapisa!'; |
| | | $wb['page_txt'] = 'Stranica'; |
| | | $wb['page_of_txt'] = 'od'; |
| | | $wb['page_and_txt'] = 'i'; |
| | | $wb['page_next_txt'] = 'Naprijed'; |
| | | $wb['page_back_txt'] = 'Natrag'; |
| | | $wb['delete_txt'] = 'Obriši'; |
| | | $wb['filter_txt'] = 'Filter'; |
| | | $wb['filter_txt'] = 'Filtriraj'; |
| | | $wb['add_new_record_txt'] = 'Dodaj'; |
| | | $wb['btn_save_txt'] = 'Spremi'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | |
| | | $wb['datepicker_prevText'] = 'Natrag'; |
| | | $wb['logout_txt'] = 'Odjavi'; |
| | | $wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd'; |
| | | $wb['submit_confirmation'] = 'Do you really want to perform this action?'; |
| | | $wb['submit_confirmation'] = 'Da li stvarno želite nastaviti?'; |
| | | $wb['top_menu_mailuser'] = 'Mailuser'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'of'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'results'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'No results.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 results'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Search'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; |
| | | $wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.'; |
| | | $wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.'; |
| | | $wb['datalog_changes_txt'] = 'The following changes are not yet populated to all servers:'; |
| | | $wb['datalog_changes_end_txt'] = 'Storing updates can take up to one minute. Please be patient.'; |
| | | $wb['datalog_status_i_web_database'] = 'Create new database'; |
| | | $wb['datalog_status_u_web_database'] = 'Update database'; |
| | | $wb['datalog_status_d_web_database'] = 'Delete database'; |
| | | $wb['datalog_status_i_web_database_user'] = 'Create database user for database'; |
| | | $wb['datalog_status_u_web_database_user'] = 'Update database user'; |
| | | $wb['datalog_status_d_web_database_user'] = 'Delete database user'; |
| | | $wb['datalog_status_i_web_domain'] = 'Create new website'; |
| | | $wb['datalog_status_u_web_domain'] = 'Update website settings'; |
| | | $wb['datalog_status_d_web_domain'] = 'Delete website'; |
| | | $wb['datalog_status_i_ftp_user'] = 'Create FTP user'; |
| | | $wb['datalog_status_u_ftp_user'] = 'Update FTP user'; |
| | | $wb['datalog_status_d_ftp_user'] = 'Delete FTP user'; |
| | | $wb['datalog_status_i_mail_domain'] = 'Create email domain'; |
| | | $wb['datalog_status_u_mail_domain'] = 'Update email domain'; |
| | | $wb['datalog_status_d_mail_domain'] = 'Delete email domain'; |
| | | $wb['datalog_status_i_mail_user'] = 'Create email user'; |
| | | $wb['datalog_status_u_mail_user'] = 'Update email user'; |
| | | $wb['datalog_status_d_mail_user'] = 'Delete email user'; |
| | | $wb['datalog_status_i_mail_forwarding'] = 'Create email address'; |
| | | $wb['datalog_status_u_mail_forwarding'] = 'Update email address'; |
| | | $wb['datalog_status_d_mail_forwarding'] = 'Delete email address'; |
| | | $wb['datalog_status_i_dns_rr'] = 'Create DNS record'; |
| | | $wb['datalog_status_u_dns_rr'] = 'Update DNS record'; |
| | | $wb['datalog_status_d_dns_rr'] = 'Delete DNS record'; |
| | | $wb['datalog_status_i_dns_soa'] = 'Create DNS zone'; |
| | | $wb['datalog_status_u_dns_soa'] = 'Update DNS zone'; |
| | | $wb['datalog_status_d_dns_soa'] = 'Delete DNS zone'; |
| | | $wb['datalog_status_i_cron'] = 'Create cron job'; |
| | | $wb['datalog_status_u_cron'] = 'Update cron job'; |
| | | $wb['datalog_status_d_cron'] = 'Delete cron job'; |
| | | $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; |
| | | $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; |
| | | $wb['datalog_status_d_mail_get'] = 'Delete mail fetcher account'; |
| | | $wb['datalog_status_i_mail_mailinglist'] = 'Create mailing list'; |
| | | $wb['datalog_status_u_mail_mailinglist'] = 'Update mailing list'; |
| | | $wb['datalog_status_d_mail_mailinglist'] = 'Delete mailing list'; |
| | | $wb['datalog_status_i_shell_user'] = 'Create shell user'; |
| | | $wb['datalog_status_u_shell_user'] = 'Update shell user'; |
| | | $wb['datalog_status_d_shell_user'] = 'Delete shell user'; |
| | | $wb['datalog_status_i_web_folder'] = 'Create folder protection'; |
| | | $wb['datalog_status_u_web_folder'] = 'Update folder protection'; |
| | | $wb['datalog_status_d_web_folder'] = 'Delete folder protection'; |
| | | $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; |
| | | $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; |
| | | $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; |
| | | $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; |
| | | $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; |
| | | $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; |
| | | $wb['login_as_txt'] = 'Log in as'; |
| | | $wb['no_domain_perm'] = 'You have no permission for this domain.'; |
| | | $wb['no_destination_perm'] = 'You have no permission for this destination.'; |
| | | $wb['client_you_are_locked'] = 'You have no permission to change any settings.'; |
| | | $wb['gender_m_txt'] = 'Mr.'; |
| | | $wb['gender_f_txt'] = 'Ms.'; |
| | | $wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'This client has records in the billing module, therefore he cannot be deleted.'; |
| | | $wb['yes_txt'] = 'Yes'; |
| | | $wb['no_txt'] = 'No'; |
| | | $wb['None'] = 'None'; |
| | | $wb['strength_1'] = 'Weak'; |
| | | $wb['strength_2'] = 'Fair'; |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'od'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; |
| | | $wb['global_tabchange_warning_txt'] = 'Promijenjeni podaci u kartici će biti spremljeni ako pritisnete OK. Na odustani će biti poništeni.'; |
| | | $wb['global_tabchange_discard_txt'] = 'Neki podaci na kartici nisu spremljeni. Promjene će biti poništene ako nastavite.'; |
| | | $wb['datalog_changes_txt'] = 'Slijedeće promjene još nisu proslijeđene na sve servere:'; |
| | | $wb['datalog_changes_end_txt'] = 'Spremanje promjena može potrajati minutu. Budite strpljivi.'; |
| | | $wb['datalog_status_i_web_database'] = 'Kreiraj novu bazu'; |
| | | $wb['datalog_status_u_web_database'] = 'Podesi bazu'; |
| | | $wb['datalog_status_d_web_database'] = 'Obriši bazu'; |
| | | $wb['datalog_status_i_web_database_user'] = 'Kreiraj korisnika za bazu'; |
| | | $wb['datalog_status_u_web_database_user'] = 'Podesi korisnika'; |
| | | $wb['datalog_status_d_web_database_user'] = 'Obriši korisnika baze'; |
| | | $wb['datalog_status_i_web_domain'] = 'Kreiraj novu stranicu'; |
| | | $wb['datalog_status_u_web_domain'] = 'Podesi stranicu'; |
| | | $wb['datalog_status_d_web_domain'] = 'Obriši stranicu'; |
| | | $wb['datalog_status_i_ftp_user'] = 'Kreiraj FTP korisnika'; |
| | | $wb['datalog_status_u_ftp_user'] = 'Podesi FTP korisnika'; |
| | | $wb['datalog_status_d_ftp_user'] = 'Obriši FTP korisnika'; |
| | | $wb['datalog_status_i_mail_domain'] = 'Kreiraj email domenu'; |
| | | $wb['datalog_status_u_mail_domain'] = 'Podesi email domenu'; |
| | | $wb['datalog_status_d_mail_domain'] = 'Obriši email domenu'; |
| | | $wb['datalog_status_i_mail_user'] = 'Kreiraj email korisnika'; |
| | | $wb['datalog_status_u_mail_user'] = 'Podesi email korisnika'; |
| | | $wb['datalog_status_d_mail_user'] = 'Obriši email korisnika'; |
| | | $wb['datalog_status_i_mail_forwarding'] = 'Kreiraj email račun'; |
| | | $wb['datalog_status_u_mail_forwarding'] = 'Podesi email račun'; |
| | | $wb['datalog_status_d_mail_forwarding'] = 'Obriši email račun'; |
| | | $wb['datalog_status_i_dns_rr'] = 'Kreiraj DNS zapis'; |
| | | $wb['datalog_status_u_dns_rr'] = 'Podesi DNS zapis'; |
| | | $wb['datalog_status_d_dns_rr'] = 'Obriši DNS zapis'; |
| | | $wb['datalog_status_i_dns_soa'] = 'Kreiraj DNS zonu'; |
| | | $wb['datalog_status_u_dns_soa'] = 'Podesi DNS zonu'; |
| | | $wb['datalog_status_d_dns_soa'] = 'Obriši DNS zonu'; |
| | | $wb['datalog_status_i_cron'] = 'Kreiraj cron zadatak'; |
| | | $wb['datalog_status_u_cron'] = 'Podesi cron zadatak'; |
| | | $wb['datalog_status_d_cron'] = 'Obriši cron zadatak'; |
| | | $wb['datalog_status_i_mail_get'] = 'Kreiraj mail fetcher račun'; |
| | | $wb['datalog_status_u_mail_get'] = 'Podesi mail fetcher račun'; |
| | | $wb['datalog_status_d_mail_get'] = 'Obriši mail fetcher račun'; |
| | | $wb['datalog_status_i_mail_mailinglist'] = 'Kreiraj mailing listu'; |
| | | $wb['datalog_status_u_mail_mailinglist'] = 'Podesi mailing listu'; |
| | | $wb['datalog_status_d_mail_mailinglist'] = 'Obriši mailing listu'; |
| | | $wb['datalog_status_i_shell_user'] = 'Kreiraj shell korisnika'; |
| | | $wb['datalog_status_u_shell_user'] = 'Podesi shell korisnika'; |
| | | $wb['datalog_status_d_shell_user'] = 'Obriši shell korisnika'; |
| | | $wb['datalog_status_i_web_folder'] = 'Kreiraj zaštitu direktorija'; |
| | | $wb['datalog_status_u_web_folder'] = 'Podesi zaštitu direktorija'; |
| | | $wb['datalog_status_d_web_folder'] = 'Obriši zaštitu direktorija'; |
| | | $wb['datalog_status_i_web_folder_user'] = 'Kreiraj folder protection korisnika'; |
| | | $wb['datalog_status_u_web_folder_user'] = 'Podesi folder protection korisnika'; |
| | | $wb['datalog_status_d_web_folder_user'] = 'Obriši folder protection korisnika'; |
| | | $wb['datalog_status_i_spamfilter_users'] = 'Kreiraj spam filter postavke'; |
| | | $wb['datalog_status_u_spamfilter_users'] = 'Podesi spam filter postavke'; |
| | | $wb['datalog_status_d_spamfilter_users'] = 'Obriši spam filter postavke'; |
| | | $wb['login_as_txt'] = 'Logiraj se kao'; |
| | | $wb['no_domain_perm'] = 'Nemate dozvolu za ovu domenu.'; |
| | | $wb['no_destination_perm'] = 'Nemate dozvolu za ovu destinaciju.'; |
| | | $wb['client_you_are_locked'] = 'Nemate dozvolu za promjenu postavki.'; |
| | | $wb['gender_m_txt'] = 'g.'; |
| | | $wb['gender_f_txt'] = 'gđa.'; |
| | | $wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Ovaj klijent ima zapise u modulu za naplatu, stoga ne može biti obrisan.'; |
| | | $wb['yes_txt'] = 'Da'; |
| | | $wb['no_txt'] = 'Ne'; |
| | | $wb['None'] = 'Ništa'; |
| | | $wb['strength_1'] = 'Slabo'; |
| | | $wb['strength_2'] = 'Dobro'; |
| | | $wb['strength_3'] = 'Bolje'; |
| | | $wb['strength_4'] = 'Jako'; |
| | | $wb['strength_5'] = 'Odlično'; |
| | | $wb['weak_password_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova i jačine \\"{strength}\\".'; |
| | | $wb['weak_password_length_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova.'; |
| | | $wb['security_check1_txt'] = 'Provjerite sigurnosne dozvole:'; |
| | | $wb['security_check2_txt'] = 'greška.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | | |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | $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_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; |
| | | $wb['security_check1_txt'] = 'Check for security permission:'; |
| | | $wb['security_check2_txt'] = 'failed.'; |
| | | ?> |
| | |
| | | function openvz_vm_insert($event_name, $page_form) { |
| | | global $app, $conf; |
| | | |
| | | $this->id = $page_form->id; |
| | | $this->id = $app->functions->intval($page_form->id); |
| | | $this->dataRecord = $page_form->dataRecord; |
| | | $this->oldDataRecord = $page_form->oldDataRecord; |
| | | |
| | |
| | | $this->applyTemplate(); |
| | | |
| | | // Set the IP address |
| | | $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$this->dataRecord['ip_address']."'"); |
| | | $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."'"); |
| | | |
| | | // Create the OpenVZ config file and store it in config field |
| | | $this->makeOpenVZConfig(); |
| | |
| | | function openvz_vm_update($event_name, $page_form) { |
| | | global $app, $conf; |
| | | |
| | | $this->id = $page_form->id; |
| | | $this->id = $app->functions->intval($page_form->id); |
| | | $this->dataRecord = $page_form->dataRecord; |
| | | $this->oldDataRecord = $page_form->oldDataRecord; |
| | | |
| | |
| | | } |
| | | |
| | | // Set the IP address |
| | | if(isset($this->dataRecord['ip_address'])) $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$this->dataRecord['ip_address']."'"); |
| | | if(isset($this->dataRecord['ip_address'])) $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."'"); |
| | | |
| | | // Create the OpenVZ config file and store it in config field |
| | | $this->makeOpenVZConfig(); |
| | |
| | | global $app, $conf; |
| | | |
| | | //* Free the IP address |
| | | $tmp = $app->db->queryOneRecord("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ".$page_form->id); |
| | | $tmp = $app->db->queryOneRecord("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ".$app->functions->intval($page_form->id)); |
| | | $app->db->datalogUpdate('openvz_ip', 'vm_id = 0', 'ip_address_id', $tmp['ip_address_id']); |
| | | unset($tmp); |
| | | |
| | |
| | | private function applyTemplate() { |
| | | global $app, $conf; |
| | | |
| | | $tpl = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$this->dataRecord["template_id"]); |
| | | $tpl = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$app->functions->intval($this->dataRecord["template_id"])); |
| | | |
| | | $sql = "UPDATE openvz_vm SET "; |
| | | $sql .= "diskspace = '".$tpl['diskspace']."', "; |
| | | $sql .= "ram = '".$tpl['ram']."', "; |
| | | $sql .= "ram_burst = '".$tpl['ram_burst']."', "; |
| | | $sql .= "cpu_units = '".$tpl['cpu_units']."', "; |
| | | $sql .= "cpu_num = '".$tpl['cpu_num']."', "; |
| | | $sql .= "cpu_limit = '".$tpl['cpu_limit']."', "; |
| | | $sql .= "io_priority = '".$tpl['io_priority']."', "; |
| | | $sql .= "nameserver = '".$tpl['nameserver']."', "; |
| | | $sql .= "create_dns = '".$tpl['create_dns']."', "; |
| | | $sql .= "capability = '".$tpl['capability']."' "; |
| | | $sql .= "WHERE vm_id = ".$this->id; |
| | | $sql .= "diskspace = '".$app->db->quote($tpl['diskspace'])."', "; |
| | | $sql .= "ram = '".$app->db->quote($tpl['ram'])."', "; |
| | | $sql .= "ram_burst = '".$app->db->quote($tpl['ram_burst'])."', "; |
| | | $sql .= "cpu_units = '".$app->db->quote($tpl['cpu_units'])."', "; |
| | | $sql .= "cpu_num = '".$app->db->quote($tpl['cpu_num'])."', "; |
| | | $sql .= "cpu_limit = '".$app->db->quote($tpl['cpu_limit'])."', "; |
| | | $sql .= "io_priority = '".$app->db->quote($tpl['io_priority'])."', "; |
| | | $sql .= "nameserver = '".$app->db->quote($tpl['nameserver'])."', "; |
| | | $sql .= "create_dns = '".$app->db->quote($tpl['create_dns'])."', "; |
| | | $sql .= "capability = '".$app->db->quote($tpl['capability'])."' "; |
| | | $sql .= "WHERE vm_id = ".$app->functions->intval($this->id); |
| | | $app->db->query($sql); |
| | | |
| | | } |
| | |
| | | private function makeOpenVZConfig() { |
| | | global $app, $conf; |
| | | |
| | | $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$this->id); |
| | | $vm_template = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$vm['template_id']); |
| | | $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$app->functions->intval($this->id)); |
| | | $vm_template = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$app->functions->intval($vm['template_id'])); |
| | | $burst_ram = $vm['ram_burst']*256; |
| | | $guar_ram = $vm['ram']*256; |
| | | |
| | |
| | | $tpl->setVar('nameserver', $vm['nameserver']); |
| | | $tpl->setVar('capability', $vm['capability']); |
| | | |
| | | $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ".$vm['ostemplate_id']); |
| | | $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ".$app->functions->intval($vm['ostemplate_id'])); |
| | | $tpl->setVar('ostemplate', $tmp['template_file']); |
| | | unset($tmp); |
| | | |
| | | $openvz_config = $app->db->quote($tpl->grab()); |
| | | $app->db->query("UPDATE openvz_vm SET config = '".$openvz_config."' WHERE vm_id = ".$this->id); |
| | | $app->db->query("UPDATE openvz_vm SET config = '".$openvz_config."' WHERE vm_id = ".$app->functions->intval($this->id)); |
| | | |
| | | unset($tpl); |
| | | |
| | |
| | | private function createDNS() { |
| | | global $app, $conf; |
| | | |
| | | $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$this->id); |
| | | $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$app->functions->intval($this->id)); |
| | | |
| | | if($vm['create_dns'] != 'y') return; |
| | | |
| | | $full_hostname = str_replace('{VEID}', $vm['veid'], $vm['hostname']); |
| | | $hostname_parts = explode('.', $full_hostname); |
| | | $hostname = $hostname_parts[0]; |
| | | $hostname = $app->db->quote($hostname_parts[0]); |
| | | unset($hostname_parts[0]); |
| | | $zone = implode('.', $hostname_parts); |
| | | $zone = $app->db->quote((implode('.', $hostname_parts))); |
| | | unset($hostname_parts); |
| | | |
| | | // Find the dns zone |
| | | $zone_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = '$zone.'"); |
| | | $rr_rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = '".$zone_rec['id']."' AND name = '$hostname'"); |
| | | $zone_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = '".$app->db->quote($zone).".'"); |
| | | $rr_rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = '".$app->functions->intval($zone_rec['id'])."' AND name = '".$app->db->quote($hostname)."'"); |
| | | |
| | | if($zone_rec['id'] > 0) { |
| | | $ip_address = $vm['ip_address']; |
| | | $sys_userid = $zone_rec['sys_userid']; |
| | | $sys_groupid = $zone_rec['sys_groupid']; |
| | | $server_id = $zone_rec['server_id']; |
| | | $dns_soa_id = $zone_rec['id']; |
| | | $ip_address = $app->db->quote($vm['ip_address']); |
| | | $sys_userid = $app->functions->intval($zone_rec['sys_userid']); |
| | | $sys_groupid = $app->functions->intval($zone_rec['sys_groupid']); |
| | | $server_id = $app->functions->intval($zone_rec['server_id']); |
| | | $dns_soa_id = $app->functions->intval($zone_rec['id']); |
| | | |
| | | if($rr_rec['id'] > 0) { |
| | | $app->uses('validate_dns'); |
| | | $app->db->datalogUpdate('dns_rr', "data = '$ip_address'", 'id', $rr_rec['id']); |
| | | $app->db->datalogUpdate('dns_rr', "data = '$ip_address'", 'id', $app->functions->intval($rr_rec['id'])); |
| | | $serial = $app->validate_dns->increase_serial($zone_rec['serial']); |
| | | $app->db->datalogUpdate('dns_soa', "serial = '$serial'", 'id', $zone_rec['id']); |
| | | $app->db->datalogUpdate('dns_soa', "serial = '$serial'", 'id', $app->functions->intval($zone_rec['id'])); |
| | | } else { |
| | | $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES |
| | | ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$hostname', 'A', '$ip_address', '0', '3600', 'Y')"; |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_firewall_config'); |
| | | |
| | | $app->uses("tform_actions"); |
| | | $app->tform_actions->onDelete(); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_firewall_config'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | 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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'website_symlinks_rel' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | | 'value' => array(0 => 'n', 1 => 'y') |
| | | ), |
| | | 'network_filesystem' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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' => '', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'validators' => array(0 => array('type' => 'NOTEMPTY', |
| | | 'validators' => array(0 => array('type' => 'ISPOSITIVE', |
| | | 'errmsg' => 'fastcgi_children_error_empty'), |
| | | ), |
| | | 'value' => '', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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', |
| | |
| | | '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' => '', |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_cpuser_group'); |
| | | |
| | | $app->uses("tform_actions"); |
| | | $app->tform_actions->onDelete(); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_cpuser_group'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | <?php |
| | | die('unused'); |
| | | /* |
| | | Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | |
| | | <?php |
| | | die('unused'); |
| | | /* |
| | | Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | |
| | | <?php |
| | | |
| | | die('unused'); |
| | | /* |
| | | Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_langedit'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_langedit'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | //* This is only allowed for administrators |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_langedit'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | $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.'; |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_langedit'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_langedit'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb['Domains'] = 'Domény'; |
| | | $wb['Misc'] = 'Různé'; |
| | | $wb['Software'] = 'Software'; |
| | | $wb['Repositories'] = 'Repozitáře'; |
| | | $wb['Repositories'] = 'Zdroje repozitářů'; |
| | | $wb['Packages'] = 'Balíčky'; |
| | | $wb['Updates'] = 'Aktualizace'; |
| | | $wb['Language Editor'] = 'Jazykový editor'; |
| | |
| | | $wb['Do ISPConfig-Update'] = 'Aktualizovat ISPConfig'; |
| | | $wb['Directive Snippets'] = 'Directive Snippets'; |
| | | ?> |
| | | |
| | |
| | | $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; |
| | | $wb['variables_txt'] = 'Proměnné'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Verze'; |
| | | $wb['add_new_record_txt'] = 'Add Directive Snippet'; |
| | | ?> |
| | | |
| | |
| | | $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.'; |
| | | $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.'; |
| | | ?> |
| | | |
| | |
| | | $wb['udp_port_txt'] = 'Otevřené UDP porty'; |
| | | $wb['add_new_record_txt'] = 'Přidat záznam'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Skupina'; |
| | | $wb['name_err'] = 'Skupina musí mít min. 1, max. 30 znaků.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat skupinu'; |
| | | $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelý nebo skupin zde může způsobit ztrátu dat!'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Vytvořit novou jazykovou sadu souborů'; |
| | | $wb['btn_cancel_txt'] = 'Zpět'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Sloučit / doplnit jazykový soubor'; |
| | | $wb['btn_cancel_txt'] = 'Zpět'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Uložit'; |
| | | $wb['btn_cancel_txt'] = 'Zpět'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Uložit vybranou jazykovou sadu do souboru'; |
| | | $wb['btn_cancel_txt'] = 'Zpět'; |
| | | ?> |
| | | |
| | |
| | | $wb['ignore_version_txt'] = 'Přeskočit kontrolu verze ISPConfigu.'; |
| | | $wb['list_desc_txt'] = 'VAROVÁNÍ: Nepoužívejte import souborů jazyku z nedůvěryhodných zdrojů.'; |
| | | ?> |
| | | |
| | |
| | | $wb['lang_file_txt'] = 'Jazykový soubor'; |
| | | $wb['lang_file_date_txt'] = 'Poslední úprava'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['login_1_txt'] = 'Chcete se přihlásit jako klient'; |
| | | $wb['login_2_txt'] = 'Pokud se přihlásíte jako klient, zpět do sekce Administrátora se vratíte kliknutím na odhlášení klienta.'; |
| | | $wb['btn_yes_txt'] = 'Ano, přihlásit se jako klient'; |
| | | $wb['btn_back_txt'] = 'Ne, zpět na seznam klientů'; |
| | | $wb['udp_port_help_txt'] = 'Odděleny čárkou'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $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 \\",\\".'; |
| | | ?> |
| | | |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['repo_name_txt'] = 'Repozitář'; |
| | | $wb['repo_name_txt'] = 'Název zdroje'; |
| | | $wb['repo_url_txt'] = 'URL'; |
| | | $wb['repo_username_txt'] = 'Uživatel (volitelné)'; |
| | | $wb['repo_password_txt'] = 'Heslo (volitelné)'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | ?> |
| | | |
| | |
| | | $wb['select_server_txt'] = 'Zvolit server'; |
| | | $wb['btn_do_txt'] = 'Provést akci'; |
| | | $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.'; |
| | | $wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>'; |
| | | $wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>'; |
| | | $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru'; |
| | | $wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>'; |
| | | $wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>'; |
| | | $wb['action_scheduled'] = 'Akce je naplánována na provedení'; |
| | | $wb['select_all_server'] = 'Všechny servery'; |
| | | $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci'; |
| | | $wb['ispconfig_update_text'] = 'Přihlaste se jako uživatel root na terminal (shell) serveru a proveďte příkaz<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />spustí se ISPConfig aktualizace.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klikněte zde pro podrobnější informace o provedení aktualizace</a>'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; |
| | | $wb['password_match_txt'] = 'Hesla se shodují.'; |
| | | ?> |
| | | |
| | |
| | | $wb['parent_remote_userid_txt'] = 'ID'; |
| | | $wb['username_txt'] = 'Uživatel'; |
| | | ?> |
| | | |
| | |
| | | $wb['proxy_server_txt'] = 'Proxy-Server'; |
| | | $wb['firewall_server_txt'] = 'Firewall-Server'; |
| | | ?> |
| | | |
| | |
| | | $wb['try_rescue_txt'] = 'Povolit monitorování služeb a restartovat při selhání'; |
| | | $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorování'; |
| | | $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorování'; |
| | | $wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete např. vypnout MySQL monitorování zatrhněte políčko \\"Zakázat MySQL monitorování\\" změna se provede do 2-3 minut.<br>Pokud nepočkáte 2-3 minuty, monitorování restartuje mysql!!'; |
| | | $wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete např. vypnout MySQL monitorování zatrhněte políčko \"Zakázat MySQL monitorování\" změna se provede do 2-3 minut.<br>Pokud nepočkáte 2-3 minuty, monitorování restartuje mysql!!'; |
| | | $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; |
| | | $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorování'; |
| | | $wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update'; |
| | | $wb['set_folder_permissions_on_update_txt'] = 'Nastavení oprávnění složky při aktualizaci'; |
| | | $wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group'; |
| | | $wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid'; |
| | | $wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect'; |
| | |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | | |
| | |
| | | $wb['list_head_txt'] = 'Konfigurace serveru'; |
| | | $wb['server_name_txt'] = 'Server'; |
| | | ?> |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP Porty'; |
| | | $wb['error_port_syntax'] = 'Neplatné znaky ve volbě HTTP Portů. Prosím, zadejte pouze číselné hodnoty oddělené čárkami. Příklad: 80,443'; |
| | | ?> |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP Ports'; |
| | | $wb['ip_type_txt'] = 'Verze'; |
| | | ?> |
| | | |
| | |
| | | $wb['proxy_server_txt'] = 'Proxy'; |
| | | $wb['firewall_server_txt'] = 'Firewall'; |
| | | ?> |
| | | |
| | |
| | | $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři'; |
| | | $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři'; |
| | | ?> |
| | | |
| | |
| | | $wb['client_id_txt'] = 'Klient'; |
| | | $wb['name_txt'] = 'Verze PHP'; |
| | | ?> |
| | | |
| | |
| | | $wb['Software Package'] = 'Software Package'; |
| | | $wb['Modify software package details'] = 'Modify software package details'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Spustit instalaci'; |
| | | $wb['btn_cancel_txt'] = 'Zrušit'; |
| | | ?> |
| | | |
| | |
| | | $wb['edit_txt'] = 'Upravit'; |
| | | $wb['delete_txt'] = 'Smazat'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['repo_name_txt'] = 'Repozitář'; |
| | | $wb['repo_name_txt'] = 'Název zdroje'; |
| | | $wb['repo_url_txt'] = 'URL'; |
| | | $wb['repo_username_txt'] = 'Uživatel (volitelné)'; |
| | | $wb['repo_password_txt'] = 'Heslo (volitelné)'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; |
| | | $wb['Software Repository which may contain addons or updates'] = 'Softwarové zdroje, které mohou obsahovat addony nebo aktualizace'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Repozitář'; |
| | | $wb['list_head_txt'] = 'Zdroje repozitářů'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['repo_name_txt'] = 'Repozitář'; |
| | | $wb['repo_name_txt'] = 'Název zdroje'; |
| | | $wb['repo_url_txt'] = 'URL'; |
| | | ?> |
| | | |
| | |
| | | $wb['action_txt'] = 'Akce'; |
| | | $wb['no_updates_txt'] = 'Žádné aktualizace nejsou k dispozici'; |
| | | ?> |
| | | |
| | |
| | | $wb['customer_no_start_txt'] = 'Zákaznické číslo - počáteční hodnota'; |
| | | $wb['customer_no_counter_txt'] = 'Zákaznické číslo - čítač'; |
| | | $wb['session_timeout_txt'] = 'Časový limit relace (minuty)'; |
| | | $wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; |
| | | $wb['session_allow_endless_txt'] = 'Povolit - zůstat přihlášen'; |
| | | $wb['No'] = 'Ne'; |
| | | $wb['min_password_length_txt'] = 'Minimální délka hesla'; |
| | | $wb['min_password_strength_txt'] = 'Minimální síla hesla'; |
| | | ?> |
| | | |
| | |
| | | $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři'; |
| | | $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web a číslo.\\"'; |
| | | $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; |
| | | ?> |
| | | |
| | |
| | | $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelů nebo skupin zde může způsobit ztrátu dat!'; |
| | | $wb['groups_txt'] = 'Skupiny'; |
| | | ?> |
| | | |
| | |
| | | $wb["v6_prefix_length"] = 'Prefix zu lang fuer angegebene IPv6-Adresse '; |
| | | $wb['monitor_system_updates_txt'] = 'Suche nach Linux updates'; |
| | | $wb['dkim_strength_txt'] = 'DKIM Stärke'; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Netzwerk-Dateisystem'; |
| | | ?> |
| | |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $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'; |
| | |
| | | $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'; |
| | |
| | | $wb['php_handler_txt'] = "PHP Handler"; |
| | | $wb['disabled_txt'] = 'Disabled'; |
| | | $wb['dkim_strength_txt'] = 'DKIM strength'; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb['monitor_system_updates_txt'] = 'Comprobar actualizaciones de linux'; |
| | | $wb['php_handler_txt'] = "Manejador de PHP"; |
| | | $wb['disabled_txt'] = "Desactivado"; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["v6_prefix_length"] = "D\'aprèl'IPv6 déni, le préx est trop long"; |
| | | $wb["overquota_db_notify_admin_txt"] = "Envoyer avertissement DB quota à\'admin'"; |
| | | $wb["overquota_db_notify_client_txt"] = 'Envoyer avertissement DB quota au client'; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | |
| | | $wb['Remote Actions'] = 'Udaljene akcije'; |
| | | $wb['Do OS-Update'] = 'Nadogradnja sistema'; |
| | | $wb['Do ISPConfig-Update'] = 'Nadogradnja control panela'; |
| | | $wb['Directive Snippets'] = 'Directive Snippets'; |
| | | $wb['Directive Snippets'] = 'Direktive'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['Directive Snippets'] = 'Directive Snippets'; |
| | | $wb['name_txt'] = 'Name of Snippet'; |
| | | $wb['type_txt'] = 'Type'; |
| | | $wb['snippet_txt'] = 'Snippet'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.'; |
| | | $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; |
| | | $wb['variables_txt'] = 'Variables'; |
| | | $wb['Directive Snippets'] = 'Direktive'; |
| | | $wb['name_txt'] = 'Naziv direktive'; |
| | | $wb['type_txt'] = 'Vrsta'; |
| | | $wb['snippet_txt'] = 'direktiva'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['directive_snippets_name_empty'] = 'Molimo vas specificirajte naziv direktive.'; |
| | | $wb['directive_snippets_name_error_unique'] = 'Već postoji direktiva sa tim imenom.'; |
| | | $wb['variables_txt'] = 'Varijable'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Directive Snippets'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['name_txt'] = 'Name of Snippet'; |
| | | $wb['type_txt'] = 'Type'; |
| | | $wb['add_new_record_txt'] = 'Add Directive Snippet'; |
| | | $wb['list_head_txt'] = 'Direktive'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['name_txt'] = 'Naziv predloška'; |
| | | $wb['type_txt'] = 'Vrsta'; |
| | | $wb['add_new_record_txt'] = 'Dodaj direktivu'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['tcp_ports_error_regex'] = 'Nedozvoljeni znak pri definiciji TCP porta. Dozvoljeni znakovi su znamenke, : i ,.'; |
| | | $wb['udp_ports_error_regex'] = 'Nedozvoljeni znak pri definiciji UDP porta. Dozvoljeni znakovi su znamenke, : i ,.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['udp_port_txt'] = 'Otvoreni UDP portovi'; |
| | | $wb['add_new_record_txt'] = 'Dodaj Firewall zapis'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_txt'] = 'Grupa'; |
| | | $wb['name_err'] = 'Grupa mora biti barem jedan do maksimalno 30 znakova.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Dodaj grupu'; |
| | | $wb['warning_txt'] = '<b>UPOZORENJE:</b> Ne mijenjajte postavke klijenta ovdje. Koristite '; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['destination_ip_txt'] = 'Adresa destinacije'; |
| | | $wb['source_ip_txt'] = 'Adresa izvora'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['iptables_error_unique'] = 'Već postoji firewall zapis za ovaj server.'; |
| | | $wb['iptables_error_unique'] = 'Već postoji zapis u vatrozidu za ovaj server.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['iptables_error_unique'] = 'Već postoji firewall zapis za ovaj server.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Kreiraj novu jezičnu datoteku'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Spoji jezike'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Spremi'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Eksportiraj izabranu jezičnu datoteku'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Importiraj jezičnu datoteku'; |
| | | $wb['language_import_txt'] = 'Izaberi jezičnu datoteku'; |
| | | $wb['btn_save_txt'] = 'Importiraj selektiranu jezičnu datoteku'; |
| | | $wb['btn_save_txt'] = 'Importiraj datoteku'; |
| | | $wb['language_overwrite_txt'] = 'Prebriši datoteku, ukoliko već postoji.'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | $wb['ignore_version_txt'] = 'Preskoči provjeru ISPConfig verzije'; |
| | | $wb['list_desc_txt'] = 'WARNING: Do not import language files from untrustworthy sources.'; |
| | | $wb['list_desc_txt'] = 'PAŽNJA: Nemojte importirati jezične datoteke preuzete sa nepoznatih web lokacija.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['lang_file_txt'] = 'Jezična datoteka'; |
| | | $wb['lang_file_date_txt'] = 'Zadnja promjena'; |
| | | ?> |
| | | |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['login_1_txt'] = 'Do you want to login as user'; |
| | | $wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.'; |
| | | $wb['btn_yes_txt'] = 'Yes, login as Client'; |
| | | $wb['btn_back_txt'] = 'No, back to list'; |
| | | $wb['udp_port_help_txt'] = 'Separated by comma'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $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['repo_password_txt'] = 'Šifra (opcionalno)'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['ispconfig_update_title'] = 'Upute za ISPConfig nadogradnju'; |
| | | $wb['ispconfig_update_text'] = 'Logiraj se kao root korisnik na server (SSH) i pokreni:<br /><br /><strong>ispconfig_update.sh</strong><br /><br /><a href=\'http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\' target=\'_blank\'>Pogledaj detaljne upute ovdje</a>'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['DNS srv functions'] = 'DNS srv funkcije'; |
| | | $wb['DNS txt functions'] = 'DNS txt funkcije'; |
| | | $wb['Mail mailing list functions'] = 'Funkcije mailing lista'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['parent_remote_userid_txt'] = 'ID'; |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['mirror_server_id_txt'] = 'je kopija servera'; |
| | | $wb['- None -'] = '- izaberi server -'; |
| | | $wb['proxy_server_txt'] = 'Proxy server'; |
| | | $wb['firewall_server_txt'] = 'Firewall server'; |
| | | $wb['firewall_server_txt'] = 'Vatrozid server'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['nameservers_error_empty'] = 'Nameserver polje je prazno.'; |
| | | $wb['config_dir_txt'] = 'Konfiguracijski direktorij'; |
| | | $wb['init_script_txt'] = 'Inicijalizacijski naziv cron skripte'; |
| | | $wb['crontab_dir_txt'] = 'Putanja do individualnih crontabs-a'; |
| | | $wb['crontab_dir_txt'] = 'Putanja do individualnih crontab-ova'; |
| | | $wb['wget_txt'] = 'Putanja do wget programa'; |
| | | $wb['web_user_txt'] = 'Apache korisnik'; |
| | | $wb['web_group_txt'] = 'Apache grupa'; |
| | |
| | | $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; |
| | | $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; |
| | | $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; |
| | | $wb['ssl_settings_txt'] = 'SSL Settings'; |
| | | $wb['permissions_txt'] = 'Permissions'; |
| | | $wb['php_settings_txt'] = 'PHP Settings'; |
| | | $wb['apps_vhost_settings_txt'] = 'Apps Vhost Settings'; |
| | | $wb['awstats_settings_txt'] = 'AWStats Settings'; |
| | | $wb['ssl_settings_txt'] = 'SSL postavke'; |
| | | $wb['permissions_txt'] = 'Dozvole'; |
| | | $wb['php_settings_txt'] = 'PHP postavke'; |
| | | $wb['apps_vhost_settings_txt'] = 'Apps Vhost postavke'; |
| | | $wb['awstats_settings_txt'] = 'AWStats postavke'; |
| | | $wb['firewall_txt'] = 'Firewall'; |
| | | $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics'; |
| | | $wb['mailbox_quota_stats_txt'] = 'Statistika limita sandučića'; |
| | | $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)'; |
| | | $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)'; |
| | | $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; |
| | |
| | | $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; |
| | | $wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; |
| | | $wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; |
| | | $wb['no_notifications_txt'] = 'No Notifications'; |
| | | $wb['no_notifications_txt'] = 'Nema notifikacija'; |
| | | $wb['monit_url_txt'] = 'Monit URL'; |
| | | $wb['monit_user_txt'] = 'Monit User'; |
| | | $wb['monit_password_txt'] = 'Monit Password'; |
| | | $wb['monit_url_error_regex'] = 'Invalid Monit URL'; |
| | | $wb['monit_user_txt'] = 'Monit korisničko ime'; |
| | | $wb['monit_password_txt'] = 'Monit šifra'; |
| | | $wb['monit_url_error_regex'] = 'Neispravan Monit URL'; |
| | | $wb['monit_url_note_txt'] = 'Placeholder:'; |
| | | $wb['munin_url_txt'] = 'Munin URL'; |
| | | $wb['munin_user_txt'] = 'Munin User'; |
| | | $wb['munin_password_txt'] = 'Munin Password'; |
| | | $wb['munin_url_error_regex'] = 'Invalid Munin URL'; |
| | | $wb['munin_user_txt'] = 'Munin korisničko ime'; |
| | | $wb['munin_password_txt'] = 'Munin šifra'; |
| | | $wb['munin_url_error_regex'] = 'Neispravan Munin URL'; |
| | | $wb['munin_url_note_txt'] = 'Placeholder:'; |
| | | $wb["dkim_path_txt"] = 'DKIM Path'; |
| | | $wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; |
| | |
| | | $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'] = 'Neispravan Hostname.'; |
| | | $wb['invalid_apache_user_txt'] = 'Neispravan apache korisnik.'; |
| | | $wb['invalid_apache_group_txt'] = 'Neispravna apache grupa.'; |
| | | $wb['backup_dir_error_regex'] = 'Neispravan backup direktorij.'; |
| | | $wb['maildir_path_error_regex'] = 'Neispravna maildir putanja.'; |
| | | $wb['homedir_path_error_regex'] = 'Neispravna homedir putanja.'; |
| | | $wb['mailuser_name_error_regex'] = 'Neispravan mailuser name.'; |
| | | $wb['mailuser_group_name_error_regex'] = 'Neispravan 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'] = 'Neispravan getmail config direktorij.'; |
| | | $wb['website_basedir_error_regex'] = 'Neispravan website basedir.'; |
| | | $wb['website_symlinks_error_regex'] = 'Neispravan website symlinks.'; |
| | | $wb['vhost_conf_dir_error_regex'] = 'Neispravan vhost config direktorij.'; |
| | | $wb['vhost_conf_enabled_dir_error_regex'] = 'Neispravan vhost conf enabled direktorij.'; |
| | | $wb['nginx_vhost_conf_dir_error_regex'] = 'Neispravan nginx config direktorij.'; |
| | | $wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Neispravan nginx conf enabled direktorij.'; |
| | | $wb['ca_path_error_regex'] = 'Neispravna CA putanja.'; |
| | | $wb['invalid_nginx_user_txt'] = 'Neispravan nginx user.'; |
| | | $wb['invalid_nginx_group_txt'] = 'Neispravan nginx grupa.'; |
| | | $wb['php_ini_path_apache_error_regex'] = 'Neispravna apache php.ini putanja.'; |
| | | $wb['php_ini_path_cgi_error_regex'] = 'Neispravna cgi php.ini putanja.'; |
| | | $wb['php_fpm_init_script_error_regex'] = 'Neispravna php-fpm init skripta.'; |
| | | $wb['php_fpm_ini_path_error_regex'] = 'Neispravna php-fpm ini putanja.'; |
| | | $wb['php_fpm_pool_dir_error_regex'] = 'Neispravan php-fpm pool direktorij.'; |
| | | $wb['php_fpm_socket_dir_error_regex'] = 'Neispravan php-fpm socket direktorij.'; |
| | | $wb['php_open_basedir_error_regex'] = 'Neispravan php open_basedir.'; |
| | | $wb['awstats_data_dir_empty'] = 'awstats data direktorij is empty'; |
| | | $wb['awstats_data_dir_error_regex'] = 'Neispravan awstats podatkovni direktorij.'; |
| | | $wb['awstats_pl_empty'] = 'awstats.pl opcija je prazna.'; |
| | | $wb['awstats_pl_error_regex'] = 'Neispravna awstats.pl putanja.'; |
| | | $wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl je prazno'; |
| | | $wb['awstats_buildstaticpages_pl_error_regex'] = 'Neispravna awstats_buildstaticpages.pl putanja.'; |
| | | $wb['invalid_bind_user_txt'] = 'Neispravan BIND korisnik.'; |
| | | $wb['invalid_bind_group_txt'] = 'Neispravan BIND grupa.'; |
| | | $wb['bind_zonefiles_dir_error_regex'] = 'Neispravan BIND zonefiles direktorij.'; |
| | | $wb['named_conf_path_error_regex'] = 'Neispravna named.conf putanja.'; |
| | | $wb['named_conf_local_path_error_regex'] = 'Neispravna named.conf.local putanja.'; |
| | | $wb['fastcgi_starter_path_error_regex'] = 'Neispravna fastcgi starter putanja.'; |
| | | $wb['fastcgi_starter_script_error_regex'] = 'Neispravan fastcgi starter script.'; |
| | | $wb['fastcgi_alias_error_regex'] = 'Neispravan fastcgi alias.'; |
| | | $wb['fastcgi_phpini_path_error_regex'] = 'Neispravna fastcgi putanja.'; |
| | | $wb['fastcgi_bin_error_regex'] = 'Neispravan fastcgi bin.'; |
| | | $wb['jailkit_chroot_home_error_regex'] = 'Neispravan jaikit chroot home.'; |
| | | $wb['jailkit_chroot_app_sections_error_regex'] = 'Neispravan jaikit chroot sections.'; |
| | | $wb['jailkit_chroot_app_programs_error_regex'] = 'Neispravan jaikit chroot app programs.'; |
| | | $wb['jailkit_chroot_cron_programs_error_regex'] = 'Neispravan jaikit chroot cron programs.'; |
| | | $wb['vlogger_config_dir_error_regex'] = 'Neispravan vlogger config dir.'; |
| | | $wb['cron_init_script_error_regex'] = 'Neispravan cron init script.'; |
| | | $wb['crontab_dir_error_regex'] = 'Neispravan crontab direktorij.'; |
| | | $wb['cron_wget_error_regex'] = 'Neispravna cron wget putanja.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['list_head_txt'] = 'Konfiguracija servera'; |
| | | $wb['server_name_txt'] = 'Server'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP portovi'; |
| | | $wb['error_port_syntax'] = 'Nedozvoljeni znakovi u port polju, unesite samo znamenke odvojene zarezom. Primjer: 80,443'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP portovi'; |
| | | $wb['ip_type_txt'] = 'Vrsta'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['vserver_server_txt'] = 'VServer'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi server'; |
| | | $wb['proxy_server_txt'] = 'Proxy'; |
| | | $wb['firewall_server_txt'] = 'Firewall'; |
| | | $wb['firewall_server_txt'] = 'Vatrozid'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['client_id_txt'] = 'Client'; |
| | | $wb['client_id_txt'] = 'Klijent'; |
| | | $wb['name_txt'] = 'PHP Name'; |
| | | $wb['Name'] = 'Name'; |
| | | $wb['FastCGI Settings'] = 'FastCGI Settings'; |
| | | $wb['PHP-FPM Settings'] = 'PHP-FPM Settings'; |
| | | $wb['Additional PHP Versions'] = 'Additional PHP Versions'; |
| | | $wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions'; |
| | | $wb['FastCGI Settings'] = 'FastCGI postavke'; |
| | | $wb['PHP-FPM Settings'] = 'PHP-FPM postavke'; |
| | | $wb['Additional PHP Versions'] = 'Dodatne PHP verzije'; |
| | | $wb['Form to edit additional PHP versions'] = 'Forma za dodatne PHP verzije'; |
| | | $wb['server_php_name_error_empty'] = 'The Name field must not be empty.'; |
| | | $wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary'; |
| | | $wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory'; |
| | | $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; |
| | | $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'; |
| | | $wb['php_fastcgi_binary_txt'] = 'Putanja do PHP FastCGI datoteke'; |
| | | $wb['php_fastcgi_ini_dir_txt'] = 'Putanja do php.ini direktorija'; |
| | | $wb['php_fpm_init_script_txt'] = 'Putanja do PHP-FPM init skripte'; |
| | | $wb['php_fpm_ini_dir_txt'] = 'Putanja do php.ini direktorija'; |
| | | $wb['php_fpm_pool_dir_txt'] = 'Putanja do PHP-FPM pool direktorija'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['list_head_txt'] = 'Additional PHP Versions'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['add_new_record_txt'] = 'Add new PHP version'; |
| | | $wb['client_id_txt'] = 'Client'; |
| | | $wb['client_id_txt'] = 'Klijent'; |
| | | $wb['name_txt'] = 'PHP Name'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['Software Package'] = 'Software Package'; |
| | | $wb['Modify software package details'] = 'Modify software package details'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Pokreni instalaciju'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['package_description_txt'] = 'Opis'; |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['toolsarea_head_txt'] = 'Paketi'; |
| | | $wb['repoupdate_txt'] = 'Obnovi listu paketa'; |
| | | $wb['repoupdate_txt'] = 'Osvježi listu paketa'; |
| | | $wb['package_id_txt'] = 'lokalni App-ID'; |
| | | $wb['no_packages_txt'] = 'No packages available'; |
| | | $wb['edit_txt'] = 'Edit'; |
| | | $wb['delete_txt'] = 'Delete'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['repo_name_txt'] = 'Repozitorij'; |
| | | $wb['repo_url_txt'] = 'URL'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['update_title_txt'] = 'Nadogradi'; |
| | | $wb['version_txt'] = 'Verzija'; |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['no_updates_txt'] = 'No updates available'; |
| | | $wb['no_updates_txt'] = 'Nema nadogradnji'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['min_password_length_txt'] = 'Minimum password length'; |
| | | $wb['min_password_strength_txt'] = 'Minimum password strength'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['tpl_default_admin_head_txt'] = 'Global Default-Theme Settings'; |
| | | $wb['tpl_default_admin_head_txt'] = 'Globalne standardne postavke teme'; |
| | | $wb['tpl_default_admin_desc_txt'] = ''; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['client_id_txt'] = 'Client'; |
| | | $wb['name_txt'] = 'PHP Name'; |
| | | $wb['Name'] = 'Name'; |
| | | $wb['FastCGI Settings'] = 'FastCGI Settings'; |
| | | $wb['PHP-FPM Settings'] = 'PHP-FPM Settings'; |
| | | $wb['Additional PHP Versions'] = 'Additional PHP Versions'; |
| | | $wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions'; |
| | | $wb['server_php_name_error_empty'] = 'The Name field must not be empty.'; |
| | | $wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary'; |
| | | $wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory'; |
| | | $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; |
| | | $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'; |
| | | $wb['client_id_txt'] = 'Klijent'; |
| | | $wb['name_txt'] = 'PHP naziv'; |
| | | $wb['Name'] = 'Naziv'; |
| | | $wb['FastCGI Settings'] = 'FastCGI postavke'; |
| | | $wb['PHP-FPM Settings'] = 'PHP-FPM postavke'; |
| | | $wb['Additional PHP Versions'] = 'Dodatne PHP verzije'; |
| | | $wb['Form to edit additional PHP versions'] = 'Forma za editiranje dodatnih PHP verzija'; |
| | | $wb['server_php_name_error_empty'] = 'Nazive ne može biti prazan.'; |
| | | $wb['php_fastcgi_binary_txt'] = 'Putanja do PHP FastCGI izvršne datoteke'; |
| | | $wb['php_fastcgi_ini_dir_txt'] = 'Putanja do php.ini direktorija'; |
| | | $wb['php_fpm_init_script_txt'] = 'Putanja do PHP-FPM init skripte'; |
| | | $wb['php_fpm_ini_dir_txt'] = 'Putanja do php.ini direktorija'; |
| | | $wb['php_fpm_pool_dir_txt'] = 'Putanja do PHP-FPM pool direktorija'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['password_strength_txt'] = 'Jačina šifre'; |
| | | $wb['modules_txt'] = 'Modul'; |
| | | $wb['startmodule_txt'] = 'Početni modul'; |
| | | $wb['app_theme_txt'] = 'Izgled'; |
| | | $wb['app_theme_txt'] = 'Tema'; |
| | | $wb['typ_txt'] = 'Vrsta'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['language_txt'] = 'Jezik'; |
| | |
| | | $wb['groups_txt'] = 'Grupe'; |
| | | $wb['default_group_txt'] = 'Standardna grupa'; |
| | | $wb['startmodule_err'] = 'Početni modul nije u izabranim modulima.'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; |
| | | $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['username_error_collision'] = 'Korisničko ime ne može biti web ili web sa brojem.\\"'; |
| | | $wb['client_not_admin_err'] = 'Korisnik koji je u grupi klijenti ne može biti admin'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['warning_txt'] = '<b>UPOZORENJE:</b> Ovdje nemojte mijenjati podatke klijenta. Koristite \\"Klijent\\" i \\"Preprodavač\\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; |
| | | $wb['groups_txt'] = 'Groups'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb['Do ISPConfig-Update'] = 'Utför ISPConfig-uppdatering'; |
| | | $wb['Directive Snippets'] = 'Directive Snippets'; |
| | | ?> |
| | | |
| | |
| | | $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; |
| | | $wb['variables_txt'] = 'Variables'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Type'; |
| | | $wb['add_new_record_txt'] = 'Add Directive Snippet'; |
| | | ?> |
| | | |
| | |
| | | $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['udp_port_txt'] = 'Öppna UDP-portar'; |
| | | $wb['add_new_record_txt'] = 'Lägg till brandväggsinlägg'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Grupp'; |
| | | $wb['name_err'] = 'Gruppnamnet måste ha minst 1 och max 30 tecken.'; |
| | | ?> |
| | | |
| | |
| | | $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!'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['iptables_error_unique'] = 'Det finns redan brandväggsinlägg för den här servern'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['iptables_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern'; |
| | | ?> |
| | | |
| | |
| | | $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)'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Spara'; |
| | | $wb['btn_cancel_txt'] = 'Tillbaka'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Exportera de valda språkfilerna'; |
| | | $wb['btn_cancel_txt'] = 'Tillbaka'; |
| | | ?> |
| | | |
| | |
| | | $wb['ignore_version_txt'] = 'Hoppa över ISPConfig versionskontroll'; |
| | | $wb['list_desc_txt'] = 'VARNING: Importera inte språkfiler från opålitliga källor!'; |
| | | ?> |
| | | |
| | |
| | | $wb['lang_file_txt'] = 'Språkfil'; |
| | | $wb['lang_file_date_txt'] = 'Senast ändrad'; |
| | | ?> |
| | | |
| | |
| | | $wb['repo_password_txt'] = 'Lösenord (Frivilligt)'; |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | ?> |
| | | |
| | |
| | | $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>'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; |
| | | $wb['password_match_txt'] = 'Lösenorden matchar'; |
| | | ?> |
| | | |
| | |
| | | $wb['parent_remote_userid_txt'] = 'ID'; |
| | | $wb['username_txt'] = 'Username'; |
| | | ?> |
| | | |
| | |
| | | $wb['proxy_server_txt'] = 'Proxy-server'; |
| | | $wb['firewall_server_txt'] = 'Brandväggsserver'; |
| | | ?> |
| | | |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | | |
| | |
| | | $wb['list_head_txt'] = 'Serverkonfiguration'; |
| | | $wb['server_name_txt'] = 'Server'; |
| | | ?> |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP-portar'; |
| | | $wb['error_port_syntax'] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443'; |
| | | ?> |
| | | |
| | |
| | | $wb['virtualhost_port_txt'] = 'HTTP-portar'; |
| | | $wb['ip_type_txt'] = 'Typ'; |
| | | ?> |
| | | |
| | |
| | | $wb['proxy_server_txt'] = 'Proxy'; |
| | | $wb['firewall_server_txt'] = 'Brandvägg'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $wb['client_id_txt'] = 'Kund'; |
| | | $wb['name_txt'] = 'PHP-namn'; |
| | | ?> |
| | | |
| | |
| | | $wb['Software Package'] = 'Mjukvarupaket'; |
| | | $wb['Modify software package details'] = 'Redigera mjukvarupaketets uppgifter'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_save_txt'] = 'Påbörja installation'; |
| | | $wb['btn_cancel_txt'] = 'Avbryt'; |
| | | ?> |
| | | |
| | |
| | | $wb['edit_txt'] = 'Redigera'; |
| | | $wb['delete_txt'] = 'Radera'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['Software Repository which may contain addons or updates'] = 'Pragarmvarubibliotek som kan innehålla uppdateringar eller tillägg'; |
| | | ?> |
| | | |
| | |
| | | $wb['repo_name_txt'] = 'Repository'; |
| | | $wb['repo_url_txt'] = 'URL'; |
| | | ?> |
| | | |
| | |
| | | $wb['server_select_txt'] = 'Välj server'; |
| | | $wb['no_updates_txt'] = 'Inga tillgängliga uppdateringar'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; |
| | | $wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; |
| | | $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.'; |
| | | $wb['network_filesystem_txt'] = 'Network Filesystem'; |
| | | ?> |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_osupdate'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_remote_users'); |
| | | |
| | | $app->uses('tpl,tform'); |
| | | $app->load('tform_actions'); |
| | |
| | | die; |
| | | } |
| | | |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_remote_users'); |
| | | |
| | | // Disable this function in demo mode |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_config'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $app->uses("tform_actions"); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_config'); |
| | | |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_services'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $app->uses("tform_actions"); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_services'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_ip'); |
| | | |
| | | $app->uses("tform_actions"); |
| | | $app->tform_actions->onDelete(); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_ip'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_php'); |
| | | |
| | | $app->uses("tform_actions"); |
| | | $app->tform_actions->onDelete(); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_server_php'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_packages'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $software_update_inst_id = $app->functions->intval($_GET['software_update_inst_id']); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_packages'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | // Loading classes |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_packages'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_repo'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $app->uses("tform_actions"); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_repo'); |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | // Loading classes |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_software_packages'); |
| | | |
| | | //* This is only allowed for administrators |
| | | if(!$app->auth->is_admin()) die('only allowed for administrators.'); |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_system_config'); |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | |
| | | {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"> |
| | |
| | | {tmpl_var name='website_symlinks_rel'} |
| | | </div> |
| | | </div> |
| | | <div class="ctrlHolder"> |
| | | <label for="website_symlinks_rel">{tmpl_var name='network_filesystem_txt'}</label> |
| | | <div class="multiField"> |
| | | {tmpl_var name='network_filesystem'} |
| | | </div> |
| | | </div> |
| | | <div class="ctrlHolder"> |
| | | <label for="website_autoalias">{tmpl_var name='website_autoalias_txt'}</label> |
| | | <input name="website_autoalias" id="website_autoalias" value="{tmpl_var name='website_autoalias'}" size="40" maxlength="255" type="text" class="textInput" /> {tmpl_var name='website_autoalias_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[client_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[client_username]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_domain]</a> |
| | |
| | | <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> |
| | |
| | | <?php |
| | | die('unused'); |
| | | /* |
| | | Copyright (c) 2007, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | |
| | | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('admin'); |
| | | $app->auth->check_security_permissions('admin_allow_del_cpuser'); |
| | | if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $app->uses("tform_actions"); |
| | |
| | | |
| | | function onBeforeInsert() { |
| | | global $app, $conf; |
| | | |
| | | //* Security settings check |
| | | if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin') { |
| | | $app->auth->check_security_permissions('admin_allow_new_admin'); |
| | | } |
| | | |
| | | if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { |
| | | $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | function onBeforeUpdate() { |
| | |
| | | |
| | | if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | //* Security settings check |
| | | if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin') { |
| | | $app->auth->check_security_permissions('admin_allow_new_admin'); |
| | | } |
| | | |
| | | if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { |
| | | $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; |
| | | } |
| | |
| | | |
| | | // make sure that the record belongs to the client group and not the admin group when admin inserts it |
| | | // also make sure that the user can not delete domain created by a admin |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { |
| | | if(($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) || ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid']))) { |
| | | $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); |
| | | $app->db->query("UPDATE domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); |
| | | } |
| | |
| | | $wb['error_client_can_not_add_domain'] = 'Nemůžete přidat novou doménu'; |
| | | $wb['error_client_group_id_empty'] = 'Musíte vybrat zákazníka<br>'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_python_txt'] = 'Python - dostupná volba pro klienta'; |
| | | $wb['force_suexec_txt'] = 'SuEXEC - povinné pro klienta'; |
| | | $wb['limit_hterror_txt'] = 'Vlastní Error (chybové) dokumenty'; |
| | | $wb['limit_wildcard_txt'] = 'Wildcard subdomain available'; |
| | | $wb['limit_wildcard_txt'] = '(*.) automatická subdoména - dostupná volba pro klienta'; |
| | | $wb['limit_ssl_txt'] = 'SSL - dostupná volba pro klienta'; |
| | | $wb['bank_account_number_txt'] = 'Číslo účtu'; |
| | | $wb['bank_code_txt'] = 'Kód banky'; |
| | |
| | | $wb['parent_client_id_txt'] = 'Přiřazení klienta k distributorovi (prodejci)'; |
| | | $wb['none_txt'] = 'Žádný'; |
| | | ?> |
| | | |
| | |
| | | $wb['description_txt'] = 'Popis'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | ?> |
| | | |
| | |
| | | $wb['delete_txt'] = 'Smazat'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta'; |
| | | $wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?'; |
| | | ?> |
| | | |
| | |
| | | $wb['gender_m_txt'] = 'Pan'; |
| | | $wb['gender_f_txt'] = 'Paní'; |
| | | ?> |
| | | |
| | |
| | | $wb['variables_description_txt'] = 'Proměnné uživatelské jméno a heslo jsou k dispozici (funkční) jako volba pouze v uvítacím e-mailu.'; |
| | | $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_type_txt'] = 'Zpráva pro'; |
| | | $wb['template_name_txt'] = 'Název šablony'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_openvz_vm_txt'] = 'Max. počet virtuálních serverů'; |
| | | $wb['limit_openvz_vm_template_id_txt'] = 'Povinná šablona pro virtuální server'; |
| | | $wb['limit_openvz_vm_error_notint'] = 'Limit pro virtuální servery musí být číslo.'; |
| | | $wb['ssh_chroot_txt'] = 'SSH-Chroot Options'; |
| | | $wb['web_php_options_txt'] = 'PHP Options'; |
| | | $wb['ssh_chroot_txt'] = 'SSH-Chroot Možnosti'; |
| | | $wb['web_php_options_txt'] = 'PHP Možnosti'; |
| | | $wb['template_type_txt'] = 'Typ šablony'; |
| | | $wb['template_name_txt'] = 'Název šablony'; |
| | | $wb['limit_cgi_txt'] = 'CGI - dostupná volba pro klienta'; |
| | |
| | | $wb['limit_python_txt'] = 'Python - dostupná volba pro klienta'; |
| | | $wb['force_suexec_txt'] = 'SuEXEC - povinné pro klienta'; |
| | | $wb['limit_hterror_txt'] = 'Vlastní Error (chybové) dokumenty'; |
| | | $wb['limit_wildcard_txt'] = 'Wildcard subdomain available'; |
| | | $wb['limit_wildcard_txt'] = '(*.) automatická subdoména - dostupná volba pro klienta'; |
| | | $wb['limit_ssl_txt'] = 'SSL - dostupná volba pro klienta'; |
| | | $wb['web_limits_txt'] = 'Webové limity'; |
| | | $wb['email_limits_txt'] = 'E-mailové limity'; |
| | |
| | | $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; |
| | | $wb['client_limits_txt'] = 'Klientské limity'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_name_txt'] = 'Název šablony'; |
| | | $wb['template_id_txt'] = 'ID šablony'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['customer_no_txt'] = 'Zákaznické číslo'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_error_regex'] = 'Toto doménové jméno je zakázáno'; |
| | | $wb['Domain'] = 'Doména'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Doména'; |
| | | $wb['user_txt'] = 'Klient'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_python_txt'] = 'Python - dostupná volba pro klienta'; |
| | | $wb['force_suexec_txt'] = 'SuEXEC - povinné pro klienta'; |
| | | $wb['limit_hterror_txt'] = 'Vlastní Error (chybové) dokumenty'; |
| | | $wb['limit_wildcard_txt'] = 'Wildcard subdomain available'; |
| | | $wb['limit_wildcard_txt'] = '(*.) automatická subdoména - dostupná volba pro klienta'; |
| | | $wb['limit_ssl_txt'] = 'SSL - dostupná volba pro klienta'; |
| | | $wb['web_limits_txt'] = 'Webové limity'; |
| | | $wb['email_limits_txt'] = 'E-mailové limity'; |
| | |
| | | $wb['client_limits_txt'] = 'Klientské limity'; |
| | | $wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \\"hlavní šablona\\" nastavena na volbu \\"Custom\\".'; |
| | | ?> |
| | | |
| | |
| | | $wb['customer_no_txt'] = 'Zákaznické číslo'; |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | |
| | | $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'; |
| | |
| | | $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.'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['Client'] = 'Klijenti'; |
| | | $wb['Klijent'] = 'Klijenti'; |
| | | $wb['Address'] = 'Adresa'; |
| | | $wb['Limits'] = 'Limiti'; |
| | | $wb['Add Client'] = 'Dodaj klijenta'; |
| | | $wb['Edit Client'] = 'Editiraj klijenta'; |
| | | $wb['Clients'] = 'Klijenti'; |
| | | $wb['Templates'] = 'Templates'; |
| | | $wb['Limit-Templates'] = 'Limit-Templates'; |
| | | $wb['Templates'] = 'Predlošci'; |
| | | $wb['Limit-Templates'] = 'Limiti-Predlošci'; |
| | | $wb['Add Reseller'] = 'Dodaj preprodavača'; |
| | | $wb['Edit Reseller'] = 'Editiraj preprodavača'; |
| | | $wb['Resellers'] = 'Preprodavači'; |
| | | $wb['error_has_clients'] = 'Ovaj preprodavač ima klijente. Prvo morate obrisati klijente preprodavača.'; |
| | | $wb['add_additional_template_txt'] = 'Dodaj dodatni predložak'; |
| | | $wb['delete_additional_template_txt'] = 'Obriši dodatni predložak'; |
| | | $wb['Messaging'] = 'Messaging'; |
| | | $wb['Send email'] = 'Send Email'; |
| | | $wb['Edit Client Circle'] = 'Edit Client Circle'; |
| | | $wb['Domains'] = 'Domains'; |
| | | $wb['domain_txt'] = 'Domain'; |
| | | $wb['client_txt'] = 'Client'; |
| | | $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; |
| | | $wb['error_domain_in webuse'] = 'This domain cannot be deleted, because it is in use as web-domain'; |
| | | $wb['error_client_can_not_add_domain'] = 'You cannot add a new domain'; |
| | | $wb['error_client_group_id_empty'] = 'You have to select a customer<br>'; |
| | | $wb['Messaging'] = 'Slanje poruka'; |
| | | $wb['Send email'] = 'Pošalji email'; |
| | | $wb['Edit Client Circle'] = 'Promijeni krug klijenata'; |
| | | $wb['Domains'] = 'Domene'; |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['client_txt'] = 'Klijent'; |
| | | $wb['error_domain_in mailuse'] = 'Ova domena ne može biti obrisana jer se koristi kao mail domena'; |
| | | $wb['error_domain_in webuse'] = 'Ova domena ne može biti obrisana jer se koristi kao web domena'; |
| | | $wb['error_client_can_not_add_domain'] = 'Ne možete dodati novu domenu'; |
| | | $wb['error_client_group_id_empty'] = 'Morate izabrati klijenta<br>'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['cron_job_limits_txt'] = 'Cron Job Limits'; |
| | | $wb['dns_limits_txt'] = 'DNS Limits'; |
| | | $wb['virtualization_limits_txt'] = 'Virtualization Limits'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generirajšifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['active_template_additional_txt'] = 'Active Addons'; |
| | | $wb['bank_account_owner_txt'] = 'Bank account owner'; |
| | | $wb['email_error_isemail'] = 'Please enter a valid email address.'; |
| | | $wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; |
| | | $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 Email'; |
| | |
| | | $wb['parent_client_id_txt'] = 'Client of reseller'; |
| | | $wb['none_txt'] = 'none'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['Client Circle'] = 'Client Circle'; |
| | | $wb['Circle'] = 'Circle'; |
| | | $wb['circle_txt'] = 'Circle'; |
| | | $wb['circle_name_txt'] = 'Circle Name'; |
| | | $wb['client_ids_txt'] = 'Clients/Resellers'; |
| | | $wb['description_txt'] = 'Description'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['Client Circle'] = 'Krug klijenata'; |
| | | $wb['Circle'] = 'Krug'; |
| | | $wb['circle_txt'] = 'Krug'; |
| | | $wb['circle_name_txt'] = 'Naziv kruga'; |
| | | $wb['client_ids_txt'] = 'Klijenti/Preprodavači'; |
| | | $wb['description_txt'] = 'Opis'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Client Circles'; |
| | | $wb['circle_id_txt'] = 'Circle ID'; |
| | | $wb['circle_name_txt'] = 'Circle Name'; |
| | | $wb['description_txt'] = 'Description'; |
| | | $wb['add_new_record_txt'] = 'Add new circle'; |
| | | $wb['list_head_txt'] = 'Krug klijenata'; |
| | | $wb['circle_id_txt'] = 'ID kruga'; |
| | | $wb['circle_name_txt'] = 'Naziv kruga'; |
| | | $wb['description_txt'] = 'Opis'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi krug'; |
| | | $wb['filter_txt'] = 'Filter'; |
| | | $wb['delete_txt'] = 'Delete'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['delete_txt'] = 'Obriši'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['btn_cancel_txt'] = 'Prekini i ne briši klijenta'; |
| | | $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['btn_send_txt'] = 'Send email'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['sender_txt'] = 'Sender email address'; |
| | | $wb['subject_txt'] = 'Subject'; |
| | | $wb['message_txt'] = 'Message'; |
| | | $wb['form_legend_client_txt'] = 'Send email message to all clients.'; |
| | | $wb['form_legend_admin_txt'] = 'Send email message to all clients and resellers.'; |
| | | $wb['sender_invalid_error'] = 'Sender email invalid.'; |
| | | $wb['subject_invalid_error'] = 'Subject is empty.'; |
| | | $wb['message_invalid_error'] = 'Message is empty.'; |
| | | $wb['email_sent_to_txt'] = 'Email sent to:'; |
| | | $wb['page_head_txt'] = 'Send customer information'; |
| | | $wb['recipient_txt'] = 'Recipient'; |
| | | $wb['all_clients_resellers_txt'] = 'All clients and resellers'; |
| | | $wb['all_clients_txt'] = 'All clients'; |
| | | $wb['variables_txt'] = 'Variables:'; |
| | | $wb['gender_m_txt'] = 'Mr.'; |
| | | $wb['gender_f_txt'] = 'Ms.'; |
| | | $wb['btn_send_txt'] = 'Pošalji email'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['sender_txt'] = 'Adresa pošiljatelja'; |
| | | $wb['subject_txt'] = 'Naslov'; |
| | | $wb['message_txt'] = 'Poruka'; |
| | | $wb['form_legend_client_txt'] = 'Pošalji email svim klijentima.'; |
| | | $wb['form_legend_admin_txt'] = 'Pošalji email svim klijentima i preprodavačima.'; |
| | | $wb['sender_invalid_error'] = 'Neispravan email pošiljatelja.'; |
| | | $wb['subject_invalid_error'] = 'Naslov emaila je prazan.'; |
| | | $wb['message_invalid_error'] = 'Niste napisali poruku.'; |
| | | $wb['email_sent_to_txt'] = 'Email poslan:'; |
| | | $wb['page_head_txt'] = 'Pošalji klijentske informacije'; |
| | | $wb['recipient_txt'] = 'Primatelj'; |
| | | $wb['all_clients_resellers_txt'] = 'Svi klijenti i preprodavači'; |
| | | $wb['all_clients_txt'] = 'Svi klijenti'; |
| | | $wb['variables_txt'] = 'Varijable:'; |
| | | $wb['gender_m_txt'] = 'g.'; |
| | | $wb['gender_f_txt'] = 'gđa.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['variables_description_txt'] = '(The username and password variables are only available in welcome emails.)'; |
| | | $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Email templates'; |
| | | $wb['template_type_txt'] = 'Message for'; |
| | | $wb['template_name_txt'] = 'Template name'; |
| | | $wb['list_head_txt'] = 'Email predlošci'; |
| | | $wb['template_type_txt'] = 'Poruka za'; |
| | | $wb['template_name_txt'] = 'Naziv predloška'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; |
| | | $wb['client_limits_txt'] = 'Client Limits'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['template_name_txt'] = 'Naziv predloška'; |
| | | $wb['template_id_txt'] = 'Template ID'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['customer_no_txt'] = 'Customer No.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['domain_error_empty'] = 'Ime domene je prazno'; |
| | | $wb['domain_error_unique'] = 'Domena već postoji'; |
| | | $wb['domain_error_regex'] = 'Ovo ime domene ne možete upotrijebiti'; |
| | | $wb['Domain'] = 'Domena'; |
| | | $wb['Domena'] = 'Domena'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['list_head_txt'] = 'Domene'; |
| | | $wb['add_new_record_txt'] = 'Dodaj domenu'; |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['user_txt'] = 'Client'; |
| | | $wb['user_txt'] = 'Klijent'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['cron_job_limits_txt'] = 'Cron Job Limits'; |
| | | $wb['dns_limits_txt'] = 'DNS Limits'; |
| | | $wb['virtualization_limits_txt'] = 'Virtualization Limits'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['email_error_isemail'] = 'Please enter a valid email address.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; |
| | | $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 Email'; |
| | |
| | | $wb['limit_aps_txt'] = 'Max. number of APS instances'; |
| | | $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; |
| | | $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; |
| | | $wb['locked_txt'] = 'Locked'; |
| | | $wb['locked_txt'] = 'Zaključano'; |
| | | $wb['canceled_txt'] = 'Canceled'; |
| | | $wb['gender_m_txt'] = 'Mr.'; |
| | | $wb['gender_f_txt'] = 'Ms.'; |
| | | $wb['gender_txt'] = 'Title'; |
| | | $wb['gender_m_txt'] = 'g.'; |
| | | $wb['gender_f_txt'] = 'gđa.'; |
| | | $wb['gender_txt'] = 'Titula'; |
| | | $wb['customer_no_template_txt'] = 'Customer No. template'; |
| | | $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contains invalid characters'; |
| | | $wb['customer_no_start_txt'] = 'Customer No. start value'; |
| | | $wb['customer_no_counter_txt'] = 'Customer No. counter'; |
| | | $wb['added_by_txt'] = 'Added by'; |
| | | $wb['added_date_txt'] = 'Added date'; |
| | | $wb['added_by_txt'] = 'Dodao'; |
| | | $wb['added_date_txt'] = 'Datum dodavanja'; |
| | | $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; |
| | | $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; |
| | | $wb['client_limits_txt'] = 'Client Limits'; |
| | | $wb['limit_domainmodule_txt'] = 'Domain module Limit'; |
| | | $wb['client_limits_txt'] = 'Limiti klijenata'; |
| | | $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['city_txt'] = 'Grad'; |
| | | $wb['country_txt'] = 'Država'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novog preprodavača'; |
| | | $wb['customer_no_txt'] = 'Customer No.'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['customer_no_txt'] = 'Klijent br.'; |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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>'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | |
| | | $wb['parent_client_id_txt'] = 'Kund till återförsäljare'; |
| | | $wb['none_txt'] = 'ingen'; |
| | | ?> |
| | | |
| | |
| | | $wb['description_txt'] = 'BEskrivning'; |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | ?> |
| | | |
| | |
| | | $wb['delete_txt'] = 'Radera'; |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | ?> |
| | | |
| | |
| | | $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?'; |
| | | ?> |
| | | |
| | |
| | | $wb['gender_m_txt'] = 'Herr'; |
| | | $wb['gender_f_txt'] = 'Fru'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_type_txt'] = 'Meddelande till'; |
| | | $wb['template_name_txt'] = 'Mallnamn'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; |
| | | $wb['client_limits_txt'] = 'Client Limits'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_name_txt'] = 'Mallnamn'; |
| | | $wb['template_id_txt'] = 'Mall-ID'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Användarnamn'; |
| | | $wb['customer_no_txt'] = 'Kundnummer'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_error_regex'] = 'Denna domän är ogiltig'; |
| | | $wb['Domain'] = 'Domän'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domän'; |
| | | $wb['user_txt'] = 'Kund'; |
| | | ?> |
| | | |
| | |
| | | $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['customer_no_txt'] = 'Kundnummer'; |
| | | $wb['username_txt'] = 'Användarnamn'; |
| | | ?> |
| | | |
| | |
| | | <td class="tbl_col_domain"><a href="#" onclick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> |
| | | <td class="tbl_col_domain"><a href="#" onclick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> |
| | | <td class="tbl_col_buttons"> |
| | | <tmpl_if name="is_admin"> |
| | | <a class="button icons16 icoDelete" href="javascript: del_record('client/domain_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> |
| | | </tr> |
| | | </tmpl_loop> |
| | |
| | | 'db_table' => 'client', |
| | | 'db_where' => ""); |
| | | |
| | | |
| | | $limits[] = array('field' => 'limit_domain', |
| | | 'db_table' => 'domain', |
| | | 'db_where' => ""); |
| | | |
| | | |
| | | //* Loading Template |
| | |
| | | $wb['welcome_user_txt'] = 'Vítejte %s'; |
| | | $wb['available_modules_txt'] = 'Dostupné moduly'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_database_txt'] = 'Počet databází'; |
| | | $wb['limit_mailmailinglist_txt'] = 'Počet e-mailových konferencí'; |
| | | ?> |
| | | |
| | |
| | | $wb['quota_txt'] = 'Kvóta'; |
| | | $wb['no_email_accounts_txt'] = 'Nenalezeny žádné e-mailové účty.'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Dostupné moduly'; |
| | | ?> |
| | | |
| | |
| | | $wb['soft_txt'] = 'Kvóta pro upozornění'; |
| | | $wb['no_sites_txt'] = 'Nenalezeny žádné webové stránky.'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_client_txt'] = 'Anzahl der Kunden'; |
| | | $wb['limit_database_txt'] = 'Anzahl der Datenbanken'; |
| | | $wb['limit_mailmailinglist_txt'] = 'Anzahl der Mailinglisten'; |
| | | $wb['limit_domain_txt'] = 'Anzahl der Domains'; |
| | | ?> |
| | |
| | | $wb["limit_webdav_user_txt"] = 'Number of Webdav users'; |
| | | $wb["limit_client_txt"] = 'Number of Clients'; |
| | | $wb["limit_database_txt"] = 'Number of Databases'; |
| | | $wb['limit_domain_txt'] = 'Number of Domains'; |
| | | ?> |
| | |
| | | $wb['welcome_user_txt'] = 'Dobrodošao %s'; |
| | | $wb['available_modules_txt'] = 'Dostupni moduli'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['limit_database_txt'] = 'Broj baza'; |
| | | $wb['limit_mailmailinglist_txt'] = 'Broj mail lista'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['mailquota_txt'] = 'Mailbox Quota'; |
| | | $wb['email_txt'] = 'Email Address'; |
| | | $wb['name_txt'] = 'Name'; |
| | | $wb['name_txt'] = 'Naziv'; |
| | | $wb['used_txt'] = 'Used Space'; |
| | | $wb['quota_txt'] = 'Quota'; |
| | | $wb['quota_txt'] = 'Kvota'; |
| | | $wb['no_email_accounts_txt'] = 'No email accounts found.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Dostupni moduli'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['soft_txt'] = 'Soft limit'; |
| | | $wb['no_sites_txt'] = 'No web sites found.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['welcome_user_txt'] = 'Välkommen %s'; |
| | | $wb['available_modules_txt'] = 'Tillgängliga moduler'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_database_txt'] = 'Antal databaser'; |
| | | $wb['limit_mailmailinglist_txt'] = 'Antal mailinglistor'; |
| | | ?> |
| | | |
| | |
| | | $wb['quota_txt'] = 'Kvot'; |
| | | $wb['no_email_accounts_txt'] = 'Inga epostkonton hittades'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Tillgängliga moduler'; |
| | | ?> |
| | | |
| | |
| | | $wb['soft_txt'] = 'Mjuk gräns'; |
| | | $wb['no_sites_txt'] = 'Ingen webbsida hittades.'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | $wb['Secondary Zones'] = 'Sekundární DNS zóny'; |
| | | $wb['Import Zone File'] = 'Importovat vybraný DNS zonový soubor'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_duplicate'] = 'Duplikace A záznamu'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'z'; |
| | | $wb['delete_confirmation'] = 'Skutečně chcete smazat tento záznam ?'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'IP adresa má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Cílový Hostname má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Informace o hostovi má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['no_file_uploaded_error'] = 'Nelze odeslat DNS zonový soubor'; |
| | | $wb['zone_file_import_txt'] = 'Importovat vybraný DNS zonový soubor'; |
| | | ?> |
| | | |
| | |
| | | $wb['duplicate_mx_record_txt'] = 'Duplicitní MX záznam.'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Jmenný server má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Kanonického hostname má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Odpovědná osoba má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ipv4_form_txt'] = 'IPV4 formát, např. 1.2.3.4'; |
| | | $wb['secondary_zone_txt'] = 'Sekundární DNS zóna'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Sekundární DNS-Zóny'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'Zóna'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['add_new_record_txt'] = 'Přidat novou Sekundarní DNS-Zónu'; |
| | | $wb['eg_domain_tld'] = 'např. domena.cz'; |
| | | $wb['sys_groupid_txt'] = 'Klient'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat sekundární DNS zónu'; |
| | | $wb['eg_domain_tld'] = 'např. domena.cz'; |
| | | ?> |
| | | |
| | |
| | | $wb['ttl_range_error'] = 'Min. TTL čas je 60 sekund.'; |
| | | $wb['xfer_error_regex'] = 'Také oznámí: Prosím, použijte IP adresu.'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'DNS-Zóny'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'Zóna'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['mbox_txt'] = 'E-mail'; |
| | | $wb['add_new_record_wizard_txt'] = 'Přidat novou DNS zónu pomocí průvodce'; |
| | | $wb['add_new_record_txt'] = 'Přidat novou DNS zónu manuálně'; |
| | | $wb['sys_groupid_txt'] = 'Klient'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat DNS zónu (SOA záznam)'; |
| | | $wb['add_new_record_wizard_txt'] = 'Přidat DNS zónu (dle šablony)'; |
| | | ?> |
| | | |
| | |
| | | $wb['aux_txt'] = 'Priorita'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_txt'] = 'Šablona'; |
| | | $wb['visible_txt'] = 'Viditelný'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Název'; |
| | | $wb['add_new_record_txt'] = 'Přidat záznam'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Text má chybný formát'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['list_desc_txt'] = 'Vytvoření DNS zóny pomocí průvodce'; |
| | | $wb['dkim_txt'] = 'DKIM enabled'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | $wb['Secondary Zones'] = 'Sekundarne zone'; |
| | | $wb['Import Zone File'] = 'Importiraj zonsku datoteku'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['data_error_empty'] = 'Polje IP adresa je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format A zapisa'; |
| | | $wb['data_error_duplicate'] = 'Već postoji ovaj A ili CNAME zapis'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['page_of_txt'] = 'od'; |
| | | $wb['delete_confirmation'] = 'Sigurno želite obrisati ovaj zapis?'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Polje IPv6 adresa je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format IPv6 adrese'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Polje odredišni host je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format odredišnog hosta'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['data_error_empty'] = 'Polje odredišni host je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format odredišnog host zapisa'; |
| | | $wb['data_error_duplicate'] = 'Duplicirani A zapis ili CNAME zapis'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Nedostaju informacije o hostu'; |
| | | $wb['data_error_regex'] = 'Informacije o hostu su u neispravanom formatu'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['client_txt'] = 'Client'; |
| | | $wb['btn_save_txt'] = 'Import Zonefile'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['domain_txt'] = 'Domain'; |
| | | $wb['client_txt'] = 'Klijent'; |
| | | $wb['btn_save_txt'] = 'Importiraj zonsku datoteku'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; |
| | | $wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; |
| | | $wb['zonefile_to_import_txt'] = 'Zone File'; |
| | | $wb['zonefile_to_import_txt'] = 'Zonska datoteka'; |
| | | $wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; |
| | | $wb['title'] = 'Import Zone Files'; |
| | | $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; |
| | | $wb['zone_file_import_txt'] = 'Zone File Import'; |
| | | $wb['title'] = 'Importiraj zonske datoteka'; |
| | | $wb['no_file_uploaded_error'] = 'Nije prenešena zonska datoteka'; |
| | | $wb['zone_file_import_txt'] = 'Importiraj zonsku datoteku'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Naziv mail hosta polje je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format naziva mail host zapisa'; |
| | | $wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['duplicate_mx_record_txt'] = 'Duplicirani MX zapis.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv zone je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Nameserver nije upisan'; |
| | | $wb['data_error_regex'] = 'Nameserver je u pogrešnom formatu'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Polje Canonical naziv hosta je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format Canonical host zapisa'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Polje za odgovornu osobu je prazno'; |
| | | $wb['data_error_regex'] = 'Polje za odgovornu osobu je neispravno'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'DNS Zona'; |
| | | $wb['origin_txt'] = 'DNS zona'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['limit_dns_slave_zone_txt'] = 'Iskorišten je maksimalan broj sekundarnih DNS zona za vaš račun.'; |
| | | $wb['client_txt'] = 'Klijent'; |
| | | $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list)'; |
| | | $wb['xfer_txt'] = 'Dozvoli transfer zona<br />slijedećim IP-evima (odvojiti zarezom)'; |
| | | $wb['server_id_error_empty'] = 'Nije izabran server.'; |
| | | $wb['origin_error_empty'] = 'Zona je prazna.'; |
| | | $wb['origin_error_unique'] = 'Već postoji zapis za ovu zonu.'; |
| | |
| | | $wb['ns_error_regex'] = 'NS je u pogrešnom formatu.'; |
| | | $wb['eg_domain_tld'] = 'npr. domena.tld.'; |
| | | $wb['ipv4_form_txt'] = 'IPv4 forma - npr. 1.2.3.4'; |
| | | $wb['secondary_zone_txt'] = 'Secondary DNS Zone'; |
| | | $wb['secondary_zone_txt'] = 'Sekundarne DNS zone'; |
| | | ?> |
| | | |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Sekundarne DNS zone'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'Zona'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['add_new_record_txt'] = 'Dodaj sekundarnu DNS zonu'; |
| | | $wb['eg_domain_tld'] = 'npr. domena.tld.'; |
| | | $wb['sys_groupid_txt'] = 'Klijent'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Dodaj sekundarnu DNS zonu'; |
| | | $wb['eg_domain_tld'] = 'npr. domena.tld.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['expire_txt'] = 'Expire'; |
| | | $wb['minimum_txt'] = 'Minimalno'; |
| | | $wb['ttl_txt'] = 'TTL'; |
| | | $wb['xfer_txt'] = 'Dozvoli transfer zona <br />ovim IP-ovima (odvojeni zarezom)'; |
| | | $wb['xfer_txt'] = 'Dozvoli transfer zona<br />slijedećim IP-evima (odvojiti zarezom)'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['limit_dns_zone_txt'] = 'Iskorišten je maksimalan broj DNS zapisa za vaš račun.'; |
| | | $wb['client_txt'] = 'Klijent'; |
| | |
| | | $wb['eg_ns1_domain_tld'] = 'npr. ns1.domena.tld'; |
| | | $wb['eg_webmaster_domain_tld'] = 'npr. webmaster@domena.tld'; |
| | | $wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Ova domena ne može biti promijenjena. Pošaljite zahtjev administratoru ako želite promijeniti naziv domene.'; |
| | | $wb['refresh_range_error'] = 'Min. Refresh time is 60 seconds.'; |
| | | $wb['retry_range_error'] = 'Min. Retry time is 60 seconds.'; |
| | | $wb['expire_range_error'] = 'Min. Expire time is 60 seconds.'; |
| | | $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['xfer_error_regex'] = 'Also notify: Please use an IP address.'; |
| | | $wb['refresh_range_error'] = 'Minimalno vrijeme osvježavanja je 60 sekundi.'; |
| | | $wb['retry_range_error'] = 'Minimalno Retry vrijeme je 60 sekundi.'; |
| | | $wb['expire_range_error'] = 'Minimalno vrijeme isteka je 60 sekundi.'; |
| | | $wb['minimum_range_error'] = 'Minimalno vrijeme minimuma je 60 sekundi.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | $wb['xfer_error_regex'] = 'Također obavijesti: Koristite IP adresu.'; |
| | | ?> |
| | | |
| | | |
| New file |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'DNS zone'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'Zona'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['mbox_txt'] = 'Email'; |
| | | $wb['add_new_record_wizard_txt'] = 'Dodaj novu DNS zonu sa čarobnjakom'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novu DNS zonu ručno'; |
| | | $wb['sys_groupid_txt'] = 'Klijent'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'DNS zone'; |
| | | $wb['list_head_txt'] = 'DNS zona'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['origin_txt'] = 'Zone'; |
| | | $wb['origin_txt'] = 'Zona'; |
| | | $wb['ns_txt'] = 'NS'; |
| | | $wb['mbox_txt'] = 'Email'; |
| | | $wb['add_new_record_wizard_txt'] = 'Dodaj novu DNS zonu sa čarobnjakom'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novu DNS zonu ručno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['ttl_txt'] = 'TTL'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['aux_txt'] = 'Prioritet'; |
| | | $wb['limit_dns_record_txt'] = 'Iskorišten je maksimalan broj DNS zapisa za vaš ra�un.'; |
| | | $wb['limit_dns_record_txt'] = 'Iskorišten je maksimalan broj DNS zapisa za vaš račun.'; |
| | | $wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domeni.'; |
| | | $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'Polje serverski zapis je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format serverskog zapisa'; |
| | | $wb['srv_error_regex'] = 'Neispravan format serverskog zapisa. Mora sadržavati barem 3 tekstualne rije�i odvojene razmakom.'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['srv_error_regex'] = 'Neispravan format serverskog zapisa. Mora sadržavati barem 3 tekstualne riječi odvojene razmakom.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['template_txt'] = 'Predložak'; |
| | | $wb['visible_txt'] = 'Vidljivo'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'DNS čarobnjak predložaka'; |
| | | $wb['list_head_txt'] = 'Čarobnjak za DNS predloške'; |
| | | $wb['visible_txt'] = 'Vidljivo'; |
| | | $wb['name_txt'] = 'Naziv'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.'; |
| | | $wb['data_error_empty'] = 'TXT polje je prazno'; |
| | | $wb['data_error_regex'] = 'Neispravan format TXT zapisa'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['error_ns1_regex'] = 'NS1 sadrži nedozvoljene znakove.'; |
| | | $wb['error_ns2_regex'] = 'NS2 sadrži nedozvoljene znakove.'; |
| | | $wb['error_email_regex'] = 'Email adresa nije ispravna.'; |
| | | $wb['dns_zone_txt'] = 'DNS Zone'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'of'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'results'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'No results.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 results'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Search'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; |
| | | $wb['dkim_txt'] = 'DKIM enabled'; |
| | | $wb['list_head_txt'] = 'DNS Zone Wizard'; |
| | | $wb['list_desc_txt'] = 'Create a DNS Zone via a wizard'; |
| | | $wb['dns_zone_txt'] = 'DNS zona'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'od'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; |
| | | $wb['list_head_txt'] = 'DNS čarobnjak'; |
| | | $wb['list_desc_txt'] = 'Kreiraj DNS zonu sa čarobnjakom'; |
| | | ?> |
| | | |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | $wb['Secondary Zones'] = 'Sekundära zoner'; |
| | | $wb['Import Zone File'] = 'Importera zonfiler'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_duplicate'] = 'Duplicate A-Record'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'of'; |
| | | $wb['delete_confirmation'] = 'Do you really want to delete this record?'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'IP-Address format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Target hostname format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Host Information format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['no_file_uploaded_error'] = 'Ingen zonfil uppladdad'; |
| | | $wb['zone_file_import_txt'] = 'Zonfilsimport'; |
| | | ?> |
| | | |
| | |
| | | $wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Namnserverformatet är ogiltigt'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Canonical hostname format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Responsible person field format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4'; |
| | | $wb['secondary_zone_txt'] = 'Secondary DNS Zone'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | $wb['add_new_record_txt'] = 'Add new secondary DNS Zone'; |
| | | $wb['eg_domain_tld'] = 'e.g. domain.tld.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | $wb['xfer_error_regex'] = 'Also notify: Please use an IP address.'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | $wb['add_new_record_txt'] = 'Add new DNS Zone (SOA)'; |
| | | $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; |
| | | ?> |
| | | |
| | |
| | | $wb['aux_txt'] = 'Priority'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_txt'] = 'Mall'; |
| | | $wb['visible_txt'] = 'Synlig'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Name'; |
| | | $wb['add_new_record_txt'] = 'Add new record'; |
| | | ?> |
| | | |
| | |
| | | $wb['data_error_regex'] = 'Text format invalid'; |
| | | $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; |
| | | ?> |
| | | |
| | |
| | | $wb['list_desc_txt'] = 'Create a DNS Zone via a wizard'; |
| | | $wb['dkim_txt'] = 'DKIM enabled'; |
| | | ?> |
| | | |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| New file |
| | |
| | | <?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'; |
| | | ?> |
| | |
| | | |
| | | |
| | | // 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"; |
| | |
| | | ), |
| | | '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", |
| | |
| | | |
| | | |
| | | // 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"; |
| | |
| | | ), |
| | | '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", |
| New file |
| | |
| | | <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> |
| New file |
| | |
| | | <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> |
| | |
| | | $wb['Manage Questions'] = 'Spravovat dotazy'; |
| | | $wb['Add a Question & Answer Pair'] = 'Přidat otázku a odpověď'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_answer_txt'] = 'Odpověď'; |
| | | $wb['faq_section_txt'] = 'Sekce'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_faq_questions_txt'] = 'Často kladené dotazy'; |
| | | $wb['faq_new_question_txt'] = 'Přidat nový dotaz'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['faq_section_name_txt'] = 'Název sekce'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['edit_txt'] = 'Upravit'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_faq_sections_txt'] = 'Sekce FAQ - Často kladené dotazy'; |
| | | $wb['faq_new_section_txt'] = 'Přidat novou sekci'; |
| | | ?> |
| | | |
| | |
| | | $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'] = 'Zprávu nelze odeslat, protože e-mailová adresa příjemce a/nebo odesílatele není platná.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu'; |
| | | $wb['date_txt'] = 'Datum'; |
| | | ?> |
| | | |
| | |
| | | $wb['Add a Question & Answer Pair'] = 'Dodaj pitanje i odgovor'; |
| | | $wb['Manage Questions'] = 'Upravljaj pitanjima'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['faq_answer_txt'] = 'Odgovor'; |
| | | $wb['faq_section_txt'] = 'Rubrika'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['faq_faq_questions_txt'] = 'Često postavljana pitanja (FAQ)'; |
| | | $wb['faq_new_question_txt'] = 'Dodaj novo pitanje i odgovor'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['faq_section_name_txt'] = 'Naziv rubrike'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['edit_txt'] = 'Izmjeni'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['faq_faq_sections_txt'] = 'FAQ rubrike'; |
| | | $wb['faq_new_section_txt'] = 'Dodaj novu rubriku'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Pošalji novu poruku'; |
| | | $wb['date_txt'] = 'Date'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['Add a Question & Answer Pair'] = 'Lägg till fråga och svar'; |
| | | $wb['Manage Questions'] = 'Hantera frågor'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_answer_txt'] = 'Svar'; |
| | | $wb['faq_section_txt'] = 'Kategori'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_faq_questions_txt'] = 'Vanliga frågor'; |
| | | $wb['faq_new_question_txt'] = 'Lägg till ny fråga och svar'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['faq_section_name_txt'] = 'Kategorinamn'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['edit_txt'] = 'Redigera'; |
| | | ?> |
| | | |
| | |
| | | $wb['faq_faq_sections_txt'] = 'FAQ-kategorier'; |
| | | $wb['faq_new_section_txt'] = 'Lägg till ny kategori'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Skapa nyttt supportmeddelande'; |
| | | $wb['date_txt'] = 'Datum'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | session_start(); |
| | | include '../../lib/config.inc.php'; |
| | | header('Content-Type: text/javascript; charset=utf-8'); // the config file sets the content type header so we have to override it here! |
| | | require_once '../../lib/app.inc.php'; |
| | |
| | | } |
| | | |
| | | function changeTab(tab,target,force) { |
| | | if(requestsRunning > 0) return false; |
| | | |
| | | //document.forms[0].next_tab.value = tab; |
| | | document.pageForm.next_tab.value = tab; |
| | | |
| | |
| | | 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; }; |
| | |
| | | } else { |
| | | if(stristr($username, '@')) { |
| | | //* mailuser login |
| | | $sql = "SELECT * FROM mail_user WHERE login = '$username'"; |
| | | $sql = "SELECT * FROM mail_user WHERE login = '$username' or email = '$username'"; |
| | | $mailuser = $app->db->queryOneRecord($sql); |
| | | $user = false; |
| | | if($mailuser) { |
| | |
| | | if(substr($saved_password, 0, 3) == '$1$') { |
| | | //* The password is crypt-md5 encrypted |
| | | $salt = '$1$'.substr($saved_password, 3, 8).'$'; |
| | | |
| | | if(crypt(stripslashes($passwort), $salt) != $saved_password) { |
| | | $user = false; |
| | | } |
| | | } elseif(substr($saved_password, 0, 3) == '$5$') { |
| | | //* The password is crypt-sha256 encrypted |
| | | $salt = '$5$'.substr($saved_password, 3, 16).'$'; |
| | | |
| | | if(crypt(stripslashes($passwort), $salt) != $saved_password) { |
| | | $user = false; |
| | |
| | | $error = '<div class="box box_error"><h1>Error</h1>'.$error.'</div>'; |
| | | } |
| | | |
| | | $app->load('getconf'); |
| | | |
| | | $security_config = $app->getconf->get_security_config('permissions'); |
| | | if($security_config['password_reset_allowed'] == 'yes') { |
| | | $app->tpl->setVar('pw_lost_show', 1); |
| | | } else { |
| | | $app->tpl->setVar('pw_lost_show', 0); |
| | | } |
| | | |
| | | $app->tpl->setVar('error', $error); |
| | | $app->tpl->setVar('pw_lost_txt', $app->lng('pw_lost_txt')); |
| | | $app->tpl->setVar('username_txt', $app->lng('username_txt')); |
| | |
| | | $wb['email_error'] = 'E-mail obsahuje nepovolené znaky nebo má neplatný formát.'; |
| | | $wb['stay_logged_in_txt'] = 'Zapamatovat si přihlášení'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['password_txt'] = 'Šifra'; |
| | | $wb['login_button_txt'] = 'Prijava'; |
| | | $wb['pw_lost_txt'] = 'Password lost'; |
| | | $wb['pw_lost_txt'] = 'Izgubljena šifra'; |
| | | $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'; |
| | | $wb['login_txt'] = 'Login'; |
| | | $wb['pw_reset_txt'] = 'Password reset'; |
| | | $wb['pw_button_txt'] = 'Resend password'; |
| | | $wb['login_txt'] = 'Prijava'; |
| | | $wb['pw_reset_txt'] = 'Resetiraj šifru'; |
| | | $wb['pw_button_txt'] = 'Pošalji šifru'; |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.'; |
| | | $wb['back_txt'] = 'Back'; |
| | | $wb['back_txt'] = 'Natrag'; |
| | | $wb['email_error'] = 'Email contains unallowed characters or has a invalid format.'; |
| | | $wb['stay_logged_in_txt'] = 'Keep me logged in'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.'; |
| | | $wb['btn_yes_txt'] = 'Yes, login as Client'; |
| | | $wb['btn_back_txt'] = 'No, back to list'; |
| | | $wb['udp_port_help_txt'] = 'Separated by comma'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['udp_port_help_txt'] = 'Odvojeno zarezom'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $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['email_error'] = 'Epostadressen innehåller otillåtna tecken eller är felformatterad.'; |
| | | $wb['stay_logged_in_txt'] = 'Håll mig inloggad'; |
| | | ?> |
| | | |
| | |
| | | <?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 \\",\\".'; |
| | | ?> |
| | | |
| | |
| | | require_once '../../lib/config.inc.php'; |
| | | require_once '../../lib/app.inc.php'; |
| | | |
| | | $app->load('getconf'); |
| | | |
| | | $security_config = $app->getconf->get_security_config('permissions'); |
| | | if($security_config['password_reset_allowed'] != 'yes') die('Password reset function has been disabled.'); |
| | | |
| | | // Loading the template |
| | | $app->uses('tpl'); |
| | | $app->tpl->newTemplate("form.tpl.htm"); |
| | |
| | | |
| | | <div class="buttonHolder buttons"> |
| | | <button class="positive iconstxt icoKey" type="button" value="{tmpl_var name='add_new_record_txt'}" onclick="submitLoginForm('pageForm');"><span>{tmpl_var name='login_button_txt'}</span></button> |
| | | <button class="negative iconstxt icoKey" type="button" value="{tmpl_var name='pw_lost_txt'}" onclick="loadContent('login/password_reset.php');"><span>{tmpl_var name='pw_lost_txt'}</span></button> |
| | | <tmpl_if name="pw_lost_show"><button class="negative iconstxt icoKey" type="button" value="{tmpl_var name='pw_lost_txt'}" onclick="loadContent('login/password_reset.php');"><span>{tmpl_var name='pw_lost_txt'}</span></button></tmpl_if> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | 1 => array ( 'type' => 'UNIQUE', |
| | | 'errmsg'=> 'source_error_unique'), |
| | | 2 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^\@[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,10}$/', |
| | | 'regex' => '/^\@[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,20}$/', |
| | | 'errmsg'=> 'source_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | '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' => '', |
| | |
| | | $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 ( |
| | |
| | | <?php |
| | | $wb['Email Alias'] = 'E-mailové aliasy'; |
| | | $wb['Email Blacklist'] = 'Email černá listina'; |
| | | $wb['Email Blacklist'] = 'E-mailová černá listina'; |
| | | $wb['Blacklist'] = 'Černá listina'; |
| | | $wb['Mail Content Filter'] = 'Obsahový filtr'; |
| | | $wb['Filter'] = 'Filtr'; |
| | |
| | | $wb['Mail Filter'] = 'E-mailové filtry'; |
| | | $wb['Custom Rules'] = 'Vlastní pravidla'; |
| | | $wb['Email filter'] = 'E-mailový filtr'; |
| | | $wb['Email Whitelist'] = 'E-mail bílá listina'; |
| | | $wb['Email Whitelist'] = 'E-mailová bílá listina'; |
| | | $wb['Whitelist'] = 'Bílá listina'; |
| | | $wb['Spamfilter blacklist'] = 'Spamový filtr černá listina'; |
| | | $wb['Spamfilter Config'] = 'Konfigurace spamfiltru'; |
| | |
| | | $wb['Statistics'] = 'Statistiky'; |
| | | $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky'; |
| | | ?> |
| | | |
| | |
| | | $wb['duplicate_email_alias_txt'] = 'Tento e-mail alias již existuje.'; |
| | | $wb['source_txt'] = 'Alias'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'E-mail'; |
| | | $wb['add_new_record_txt'] = 'Přidat nový e-mailový alias'; |
| | | ?> |
| | | |
| | |
| | | $wb['source_error_unique'] = 'Duplikování zdrojové domény.'; |
| | | $wb['source_error_regex'] = 'Chybná zdrojová doména.'; |
| | | ?> |
| | | |
| | |
| | | $wb['destination_txt'] = 'Cíl'; |
| | | $wb['add_new_record_txt'] = 'Přidat doménový alias'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat záznam na černou listinu'; |
| | | $wb['access_txt'] = 'Přístup'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['pattern_error_empty'] = 'Vzor je prázdný.'; |
| | | ?> |
| | | |
| | |
| | | $wb['action_txt'] = 'Akce'; |
| | | $wb['add_new_record_txt'] = 'Přidat obsahový filtr'; |
| | | ?> |
| | | |
| | |
| | | $wb['policy_txt'] = 'Spamový filtr'; |
| | | $wb['no_policy'] = '- nepovoleno -'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['sys_groupid_txt'] = 'Klient'; |
| | | ?> |
| | | |
| | |
| | | $wb['source_txt'] = 'Zdroj'; |
| | | $wb['destination_error_isemail'] = 'Cílová e-mailová adresa není platná.'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'E-malová doména'; |
| | | $wb['add_new_record_txt'] = 'Přidat e-mailový koš'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat doménu'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Doména'; |
| | | $wb['source_txt'] = 'Zdrojový e-mail'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'E-mail'; |
| | | $wb['add_new_record_txt'] = 'Přidat nové přesměrování'; |
| | | ?> |
| | | |
| | |
| | | $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'] = 'Please check first if email retrieval works, before you activate this option.'; |
| | | ?> |
| | | |
| | |
| | | $wb['destination_txt'] = 'Cíl'; |
| | | $wb['add_new_record_txt'] = 'Přidat účet'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.'; |
| | | $wb['mailinglist_txt'] = 'E-mailové konference'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Doména'; |
| | | $wb['listname_txt'] = 'Název seznamu'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet e-mail filtrů pro Váš účet.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat relay adresáta'; |
| | | $wb['access_txt'] = 'Přístup'; |
| | | ?> |
| | | |
| | |
| | | $wb['spam_redirect_maildir_purge_txt'] = 'Vyčistit poté mailový adresář'; |
| | | $wb['days_txt'] = 'Dny.'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'E-mail'; |
| | | $wb['add_new_record_txt'] = 'Přidat nový záznam spamfiltru'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_mailrouting_txt'] = 'Dosažen maximální počet e-mail směrování pro Váš účet.'; |
| | | $wb['transport_txt'] = 'Transport'; |
| | | ?> |
| | | |
| | |
| | | $wb['sort_order_txt'] = 'Třídit podle'; |
| | | $wb['add_new_record_txt'] = 'Přidat transport'; |
| | | ?> |
| | | |
| | |
| | | $wb['monthly_backup_txt'] = 'Monthly'; |
| | | $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; |
| | | $wb['cc_note_txt'] = '(Při přeposílání na více e-mailových adres, oddělte čárkami.)'; |
| | | $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; |
| | | $wb['disablesmtp_txt'] = 'Zakázat SMTP (pouze odesílání)'; |
| | | ?> |
| | | |
| | |
| | | $wb['move_to_txt'] = 'Přesunout do'; |
| | | $wb['delete_txt'] = 'Smazat'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'z'; |
| | | $wb['delete_confirmation'] = 'Opravdu smazat mailový filtr?'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Skutečný název'; |
| | | $wb['login_txt'] = 'Přihlášení'; |
| | | ?> |
| | | |
| | |
| | | $wb['this_year_txt'] = 'Tento rok'; |
| | | $wb['last_year_txt'] = 'Minulý rok'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Email bílá listina'; |
| | | $wb['list_head_txt'] = 'E-mailová bílá listina'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['source_txt'] = 'Adresy na bílé listině'; |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat záznam na bílou listinu'; |
| | | $wb['access_txt'] = 'Přístup'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - střední'; |
| | | $wb['1 - lowest'] = '1 - nejnižší'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'E-maily na černé listině'; |
| | | $wb['add_new_record_txt'] = 'Přidat záznam na černou listinu'; |
| | | ?> |
| | | |
| | |
| | | $wb['mailbox_size_limit_txt'] = 'Limit velikosti e-mailové schránky'; |
| | | $wb['message_size_limit_txt'] = 'Limit velikosti zprávy'; |
| | | ?> |
| | | |
| | |
| | | $wb['server_name_txt'] = 'Server'; |
| | | $wb['server_id_txt'] = 'server_id'; |
| | | ?> |
| | | |
| | |
| | | $wb['message_size_limit_txt'] = 'Limit velikosti zprávy'; |
| | | $wb['banned_rulenames_txt'] = 'Název pravidel zabanované'; |
| | | ?> |
| | | |
| | |
| | | $wb['bad_header_lover_txt'] = 'Špatné hlavičky'; |
| | | $wb['add_new_record_txt'] = 'Přidat záznam politiky'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - střední'; |
| | | $wb['1 - lowest'] = '1 - nejnižší'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'E-mail'; |
| | | $wb['add_new_record_txt'] = 'Přidat spamfiltr uživatele'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - střední'; |
| | | $wb['1 - lowest'] = '1 - nejnižší'; |
| | | ?> |
| | | |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['priority_txt'] = 'Priorita'; |
| | | $wb['rid_txt'] = 'Uživatel'; |
| | | $wb['email_txt'] = 'Emaily na bílé listině'; |
| | | $wb['email_txt'] = 'E-maily na bílé listině'; |
| | | $wb['add_new_record_txt'] = 'Přidat záznam na bílou listinu'; |
| | | ?> |
| | | |
| | |
| | | $wb['used_txt'] = 'Využité místo'; |
| | | $wb['percentage_txt'] = 'Využité místo v %'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | |
| | | $wb['Mail Content Filter'] = 'Sadržaj mail filtera'; |
| | | $wb['Filter'] = 'Filter'; |
| | | $wb['Mail Domain'] = 'Mail domena'; |
| | | $wb['Domain'] = 'Domena'; |
| | | $wb['Domena'] = 'Domena'; |
| | | $wb['Email Catchall'] = 'Email catchall'; |
| | | $wb['Email Forward'] = 'Email proslijeđivanje'; |
| | | $wb['Get Email'] = 'Primi poštu'; |
| | |
| | | $wb['Relay Recipients'] = 'Relay primatelji'; |
| | | $wb['Mailbox quota'] = 'Mailbox quota'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['duplicate_email_alias_txt'] = 'This email alias does already exist.'; |
| | | $wb['source_txt'] = 'Alias'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['add_new_record_txt'] = 'Dodaj email alias'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['source_error_unique'] = 'Duplicirana izvorna domena.'; |
| | | $wb['source_error_regex'] = 'Neispravan naziv izvorne domene.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['destination_txt'] = 'Destinacija'; |
| | | $wb['add_new_record_txt'] = 'Add new Domain alias'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['type_txt'] = 'Vrsta'; |
| | | $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Dodaj novi zapis na blacklistu'; |
| | | $wb['access_txt'] = 'pristup'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['pattern_error_empty'] = 'Postupak je prazan.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['add_new_record_txt'] = 'Add new Content Filter'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; |
| | | $wb["dkim_settings_txt"] = 'DomainKeys Identified Mail (DKIM)'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['sys_groupid_txt'] = 'Klijent'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['source_txt'] = 'Source'; |
| | | $wb['destination_error_isemail'] = 'Destination is no valid email address.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['add_new_record_txt'] = 'Dodaj catchall'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Dodaj domenu'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['limit_mailforward_txt'] = 'Iskorišten je maksimalan broj email forwardera.'; |
| | | $wb['duplicate_mailbox_txt'] = 'Već postoji mailbox sa tom email adresom'; |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['source_txt'] = 'Source Email'; |
| | | $wb['source_txt'] = 'Izvorni email'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['add_new_record_txt'] = 'Add new Email forward'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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'] = 'Please check first if email retrieval works, before you activate this option.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['destination_txt'] = 'Destinacija'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi račun'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['client_txt'] = 'Klijent'; |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['password_txt'] = 'Šifra'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['listname_error_unique'] = 'There is already a mailinlist with name on the server. Please choose a different listname.'; |
| | | $wb['email_error_isemail'] = 'Email address is invalid.'; |
| | | $wb['mailinglist_txt'] = 'Mailing list'; |
| | | $wb['email_error_isemail'] = 'Email adresa je neispravna.'; |
| | | $wb['mailinglist_txt'] = 'Email lista'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['listname_txt'] = 'Naziv liste'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['type_txt'] = 'Vrsta'; |
| | | $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Add new relay recipient'; |
| | | $wb['access_txt'] = 'pristup'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['spam_redirect_maildir_purge_txt'] = 'Purge Maildir after'; |
| | | $wb['days_txt'] = 'Days.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['add_new_record_txt'] = 'Add new Spamfilter record'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['limit_mailrouting_txt'] = 'Iskorišten je maksimalan broj ruta.'; |
| | | $wb['transport_txt'] = 'Transport'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['sort_order_txt'] = 'Sort by'; |
| | | $wb['add_new_record_txt'] = 'Add new transport'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; |
| | | $wb['autoresponder_subject_txt'] = 'Email Subject'; |
| | | $wb['autoresponder_subject'] = 'Out of office reply'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb["backup_interval_txt"] = 'Backup interval'; |
| | | $wb["backup_copies_txt"] = 'Number of backup copies'; |
| | | $wb['no_backup_txt'] = 'No backup'; |
| | |
| | | $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; |
| | | $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['rulename_txt'] = 'Name'; |
| | | $wb['rulename_txt'] = 'Naziv'; |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['target_txt'] = 'Folder'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['rulename_error_empty'] = 'Name is empty.'; |
| | | $wb['searchterm_is_empty'] = 'Search term is empty.'; |
| | | $wb['rulename_error_empty'] = 'Naziv je prazan.'; |
| | | $wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; |
| | | $wb['source_txt'] = 'Izvor'; |
| | | $wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; |
| | | $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; |
| | | $wb['target_error_regex'] = 'Folder može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; |
| | | $wb['limit_mailfilter_txt'] = 'Iskorišten je maksimalni broj mail filtera.'; |
| | | $wb['subject_txt'] = 'Naslov'; |
| | | $wb['from_txt'] = 'Pošiljatelj'; |
| | | $wb['to_txt'] = 'Primatelj'; |
| | | $wb['contains_txt'] = 'Sadrži'; |
| | | $wb['is_txt'] = 'Is'; |
| | | $wb['begins_with_txt'] = 'Begins with'; |
| | | $wb['ends_with_txt'] = 'Ends with'; |
| | | $wb['move_to_txt'] = 'Move to'; |
| | | $wb['begins_with_txt'] = 'Počinje sa'; |
| | | $wb['ends_with_txt'] = 'Završava sa'; |
| | | $wb['move_to_txt'] = 'Prebaci u'; |
| | | $wb['delete_txt'] = 'Obriši'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['rulename_txt'] = 'Name'; |
| | | $wb['add_new_record_txt'] = 'Add new Filter'; |
| | | $wb['rulename_txt'] = 'Naziv'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi filter'; |
| | | $wb['page_txt'] = 'Stranica'; |
| | | $wb['page_of_txt'] = 'od'; |
| | | $wb['delete_confirmation'] = 'Do you really want to Delete the mailfilter?'; |
| | | $wb['delete_confirmation'] = 'Da li stvarno želite obrisati email filter?'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Mailbox'; |
| | | $wb['list_head_txt'] = 'Email sandučić'; |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['autoresponder_txt'] = 'Automatski odgovor'; |
| | | $wb['add_new_record_txt'] = 'Dodaj mailbox'; |
| | | $wb['add_new_record_txt'] = 'Dodaj email sandučić'; |
| | | $wb['name_txt'] = 'Ime'; |
| | | $wb['login_txt'] = 'Prijava'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['this_year_txt'] = 'This year'; |
| | | $wb['last_year_txt'] = 'Last year'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['type_txt'] = 'Vrsta'; |
| | | $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lowest'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Blacklisted Email'; |
| | | $wb['add_new_record_txt'] = 'Add Blacklist record'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; |
| | | $wb['message_size_limit_txt'] = 'Message Size Limit'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['server_name_txt'] = 'Server'; |
| | | $wb['server_id_txt'] = 'server_id'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['message_size_limit_txt'] = 'Message size limit'; |
| | | $wb['banned_rulenames_txt'] = 'Banned rulenames'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['bad_header_lover_txt'] = 'Neispravan header'; |
| | | $wb['add_new_record_txt'] = 'Dodaj pravilo'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lowest'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['add_new_record_txt'] = 'Add Spamfilter User'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lowest'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['email_txt'] = 'Whitelistani email'; |
| | | $wb['add_new_record_txt'] = 'Dodaj whitelistu'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Mailbox quota'; |
| | | $wb['quota_txt'] = 'Kvota'; |
| | | $wb['name_txt'] = 'Name'; |
| | | $wb['email_txt'] = 'Email Address'; |
| | | $wb['used_txt'] = 'Used space'; |
| | | $wb['percentage_txt'] = 'Used %'; |
| | | $wb['list_head_txt'] = 'Limiti sandučića'; |
| | | $wb['quota_txt'] = 'Limit'; |
| | | $wb['name_txt'] = 'Ime'; |
| | | $wb['email_txt'] = 'Email adresa'; |
| | | $wb['used_txt'] = 'Prostor'; |
| | | $wb['percentage_txt'] = 'Koristi %'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['Relay Recipients'] = 'Relay Recipients'; |
| | | $wb['Mailbox quota'] = 'Mailbox quota'; |
| | | ?> |
| | | |
| | |
| | | $wb['duplicate_email_alias_txt'] = 'Detta epostalias finns redan'; |
| | | $wb['source_txt'] = 'Alias'; |
| | | ?> |
| | | |
| | |
| | | $wb['source_txt'] = 'Källa'; |
| | | $wb['add_new_record_txt'] = 'Lägg till nytt epostalias'; |
| | | ?> |
| | | |
| | |
| | | $wb['source_error_unique'] = 'Källdomänen finns redan.'; |
| | | $wb['source_error_regex'] = 'Ogiltig källdomän..'; |
| | | ?> |
| | | |
| | |
| | | $wb['destination_txt'] = 'Destination'; |
| | | $wb['add_new_record_txt'] = 'Lägg till nytt domänalias'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnått.'; |
| | | ?> |
| | | |
| | |
| | | $wb['recipient_txt'] = 'Mottagare'; |
| | | $wb['access_txt'] = 'åtkomst'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['pattern_error_empty'] = 'Matchningsfältet är tomt.'; |
| | | ?> |
| | | |
| | |
| | | $wb['action_txt'] = 'Händelse'; |
| | | $wb['add_new_record_txt'] = 'Lägg till nytt innehållsfilter'; |
| | | ?> |
| | | |
| | |
| | | $wb["dkim_settings_txt"] = 'DomainKeys Identified Mail (DKIM)'; |
| | | $wb['no_policy'] = '- ej aktiverat -'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['sys_groupid_txt'] = 'Kund'; |
| | | ?> |
| | | |
| | |
| | | $wb['source_txt'] = 'Källa'; |
| | | $wb['destination_error_isemail'] = 'Destinationen när inte en giltig epostadress.'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['source_txt'] = 'källa'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Lägg till ny domän'; |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domän'; |
| | | $wb['source_txt'] = 'Källadress'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Lägg till ny vidarebefordran'; |
| | | $wb['source_txt'] = 'källa'; |
| | | ?> |
| | | |
| | |
| | | $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..'; |
| | | ?> |
| | | |
| | |
| | | $wb['destination_txt'] = 'Destination'; |
| | | $wb['add_new_record_txt'] = 'Lägg till nytt konto'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_error_isemail'] = 'Epostadressen är ogiltig'; |
| | | $wb['mailinglist_txt'] = 'Epostlista'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domän'; |
| | | $wb['listname_txt'] = 'Listnamn'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnått.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Lägg till ny relämottagare'; |
| | | $wb['access_txt'] = 'åtkomst'; |
| | | ?> |
| | | |
| | |
| | | $wb['spam_redirect_maildir_purge_txt'] = 'Töm mappen efter'; |
| | | $wb['days_txt'] = 'Dagar'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'Epost'; |
| | | $wb['add_new_record_txt'] = 'Lägg till nytt spamfilter'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_mailrouting_txt'] = 'Det maximala antalet epostrutter för ditt konto är uppnått.'; |
| | | $wb['transport_txt'] = 'Transport'; |
| | | ?> |
| | | |
| | |
| | | $wb['sort_order_txt'] = 'Sortera på'; |
| | | $wb['add_new_record_txt'] = 'Lägg till ny transport'; |
| | | ?> |
| | | |
| | |
| | | $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; |
| | | $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; |
| | | ?> |
| | | |
| | |
| | | $wb['move_to_txt'] = 'Flytta till'; |
| | | $wb['delete_txt'] = 'Radera'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'av'; |
| | | $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_txt'] = 'Riktigt namn'; |
| | | $wb['login_txt'] = 'Logga in'; |
| | | ?> |
| | | |
| | |
| | | $wb['this_year_txt'] = 'I år'; |
| | | $wb['last_year_txt'] = 'Föregående år'; |
| | | ?> |
| | | |
| | |
| | | $wb['type_txt'] = 'Typ'; |
| | | $wb['limit_mailfilter_txt'] = 'Maximala antalet epostfilter för ditt konto är uppnått.'; |
| | | ?> |
| | | |
| | |
| | | $wb['recipient_txt'] = 'Mottagare'; |
| | | $wb['access_txt'] = 'åtkomst'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lägsta'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'Vitlistad epostadress'; |
| | | $wb['add_new_record_txt'] = 'Lägg till svartlistning'; |
| | | ?> |
| | | |
| | |
| | | $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; |
| | | $wb['message_size_limit_txt'] = 'Message Size Limit'; |
| | | ?> |
| | | |
| | |
| | | $wb['server_name_txt'] = 'Server'; |
| | | $wb['server_id_txt'] = 'server_id'; |
| | | ?> |
| | | |
| | |
| | | $wb['message_size_limit_txt'] = 'Message size limit'; |
| | | $wb['banned_rulenames_txt'] = 'Banned rulenames'; |
| | | ?> |
| | | |
| | |
| | | $wb['bad_header_lover_txt'] = 'Bad Header lover'; |
| | | $wb['add_new_record_txt'] = 'Add Policy record'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lägsta'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'Epost'; |
| | | $wb['add_new_record_txt'] = 'Lägg till spamfilteranvändare'; |
| | | ?> |
| | | |
| | |
| | | $wb['5 - medium'] = '5 - medium'; |
| | | $wb['1 - lowest'] = '1 - lägsta'; |
| | | ?> |
| | | |
| | |
| | | $wb['email_txt'] = 'Vitlistad epostadress'; |
| | | $wb['add_new_record_txt'] = 'Lägg till vitlistning'; |
| | | ?> |
| | | |
| | |
| | | $wb['used_txt'] = 'Använt utrymme'; |
| | | $wb['percentage_txt'] = 'Använt %'; |
| | | ?> |
| | | |
| | |
| | | $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); |
| | | } |
| | | } // endif spamfilter policy |
| | | //** If the domain name or owner has been changed, change the domain and owner in all mailbox records |
| | | if($this->oldDataRecord['domain'] != $this->dataRecord['domain'] || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { |
| | | $app->uses('getconf'); |
| | | $mail_config = $app->getconf->get_server_config($this->dataRecord["server_id"], 'mail'); |
| | | |
| | | //* Update the mailboxes |
| | | $mailusers = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE email like '%@".$app->db->quote($this->oldDataRecord['domain'])."'"); |
| | | $sys_groupid = $app->functions->intval((isset($this->dataRecord['client_group_id']))?$this->dataRecord['client_group_id']:$this->oldDataRecord['sys_groupid']); |
| | | $tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = $client_group_id"); |
| | | $client_user_id = $app->functions->intval(($tmp['userid'] > 0)?$tmp['userid']:1); |
| | | if(is_array($mailusers)) { |
| | | foreach($mailusers as $rec) { |
| | | // setting Maildir, Homedir, UID and GID |
| | | $mail_parts = explode("@", $rec['email']); |
| | | $maildir = str_replace("[domain]", $this->dataRecord['domain'], $mail_config["maildir_path"]); |
| | | $maildir = str_replace("[localpart]", $mail_parts[0], $maildir); |
| | | $maildir = $app->db->quote($maildir); |
| | | $email = $app->db->quote($mail_parts[0].'@'.$this->dataRecord['domain']); |
| | | $app->db->datalogUpdate('mail_user', "maildir = '$maildir', email = '$email', sys_userid = $client_user_id, sys_groupid = '$sys_groupid'", 'mailuser_id', $rec['mailuser_id']); |
| | | } |
| | | } |
| | | |
| | | //* Update the aliases |
| | | $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source like '%@".$app->db->quote($this->oldDataRecord['domain'])."' OR destination like '%@".$app->db->quote($this->oldDataRecord['domain'])."'"); |
| | | if(is_array($forwardings)) { |
| | | foreach($forwardings as $rec) { |
| | | $destination = $app->db->quote(str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['destination'])); |
| | | $source = $app->db->quote(str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['source'])); |
| | | $app->db->datalogUpdate('mail_forwarding', "source = '$source', destination = '$destination', sys_userid = $client_user_id, sys_groupid = '$sys_groupid'", 'forwarding_id', $rec['forwarding_id']); |
| | | } |
| | | } |
| | | |
| | | //* 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"]); |
| | | unset($tmp); |
| | | |
| | | } // end if domain name changed |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // 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"]); |
| | |
| | | $wb['Spamfilter'] = 'Spamový filtr'; |
| | | $wb['Email Filters'] = 'E-mailové filtry'; |
| | | ?> |
| | | |
| | |
| | | $wb['mb_txt'] = 'MB'; |
| | | $wb['none_txt'] = 'Nenastaveno'; |
| | | ?> |
| | | |
| | |
| | | $wb['now_txt'] = 'Nyní'; |
| | | $wb['autoresponder_subject_txt'] = 'Předmět e-mailu'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_optional_txt'] = '(Volitelné)'; |
| | | $wb['cc_note_txt'] = '(Při přeposílání na více e-mailových adres, oddělte čárkami.)'; |
| | | ?> |
| | | |
| | |
| | | $wb['move_to_txt'] = 'Přesunout do'; |
| | | $wb['delete_txt'] = 'Smazat'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'z'; |
| | | $wb['delete_confirmation'] = 'Opravdu chcete odstranit e-mail filter?'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; |
| | | $wb['password_match_txt'] = 'Hesla se shodují.'; |
| | | ?> |
| | | |
| | |
| | | $wb['no_policy'] = '- nepovoleno -'; |
| | | $wb['policy_txt'] = 'Politika'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['Email Account'] = 'Email Account'; |
| | | $wb['Overview'] = 'Overview'; |
| | | $wb['Password'] = 'Password'; |
| | | $wb['Email Account'] = 'Email račun'; |
| | | $wb['Overview'] = 'Pregled'; |
| | | $wb['Password'] = 'Šifra'; |
| | | $wb['Autoresponder'] = 'Autoresponder'; |
| | | $wb['Send copy'] = 'Send copy'; |
| | | $wb['Send copy'] = 'Pošalji kopiju'; |
| | | $wb['Spamfilter'] = 'Spamfilter'; |
| | | $wb['Email Filters'] = 'Email Filters'; |
| | | $wb['Email Filters'] = 'Email filteri'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['page_head_txt'] = 'Mailbox settings'; |
| | | $wb['page_head_txt'] = 'Postavke sandučića'; |
| | | $wb['page_desc_txt'] = 'Here you can edit the settings for the email account.'; |
| | | $wb['email_txt'] = 'Email address'; |
| | | $wb['login_txt'] = 'Login'; |
| | | $wb['server_address_txt'] = 'Mailserver address'; |
| | | $wb['cc_txt'] = 'Send copy to (CC)'; |
| | | $wb['quota_txt'] = 'Mailbox size'; |
| | | $wb['unlimited_txt'] = 'Unlimited'; |
| | | $wb['email_txt'] = 'Email adresa'; |
| | | $wb['login_txt'] = 'Prijava'; |
| | | $wb['server_address_txt'] = 'Adresa mail servera'; |
| | | $wb['cc_txt'] = 'Pošalji kopiju na (CC)'; |
| | | $wb['quota_txt'] = 'Veličina sandučića'; |
| | | $wb['unlimited_txt'] = 'Neograničeno'; |
| | | $wb['mb_txt'] = 'MB'; |
| | | $wb['none_txt'] = 'None'; |
| | | $wb['none_txt'] = 'Ništa'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['mailbox_autoresponder_txt'] = 'Autoresponder'; |
| | | $wb['autoresponder_subject'] = 'Out of office reply'; |
| | | $wb['autoresponder_text_txt'] = 'Text'; |
| | | $wb['autoresponder_text_txt'] = 'Tekst'; |
| | | $wb['autoresponder_txt'] = 'Active'; |
| | | $wb['autoresponder_start_date_txt'] = 'Start on'; |
| | | $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; |
| | | $wb['autoresponder_end_date_txt'] = 'End by'; |
| | | $wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; |
| | | $wb['autoresponder_active'] = 'Enable the autoresponder'; |
| | | $wb['now_txt'] = 'Now'; |
| | | $wb['now_txt'] = 'Sada'; |
| | | $wb['autoresponder_subject_txt'] = 'Betreff'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['name_optional_txt'] = '(Optional)'; |
| | | $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['rulename_txt'] = 'Name'; |
| | | $wb['action_txt'] = 'Action'; |
| | | $wb['target_txt'] = 'Folder'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['rulename_error_empty'] = 'Name is empty.'; |
| | | $wb['searchterm_is_empty'] = 'Search term is empty.'; |
| | | $wb['source_txt'] = 'Source'; |
| | | $wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; |
| | | $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; |
| | | $wb['subject_txt'] = 'Subject'; |
| | | $wb['from_txt'] = 'From'; |
| | | $wb['to_txt'] = 'To'; |
| | | $wb['contains_txt'] = 'Contains'; |
| | | $wb['is_txt'] = 'Is'; |
| | | $wb['begins_with_txt'] = 'Begins with'; |
| | | $wb['ends_with_txt'] = 'Ends with'; |
| | | $wb['move_to_txt'] = 'Move to'; |
| | | $wb['delete_txt'] = 'Delete'; |
| | | $wb['rulename_txt'] = 'Naziv'; |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['target_txt'] = 'Direktorij'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['rulename_error_empty'] = 'Naziv je prazan.'; |
| | | $wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; |
| | | $wb['source_txt'] = 'Izvor'; |
| | | $wb['target_error_regex'] = 'Odredište može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; |
| | | $wb['limit_mailfilter_txt'] = 'Iskoristili ste maksimalan broj mail filtera.'; |
| | | $wb['subject_txt'] = 'Naslov'; |
| | | $wb['from_txt'] = 'Od'; |
| | | $wb['to_txt'] = 'Za'; |
| | | $wb['contains_txt'] = 'Sadrži'; |
| | | $wb['is_txt'] = 'je'; |
| | | $wb['begins_with_txt'] = 'Počinje sa'; |
| | | $wb['ends_with_txt'] = 'Završava sa'; |
| | | $wb['move_to_txt'] = 'Prebaci u '; |
| | | $wb['delete_txt'] = 'Obriši'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Email filter rules'; |
| | | $wb['rulename_txt'] = 'Name'; |
| | | $wb['add_new_record_txt'] = 'Add new Filter'; |
| | | $wb['page_txt'] = 'Page'; |
| | | $wb['page_of_txt'] = 'of'; |
| | | $wb['delete_confirmation'] = 'Do you really want to delete the mailfilter?'; |
| | | $wb['list_head_txt'] = 'Prvila za email filtere'; |
| | | $wb['rulename_txt'] = 'Naziv'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi filter'; |
| | | $wb['page_txt'] = 'Stranica'; |
| | | $wb['page_of_txt'] = 'od'; |
| | | $wb['delete_confirmation'] = 'Da li stvarno želite obrisati ovaj mail filter?'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['mailbox_password_txt'] = 'Mailbox password'; |
| | | $wb['password_txt'] = 'Password'; |
| | | $wb['password_strength_txt'] = 'Password strength'; |
| | | $wb['mailbox_password_txt'] = 'Mailbox šifra'; |
| | | $wb['password_txt'] = 'Šifra'; |
| | | $wb['password_strength_txt'] = 'Jačina šifre'; |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; |
| | | $wb['spamfilter_txt'] = 'Spamfilter'; |
| | | $wb['mailbox_spamfilter_txt'] = 'Spam filter'; |
| | | $wb['spamfilter_txt'] = 'Spam filter'; |
| | | $wb['email_txt'] = 'Email'; |
| | | $wb['no_policy'] = '- not enabled -'; |
| | | $wb['policy_txt'] = 'Policy'; |
| | | $wb['no_policy'] = '- isključeno -'; |
| | | $wb['policy_txt'] = 'Pravila'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['Spamfilter'] = 'Spamfilter'; |
| | | $wb['Email Filters'] = 'Epostfilter'; |
| | | ?> |
| | | |
| | |
| | | $wb['mb_txt'] = 'MB'; |
| | | $wb['none_txt'] = 'Inget'; |
| | | ?> |
| | | |
| | |
| | | $wb['now_txt'] = 'Nu'; |
| | | $wb['autoresponder_subject_txt'] = 'Ämnesrad'; |
| | | ?> |
| | | |
| | |
| | | $wb['name_optional_txt'] = '(Frivilligt)'; |
| | | $wb['cc_note_txt'] = '(Separera flera epostadresser med kommatecken)'; |
| | | ?> |
| | | |
| | |
| | | $wb['move_to_txt'] = 'Flytta till'; |
| | | $wb['delete_txt'] = 'Radera'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_of_txt'] = 'av'; |
| | | $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; |
| | | $wb['password_match_txt'] = 'Lösenorden matchar'; |
| | | ?> |
| | | |
| | |
| | | $wb['no_policy'] = '- ej aktiverat -'; |
| | | $wb['policy_txt'] = 'Policy'; |
| | | ?> |
| | | |
| | |
| | | class page_action extends tform_actions { |
| | | |
| | | function onSubmit() { |
| | | |
| | | global $app, $conf; |
| | | |
| | | $this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']); |
| | | |
| | | parent::onSubmit(); |
| | |
| | | $wb['monitor_database_client_txt'] = 'Client'; |
| | | $wb['monitor_database_domain_txt'] = 'Domain'; |
| | | ?> |
| | | |
| | |
| | | $wb['action_txt'] = 'Akce'; |
| | | $wb['status_txt'] = 'Stav'; |
| | | ?> |
| | | |
| | |
| | | $wb['loglevel_txt'] = 'Logovací úroveň'; |
| | | $wb['message_txt'] = 'Zpráva'; |
| | | ?> |
| | | |
| | |
| | | $wb['monitor_serverstate_error_txt'] = 'grešaka/i'; |
| | | $wb['monitor_serverstate_moreinfo_txt'] = 'Više informacija...'; |
| | | $wb['monitor_serverstate_more_txt'] = 'Više...'; |
| | | $wb['monitor_serverstate_fclamok_txt'] = 'Antivirusna zaštita je ok'; |
| | | $wb['monitor_serverstate_fclamok_txt'] = 'Antivirusna zaštita je OK'; |
| | | $wb['monitor_serverstate_fclamoutdated_txt'] = 'Vaša antivirusna zaštita je stara!'; |
| | | $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!'; |
| | | $wb['monitor_serverstate_hdok_txt'] = 'Stanje vašeg tvrdog diska je ok'; |
| | |
| | | $wb['monitor_serverstate_listcritical_txt'] = 'kritično'; |
| | | $wb['monitor_serverstate_listerror_txt'] = 'greška'; |
| | | $wb['monitor_serverstate_listunknown_txt'] = 'nepoznato'; |
| | | $wb['monitor_serverstate_loadok_txt'] = 'Opterećenje servera je ok'; |
| | | $wb['monitor_serverstate_loadok_txt'] = 'Opterećenje servera je OK'; |
| | | $wb['monitor_serverstate_loadheavy_txt'] = 'Server je pod opterećenjem'; |
| | | $wb['monitor_serverstate_loadhigh_txt'] = 'Server je pod velikim opterećenjem'; |
| | | $wb['monitor_serverstate_loaghigher_txt'] = 'Server je pod vrlo velikim opterećenjem'; |
| | | $wb['monitor_serverstate_loadhighest_txt'] = 'Server je maksimalno opterećen'; |
| | | $wb['monitor_serverstate_loadunknown_txt'] = 'Opterećenje servera: ???'; |
| | | $wb['monitor_serverstate_mailqok_txt'] = 'Mail redoslijed opterećenje je ok'; |
| | | $wb['monitor_serverstate_mailqok_txt'] = 'Mail redoslijed opterećenje je OK'; |
| | | $wb['monitor_serverstate_mailqheavy_txt'] = 'Mail redoslijed je pod opterećenjem'; |
| | | $wb['monitor_serverstate_mailqhigh_txt'] = 'Mail redoslijed je pod velikim opterećenjem'; |
| | | $wb['monitor_serverstate_mailqhigher_txt'] = 'Mail redoslijed je pod vrlo velikim opterećenjem'; |
| | | $wb['monitor_serverstate_mailqhighest_txt'] = 'Mail redoslijed je maksimalno opterećen'; |
| | | $wb['monitor_serverstate_mailqunknown_txt'] = 'Mail redoslijed: ???'; |
| | | $wb['monitor_serverstate_raidok_txt'] = 'RAID je ok'; |
| | | $wb['monitor_serverstate_raidok_txt'] = 'RAID je OK'; |
| | | $wb['monitor_serverstate_raidresync_txt'] = 'RAID je u RESYNC modu'; |
| | | $wb['monitor_serverstate_raidfault_txt'] = 'Jedan RAID disk je neispravan. Zamjenite disk što prije'; |
| | | $wb['monitor_serverstate_raiderror_txt'] = 'RAID više ne radi'; |
| | |
| | | $wb['monitor_serverstate_updatesok_txt'] = 'Nema nadogradnji za sistem.'; |
| | | $wb['monitor_serverstate_updatesneeded_txt'] = 'Postoji nadogradnja za jednu ili više komponenti '; |
| | | $wb['monitor_serverstate_updatesunknown_txt'] = 'Nadogradnja sistema: ???'; |
| | | $wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter je ok'; |
| | | $wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter je OK'; |
| | | $wb['monitor_serverstate_beancounterinfo_txt'] = 'Postoje greške u beancounter-u'; |
| | | $wb['monitor_serverstate_beancounterwarning_txt'] = 'Postoji par greški u beancounter-u'; |
| | | $wb['monitor_serverstate_beancountercritical_txt'] = 'Postoji puno grešaka u beancounter-u'; |
| | |
| | | $wb['Show fail2ban-Log'] = 'Prikaži Fail2Ban log'; |
| | | $wb['Show IPTables'] = 'Prikaži IPTables'; |
| | | $wb['Show OpenVz VE BeanCounter'] = 'Prikaži OpenVz VE BeanCounter'; |
| | | $wb['Show Monit'] = 'Show Monit'; |
| | | $wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; |
| | | $wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; |
| | | $wb['Show Munin'] = 'Show Munin'; |
| | | $wb['Show Monit'] = 'Prikaži Monit'; |
| | | $wb['no_monit_url_defined_txt'] = 'Monit URL nije definiran.'; |
| | | $wb['no_permissions_to_view_monit_txt'] = 'Nemate dozvolu za pristup Monit-u.'; |
| | | $wb['Show Munin'] = 'Prikaži Munin'; |
| | | $wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; |
| | | $wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; |
| | | $wb['no_permissions_to_view_munin_txt'] = 'Nemate dozvolu za pristup Munin-u.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['action_txt'] = 'Akcija'; |
| | | $wb['status_txt'] = 'Status'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['loglevel_txt'] = 'Logovi'; |
| | | $wb['message_txt'] = 'Poruka'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['action_txt'] = 'Händelse'; |
| | | $wb['status_txt'] = 'Status'; |
| | | ?> |
| | | |
| | |
| | | $wb['loglevel_txt'] = 'Loggnivå'; |
| | | $wb['message_txt'] = 'Meddelande'; |
| | | ?> |
| | | |
| | |
| | | |
| | | if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); |
| | | |
| | | $app->load('soap_handler'); |
| | | $app->load('soap_handler,getconf'); |
| | | |
| | | $security_config = $app->getconf->get_security_config('permissions'); |
| | | if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); |
| | | |
| | | $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI'])); |
| | | $server->setObject(new ISPConfigSoapHandler()); |
| | |
| | | // we need remote access rights for this server, so get it's ip address |
| | | $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); |
| | | if($server_config['ip_address']!='') { |
| | | /* |
| | | if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = ''; |
| | | $this->dataRecord['remote_access'] = 'y'; |
| | | if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) { |
| | | $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address']; |
| | | } |
| | | */ |
| | | |
| | | if(isset($this->dataRecord['remote_access']) && $this->dataRecord['remote_access'] != 'y'){ |
| | | if($this->dataRecord['remote_access'] != 'y'){ |
| | | $this->dataRecord['remote_ips'] = $server_config['ip_address']; |
| | | $this->dataRecord['remote_access'] = 'y'; |
| | | } else { |
| | |
| | | // we need remote access rights for this server, so get it's ip address |
| | | $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); |
| | | if($server_config['ip_address']!='') { |
| | | /* |
| | | if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = ''; |
| | | $this->dataRecord['remote_access'] = 'y'; |
| | | if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) { |
| | | $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address']; |
| | | } |
| | | */ |
| | | |
| | | if(isset($this->dataRecord['remote_access']) && $this->dataRecord['remote_access'] != 'y'){ |
| | | if($this->dataRecord['remote_access'] != 'y'){ |
| | | $this->dataRecord['remote_ips'] = $server_config['ip_address']; |
| | | $this->dataRecord['remote_access'] = 'y'; |
| | | } else { |
| | |
| | | function onInsertSave($sql) { |
| | | global $app, $conf; |
| | | |
| | | $app->uses('sites_database_plugin'); |
| | | |
| | | //$app->sites_database_plugin->processDatabaseInsert($this); |
| | | |
| | | $app->db->query($sql); |
| | | if($app->db->errorMessage != '') die($app->db->errorMessage); |
| | | $new_id = $app->db->insertID(); |
| | |
| | | global $app; |
| | | if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(), $this->id)) { |
| | | |
| | | $app->uses('sites_database_plugin'); |
| | | //$app->sites_database_plugin->processDatabaseUpdate($this); |
| | | |
| | | $app->db->query($sql); |
| | | if($app->db->errorMessage != '') die($app->db->errorMessage); |
| | | } |
| | |
| | | function onAfterInsert() { |
| | | global $app, $conf; |
| | | |
| | | if($this->dataRecord["parent_domain_id"] > 0) { |
| | | $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); |
| | | |
| | | //* The Database user shall be owned by the same group then the website |
| | | $sys_groupid = $app->functions->intval($web['sys_groupid']); |
| | | $backup_interval = $app->db->quote($web['backup_interval']); |
| | | $backup_copies = $app->functions->intval($web['backup_copies']); |
| | | |
| | | $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; |
| | | $app->db->query($sql); |
| | | } |
| | | $app->uses('sites_database_plugin'); |
| | | $app->sites_database_plugin->processDatabaseInsert($this); |
| | | } |
| | | |
| | | function onAfterUpdate() { |
| | | global $app, $conf; |
| | | |
| | | if($this->dataRecord["parent_domain_id"] > 0) { |
| | | $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); |
| | | |
| | | //* The Database user shall be owned by the same group then the website |
| | | $sys_groupid = $app->functions->intval($web['sys_groupid']); |
| | | $backup_interval = $app->db->quote($web['backup_interval']); |
| | | $backup_copies = $app->functions->intval($web['backup_copies']); |
| | | |
| | | $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; |
| | | $app->db->query($sql); |
| | | } |
| | | |
| | | $app->uses('sites_database_plugin'); |
| | | $app->sites_database_plugin->processDatabaseUpdate($this); |
| | | } |
| | | |
| | | } |
| | |
| | | 'type' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'y', |
| | | 'default' => 'mysql', |
| | | 'value' => array( |
| | | 'mongo' => 'MongoDB', |
| | | 'mysql' => 'MySQL' |
| | |
| | | 'database_charset' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'y', |
| | | 'default' => '', |
| | | 'value' => array('' => 'DB-Default', 'latin1' => 'Latin 1', 'utf8' => 'UTF-8') |
| | | ), |
| | | 'remote_access' => array ( |
| | |
| | | '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' => '', |
| | |
| | | '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' => '', |
| | |
| | | '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' => '', |
| | |
| | | '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'), |
| | | 2 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_ftpuser', |
| | | 'function' => 'ftp_dir', |
| | | 'errmsg' => 'directory_error_notinweb'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | |
| | | 1 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{0,32}$/', |
| | | 'errmsg'=> 'username_error_regex'), |
| | | 2 => array( |
| | | 'type' => 'CUSTOM', |
| | | 'class' => 'validate_systemuser', |
| | | 'function' => 'check_sysuser', |
| | | 'check_names' => false, |
| | | 'errmsg' => 'invalid_username_txt' |
| | | ), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | |
| | | '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' => '', |
| | |
| | | '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' => '', |
| | |
| | | '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', |
| | |
| | | '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'), |
| | | 2 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_systemuser', |
| | | 'function' => 'shelluser_dir', |
| | | 'errmsg' => 'directory_error_notinweb'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'webalizer', |
| | | 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats') |
| | | 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None') |
| | | ), |
| | | //################################# |
| | | // ENDE Datatable fields |
| | |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'sysuser_error_empty'), |
| | | 1 => array( |
| | | 'type' => 'CUSTOM', |
| | | 'class' => 'validate_systemuser', |
| | | 'function' => 'check_sysuser', |
| | | 'check_names' => true, |
| | | 'errmsg' => 'invalid_system_user_or_group_txt' |
| | | ), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'sysgroup_error_empty'), |
| | | 1 => array( |
| | | 'type' => 'CUSTOM', |
| | | 'class' => 'validate_systemuser', |
| | | 'function' => 'check_sysgroup', |
| | | 'check_names' => true, |
| | | 'errmsg' => 'invalid_system_user_or_group_txt' |
| | | ), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | |
| | | 'apache_directives' => array ( |
| | | 'datatype' => 'TEXT', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array( |
| | | 'type' => 'CUSTOM', |
| | | 'class' => 'validate_domain', |
| | | 'function' => 'web_apache_directives', |
| | | 'errmsg' => 'apache_directive_blockd_error' |
| | | ), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | |
| | | $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']); |
| | |
| | | |
| | | function onBeforeUpdate() { |
| | | global $app, $conf, $interfaceConf; |
| | | |
| | | |
| | | /* |
| | | * If the names should be restricted -> do it! |
| | | */ |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['no_redirect_txt'] = 'No redirect'; |
| | | $wb['no_flag_txt'] = 'No flag'; |
| | | $wb['none_txt'] = 'None'; |
| | | |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $wb['domain_txt'] = 'Domain'; |
| | | $wb['add_new_record_txt'] = 'Add new website'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Сървър'; |
| | | $wb['parent_domain_id_txt'] = 'Уебсайт'; |
| | | $wb['path_txt'] = 'Път'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Потребителско име'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)'; |
| | | $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_cancel_txt'] = 'Zrušit'; |
| | | $wb['limit_aps_txt'] = 'Max. počet APS instancí u vašeho účtu je dosaženo.'; |
| | | ?> |
| | | |
| | |
| | | $wb['delete_txt'] = 'Smazat'; |
| | | $wb['reinstall_txt'] = 'Přeinstalovat'; |
| | | ?> |
| | | |
| | |
| | | $wb['status_txt'] = 'Odemčený'; |
| | | $wb['filter_txt'] = 'Hledat'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_cancel_txt'] = 'Zrušit'; |
| | | $wb['legend_txt'] = 'Zde si můžete aktualizovat seznam dostupných balíčků. Vezměte prosím na vědomí, že aktualizace může trvat až několik minut. Po spuštění aktualizace můžete následně opustit tuto sekci. Tento proces bude pokračovat na pozadí.'; |
| | | ?> |
| | | |
| | |
| | | $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.'; |
| | | $wb['command_error_empty'] = 'Command is empty.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_cron_txt'] = 'Přidat novou cron úlohu'; |
| | | $wb['parent_domain_id_txt'] = 'Webové stránky'; |
| | | ?> |
| | | |
| | |
| | | $wb['database_client_differs_txt'] = 'Klient mateřského webu a databáze se neshodují.'; |
| | | $wb['database_user_missing_txt'] = 'Prosím vyberte uživatele databáze pro tuto databázi.'; |
| | | ?> |
| | | |
| | |
| | | $wb['sys_groupid_txt'] = 'Klient'; |
| | | $wb['parent_domain_id_txt'] = 'Webové stránky'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Přidat databázi'; |
| | | $wb['parent_domain_id_txt'] = 'Webové stránky'; |
| | | ?> |
| | | |
| | |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Návrhy'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Vytvořit nového uživatele databáze'; |
| | | $wb['sys_groupid_txt'] = 'Klient'; |
| | | ?> |
| | | |
| | |
| | | $wb['database_user_txt'] = 'Uživatelé databáze'; |
| | | $wb['add_new_record_txt'] = 'Přidat nového uživatele databáze'; |
| | | ?> |
| | | |
| | |
| | | $wb['directory_error_empty'] = 'Adresář je prázdný.'; |
| | | $wb['directory_error_notinweb'] = 'Adresář není uvnitř webového kořenového adresáře.'; |
| | | $wb['parent_domain_id_error_empty'] = 'Nevybrána žádná webová stránka.'; |
| | | $wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0'; |
| | | $wb['quota_size_error_regex'] = 'Kvóta: zadejte -1 je bez omezení nebo číslo > 0 '; |
| | | $wb['dir_dot_error'] = 'No .. in path allowed.'; |
| | | $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; |
| | | $wb['generate_password_txt'] = 'Generovat heslo'; |
| | | $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'] = 'Neplatný systémový uživatel nebo skupina'; |
| | | $wb['directory_error_regex'] = 'Neplatný adresář'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['add_new_record_txt'] = 'Přidat FTP uživatele'; |
| | | ?> |
| | | |
| | |
| | | $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'] = 'Neplatný systémový uživatel nebo skupina'; |
| | | $wb['directory_error_regex'] = 'Neplatný adresář'; |
| | | $wb['shell_error_regex'] = 'Invalid shell'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['add_new_record_txt'] = 'Přidat shell uživatele'; |
| | | ?> |
| | | |
| | |
| | | $wb['soft_txt'] = 'Kvóta pro upozornění'; |
| | | $wb['files_txt'] = 'Jednotlivé soubory'; |
| | | ?> |
| | | |
| | |
| | | $wb['backup_type_mysql'] = 'MySQL Databáze'; |
| | | $wb['backup_type_web'] = 'Soubory webových stránek'; |
| | | ?> |
| | | |
| | |
| | | $wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; |
| | | $wb['error_ssl_country_empty'] = 'SSL Country is empty.'; |
| | | $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; |
| | | $wb['client_group_id_txt'] = 'Client'; |
| | | $wb['client_group_id_txt'] = 'Klient'; |
| | | $wb['stats_password_txt'] = 'Set Webstatistics password'; |
| | | $wb['allow_override_txt'] = 'Apache AllowOverride'; |
| | | $wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; |
| | |
| | | $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; |
| | | $wb['Domain'] = 'Alias domény pro webové stránky'; |
| | | ?> |
| | | |
| | |
| | | $wb['none_txt'] = 'Žádná'; |
| | | |
| | | ?> |
| | | |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Oddělte více adresářů čárkami. Vzor: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'Vyloučené adresáře obsahují neplatné znaky.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Neplatné nastavení php.ini'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Doména'; |
| | | $wb['add_new_record_txt'] = 'Přidat webovou stránku'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Doména'; |
| | | $wb['add_new_record_txt'] = 'Přidat webovou stránku'; |
| | | ?> |
| | | |
| | |
| | | $wb['path_error_regex'] = 'Neplatná cesta ke složce.'; |
| | | $wb['error_folder_already_protected_txt'] = 'Záznam pro tuto složku již existuje'; |
| | | ?> |
| | | |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Webové stránky'; |
| | | $wb['path_txt'] = 'Cesta'; |
| | | $wb['add_new_record_txt'] = 'Přidat novou složku'; |
| | | ?> |
| | | |
| | |
| | | $wb['no_folder_perm'] = 'Nemáte oprávnění pro tuto složku.'; |
| | | $wb['error_user_exists_already_txt'] = 'There is already a record for this user.'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['web_folder_id_txt'] = 'Složka'; |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['add_new_record_txt'] = 'Přidat nového uživatele složky'; |
| | | ?> |
| | | |
| | |
| | | $wb['last_year_txt'] = 'Minulý rok'; |
| | | $wb['sum_txt'] = 'Součet'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['parent_domain_id_txt'] = 'Rodičovské webové stránky'; |
| | | $wb['web_folder_txt'] = 'Webová složka'; |
| | | $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; |
| | | $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; |
| | | $wb['backup_interval_txt'] = 'Interval zálohování'; |
| | | $wb['backup_copies_txt'] = 'Počet záložních kopií'; |
| | | $wb['ssl_state_txt'] = 'Stát'; |
| | | $wb['ssl_locality_txt'] = 'Lokalita'; |
| | | $wb['ssl_organisation_txt'] = 'Organizace'; |
| | |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | ?> |
| | | |
| | |
| | | <?php |
| | | $wb['dir_txt'] = 'Directory'; |
| | | $wb['dir_txt'] = 'Webdav adresář'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Webové stránky'; |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['password_txt'] = 'Heslo'; |
| | | $wb['password_strength_txt'] = 'Síla hesla'; |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.'; |
| | | $wb['username_error_empty'] = 'Username is empty.'; |
| | | $wb['username_error_unique'] = 'The username must be unique.'; |
| | | $wb['username_error_regex'] = 'The username contains characters that are not allowed.'; |
| | | $wb['directory_error_empty'] = 'Directory empty.'; |
| | | $wb['parent_domain_id_error_empty'] = 'No website selected.'; |
| | | $wb['limit_webdav_user_txt'] = 'Byl dosažen max. počet WebDAV uživatelů pro váš účet.'; |
| | | $wb['username_error_empty'] = 'Uživatelské jméno je prázdné.'; |
| | | $wb['username_error_unique'] = 'Uživatelské jméno musí být unikátní.'; |
| | | $wb['username_error_regex'] = 'Uživatelské jméno obsahuje znaky, které nejsou povoleny.'; |
| | | $wb['directory_error_empty'] = 'Webdav adresář je prázdný.'; |
| | | $wb['parent_domain_id_error_empty'] = 'Není vybrán žádný web.'; |
| | | $wb['dir_dot_error'] = 'No .. in path allowed.'; |
| | | $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; |
| | | $wb['generate_password_txt'] = 'Generovat heslo'; |
| | |
| | | $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; |
| | | $wb['password_match_txt'] = 'Hesla se shodují.'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Uživatelské jméno'; |
| | | $wb['add_new_record_txt'] = 'Přidat nového WebDAV uživatele'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; |
| | | $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; |
| | | $wb['expires_txt'] = 'Zugang läuft ab'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['directory_error_regex'] = 'Invalid directory'; |
| | | ?> |
| | |
| | | $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'] = 'Dieser 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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Webseite'; |
| | | $wb['path_txt'] = 'Pfad'; |
| | | $wb['add_new_record_txt'] = 'Ordner hinzufügen'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Aktiv'; |
| | | $wb['web_folder_id_txt'] = 'Ordner'; |
| | | $wb['username_txt'] = 'Benutzername'; |
| | | $wb['add_new_record_txt'] = 'Ordner Benutzer hinzufügen'; |
| | | ?> |
| | |
| | | $wb['host_txt'] = 'Host'; |
| | | $wb['domain_error_wildcard'] = 'Wildcard-Subdomains sind nicht erlaubt.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Unzulässige php.ini-Einstellungen'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Die Apache Direktive wurde durch die Sicherheitsrichtline blockiert:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Διαδρομή'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Ενεργός'; |
| | | $wb['web_folder_id_txt'] = 'Φάκελος'; |
| | | $wb['username_txt'] = 'Όνομα Χρήστη'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; |
| | | $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; |
| | | $wb['Domain'] = 'Aliasdomain'; |
| | | |
| | | ?> |
| | |
| | | $wb["server_id_txt"] = 'Server'; |
| | | $wb["parent_domain_id_txt"] = 'Website'; |
| | | $wb["path_txt"] = 'Path'; |
| | | $wb["add_new_record_txt"] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb["active_txt"] = 'Active'; |
| | | $wb["web_folder_id_txt"] = 'Folder'; |
| | | $wb["username_txt"] = 'Username'; |
| | | $wb["add_new_record_txt"] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['repeat_password_txt'] = 'Repetir contraseña'; |
| | | $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; |
| | | $wb['password_match_txt'] = 'Las contraseñas coinciden.'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['directory_error_regex'] = 'Invalid directory'; |
| | | ?> |
| | |
| | | $wb['password_match_txt'] = 'Las contraseñas coinciden.'; |
| | | $wb['username_must_not_exceed_32_chars_txt'] = 'El nombre de usuario no debe ser más largo de 32 caracteres.'; |
| | | $wb['username_not_allowed_txt'] = 'El nombre de usuario no está permitido.'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['directory_error_regex'] = 'Invalid directory'; |
| | | $wb['shell_error_regex'] = 'Invalid shell'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Servidor'; |
| | | $wb['parent_domain_id_txt'] = 'Sitio web'; |
| | | $wb['path_txt'] = 'Ruta'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Activo'; |
| | | $wb['web_folder_id_txt'] = 'Carpeta'; |
| | | $wb['username_txt'] = 'Nombre de usuario'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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.'; |
| | | ?> |
| | |
| | | $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'; |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Serveur'; |
| | | $wb['parent_domain_id_txt'] = 'Site web'; |
| | | $wb['path_txt'] = 'Chemin'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['Websites'] = 'Web stranice'; |
| | | $wb['Website'] = 'Web stranice'; |
| | | $wb['Subdomain'] = 'Poddomena'; |
| | | $wb['Subdomain'] = 'Poddomene'; |
| | | $wb['Aliasdomain'] = 'Alias za web stranicu'; |
| | | $wb['Database'] = 'Baza'; |
| | | $wb['Web Access'] = 'Web Access'; |
| | | $wb['FTP-User'] = 'FTP korisnik'; |
| | | $wb['Web Access'] = 'Web pristup'; |
| | | $wb['FTP-User'] = 'FTP korisnici'; |
| | | $wb['Webdav-User'] = 'Webdav korisnik'; |
| | | $wb['Folder'] = 'Protected Folders'; |
| | | $wb['Folder users'] = 'Protected Folder Users'; |
| | | $wb['Command Line'] = 'Command Line'; |
| | | $wb['Folder'] = 'Zaštićeni direktoriji'; |
| | | $wb['Folder users'] = 'Korisnici zaštićenih direktorija'; |
| | | $wb['Command Line'] = 'Komandna linija'; |
| | | $wb['Shell-User'] = 'Shell korisnik'; |
| | | $wb['Cron Jobs'] = 'Cron zadaci'; |
| | | $wb['Statistics'] = 'Statistike'; |
| | |
| | | $wb['Webdav'] = 'WebDAV'; |
| | | $wb['FTP'] = 'FTP'; |
| | | $wb['Options'] = 'Opcije'; |
| | | $wb['Domain'] = 'Domena'; |
| | | $wb['Domena'] = 'Domena'; |
| | | $wb['Redirect'] = 'Preusmjeravanje'; |
| | | $wb['SSL'] = 'SSL'; |
| | | $wb['Sites'] = 'Sites'; |
| | | $wb['Database User'] = 'Database Users'; |
| | | $wb['APS Installer'] = 'APS Installer'; |
| | | $wb['Available packages'] = 'Available packages'; |
| | | $wb['Installed packages'] = 'Installed packages'; |
| | | $wb['Update Packagelist'] = 'Update Packagelist'; |
| | | $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; |
| | | $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; |
| | | $wb['Sites'] = 'Stranice'; |
| | | $wb['Database User'] = 'Korisnici baze'; |
| | | $wb['APS Installer'] = 'APS instalacija'; |
| | | $wb['Available packages'] = 'Dostupni paketi'; |
| | | $wb['Installed packages'] = 'Instalirani paketi'; |
| | | $wb['Update Packagelist'] = 'Osvježi listu paketa'; |
| | | $wb['Subdomain (Vhost)'] = 'Poddomena (Vhost)'; |
| | | $wb['error_proxy_requires_url'] = '\\"proxy\\" redirekcija zahtijeva URL za redirekcijsku putanju.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['overview_txt'] = 'Overview'; |
| | | $wb['administration_txt'] = 'Administration'; |
| | | $wb['available_packages_txt'] = 'Available packages'; |
| | | $wb['installed_packages_txt'] = 'Installed packages'; |
| | | $wb['yes_txt'] = 'Yes'; |
| | | $wb['no_txt'] = 'No'; |
| | | $wb['invalid_id_txt'] = 'No valid ID has been provided.'; |
| | | $wb['details_txt'] = 'Details'; |
| | | $wb['version_txt'] = 'Version'; |
| | | $wb['category_txt'] = 'Category'; |
| | | $wb['homepage_txt'] = 'Homepage'; |
| | | $wb['overview_txt'] = 'Pregled'; |
| | | $wb['administration_txt'] = 'Administracija'; |
| | | $wb['available_packages_txt'] = 'Dostupni paketi'; |
| | | $wb['installed_packages_txt'] = 'Instalirani paketi'; |
| | | $wb['yes_txt'] = 'Da'; |
| | | $wb['no_txt'] = 'Ne'; |
| | | $wb['invalid_id_txt'] = 'ID nije ispravan.'; |
| | | $wb['details_txt'] = 'Detalji'; |
| | | $wb['version_txt'] = 'Verzija'; |
| | | $wb['category_txt'] = 'Kategorija'; |
| | | $wb['homepage_txt'] = 'Web stranica'; |
| | | $wb['supported_languages_txt'] = 'Supported languages'; |
| | | $wb['description_txt'] = 'Description'; |
| | | $wb['description_txt'] = 'Opis'; |
| | | $wb['config_script_txt'] = 'Configuration script'; |
| | | $wb['installed_size_txt'] = 'Size after installation'; |
| | | $wb['license_txt'] = 'License'; |
| | | $wb['screenshots_txt'] = 'Screenshots'; |
| | | $wb['changelog_txt'] = 'Changelog'; |
| | | $wb['server_requirements_txt'] = 'Server requirements'; |
| | | $wb['php_extensions_txt'] = 'PHP extensions'; |
| | | $wb['php_settings_txt'] = 'PHP settings'; |
| | | $wb['supported_php_versions_txt'] = 'Supported PHP versions'; |
| | | $wb['database_txt'] = 'Database'; |
| | | $wb['settings_txt'] = 'Settings'; |
| | | $wb['install_package_txt'] = 'Install this package'; |
| | | $wb['installation_txt'] = 'Installation'; |
| | | $wb['install_location_txt'] = 'Install location'; |
| | | $wb['acceptance_txt'] = 'Acceptance'; |
| | | $wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.'; |
| | | $wb['install_language_txt'] = 'Interface language'; |
| | | $wb['new_database_password_txt'] = 'New database password'; |
| | | $wb['basic_settings_txt'] = 'Basic settings'; |
| | | $wb['package_settings_txt'] = 'Package settings'; |
| | | $wb['license_txt'] = 'Licenca'; |
| | | $wb['screenshots_txt'] = 'Slike'; |
| | | $wb['changelog_txt'] = 'Izmjene'; |
| | | $wb['server_requirements_txt'] = 'Server zahtjevi'; |
| | | $wb['php_extensions_txt'] = 'PHP ekstenzije'; |
| | | $wb['php_settings_txt'] = 'PHP postavke'; |
| | | $wb['supported_php_versions_txt'] = 'Podržane PHP verzije'; |
| | | $wb['database_txt'] = 'Baza'; |
| | | $wb['settings_txt'] = 'Postavke'; |
| | | $wb['install_package_txt'] = 'Instaliraj ovaj paket'; |
| | | $wb['installation_txt'] = 'Instalacija'; |
| | | $wb['install_location_txt'] = 'Lokacija instalacije'; |
| | | $wb['acceptance_txt'] = 'Potvrda'; |
| | | $wb['acceptance_text_txt'] = 'Da, pročitao sam licencu i prihvaćam.'; |
| | | $wb['install_language_txt'] = 'Jezik sučelja'; |
| | | $wb['new_database_password_txt'] = 'Nova šifra za bazu'; |
| | | $wb['basic_settings_txt'] = 'Standardne postavke'; |
| | | $wb['package_settings_txt'] = 'Opcije paketa'; |
| | | $wb['error_main_domain'] = 'The domain of the installation path is invalid.'; |
| | | $wb['error_no_main_location'] = 'You have provided no valid installation path.'; |
| | | $wb['error_inv_main_location'] = 'The given install location folder is invalid.'; |
| | |
| | | $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'] = 'Install planned'; |
| | | $wb['installation_error_txt'] = 'Install error'; |
| | | $wb['installation_success_txt'] = 'Installed'; |
| | | $wb['installation_remove_txt'] = 'Removal planned'; |
| | | $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; |
| | | $wb['btn_install_txt'] = 'Install'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; |
| | | $wb['installation_task_txt'] = 'Instalacija u postupku'; |
| | | $wb['installation_error_txt'] = 'Instalacijska greška'; |
| | | $wb['installation_success_txt'] = 'Instalirano'; |
| | | $wb['installation_remove_txt'] = 'Brisanje u postupku'; |
| | | $wb['packagelist_update_finished_txt'] = 'Nadogradnja APS liste paketa je završena.'; |
| | | $wb['btn_install_txt'] = 'Instaliraj'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['limit_aps_txt'] = 'Iskoristili ste maksimalan broj APS instanci za vaš račun.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Installed packages'; |
| | | $wb['name_txt'] = 'Name'; |
| | | $wb['version_txt'] = 'Version'; |
| | | $wb['customer_txt'] = 'Client'; |
| | | $wb['list_head_txt'] = 'Instalirani paketi'; |
| | | $wb['name_txt'] = 'Naziv'; |
| | | $wb['version_txt'] = 'Verzija'; |
| | | $wb['customer_txt'] = 'Klijent'; |
| | | $wb['status_txt'] = 'Status'; |
| | | $wb['install_location_txt'] = 'Install location'; |
| | | $wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; |
| | | $wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; |
| | | $wb['filter_txt'] = 'Search'; |
| | | $wb['delete_txt'] = 'Delete'; |
| | | $wb['reinstall_txt'] = 'Reinstall'; |
| | | $wb['install_location_txt'] = 'Lokacija instalacije'; |
| | | $wb['pkg_delete_confirmation'] = 'Da li stvarno želite obrisati ovu instalaciju?'; |
| | | $wb['pkg_reinstall_confirmation'] = 'Da li stvarno želite reinstalirati ovaj paket sa istim postavkama?'; |
| | | $wb['filter_txt'] = 'Traži'; |
| | | $wb['delete_txt'] = 'Obriši'; |
| | | $wb['reinstall_txt'] = 'Reinstaliraj'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['status_txt'] = 'Unlocked'; |
| | | $wb['filter_txt'] = 'Search'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['head_txt'] = 'Update Packagelist'; |
| | | $wb['head_txt'] = 'Osvježi listu paketa'; |
| | | $wb['list_desc_txt'] = ''; |
| | | $wb['btn_start_txt'] = 'Update Packagelist'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['btn_start_txt'] = 'Osvježi listu paketa'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $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.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['run_wday_error_format'] = 'Pogrešan format za dane u tjednu.'; |
| | | $wb['command_error_format'] = 'Pogrešan format komande. U slučaju pozivanja URL-a koristite samo http/https.'; |
| | | $wb['unknown_fieldtype_error'] = 'Koristi se nepoznata vrsta polja.'; |
| | | $wb['server_id_error_empty'] = 'The server ID is empty.'; |
| | | $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.'; |
| | | $wb['command_error_empty'] = 'Command is empty.'; |
| | | $wb['server_id_error_empty'] = 'ID servera je preazan.'; |
| | | $wb['limit_cron_url_txt'] = 'Samo za URL cron. Unesite URL koji počinje sa http:// kao cron naredba.'; |
| | | $wb['command_error_empty'] = 'Naredba je prazna.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['add_new_cron_txt'] = 'Dodaj novi cron zadatak'; |
| | | $wb['parent_domain_id_txt'] = 'Web stranica'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['database_site_error_empty'] = 'Select the site to which the database belongs.'; |
| | | $wb['select_site_txt'] = '- Select Site -'; |
| | | $wb['btn_save_txt'] = 'Save'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'of'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'results'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'No results.'; |
| | |
| | | $wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.'; |
| | | $wb['database_user_missing_txt'] = 'Please select a database user for this database.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['database_name_txt'] = 'Naziv baze'; |
| | | $wb['add_new_record_txt'] = 'Dodaj bazu'; |
| | | $wb['sys_groupid_txt'] = 'Klijent'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['parent_domain_id_txt'] = 'Web stranica'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['database_user_txt'] = 'Korisnik baze'; |
| | | $wb['database_name_txt'] = 'Naziv baze'; |
| | | $wb['add_new_record_txt'] = 'Dodaj bazu'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['parent_domain_id_txt'] = 'Web stranica'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['database_user_txt'] = 'Database user'; |
| | | $wb['database_password_txt'] = 'Database password'; |
| | | $wb['password_strength_txt'] = 'Password strength'; |
| | | $wb['client_txt'] = 'Client'; |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['database_user_txt'] = 'Korisnik baze'; |
| | | $wb['database_password_txt'] = 'Šifra za bazu'; |
| | | $wb['password_strength_txt'] = 'Jačina šifre'; |
| | | $wb['client_txt'] = 'Klijent'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['database_user_error_empty'] = 'Database user is empty.'; |
| | | $wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; |
| | | $wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, npr. prepend your domain name to the username.'; |
| | | $wb['database_user_error_regex'] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; |
| | | $wb['database_user_error_len'] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.'; |
| | | $wb['btn_save_txt'] = 'Save'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'of'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'results'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'No results.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 results'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Search'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; |
| | | $wb['btn_save_txt'] = 'Spremi'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['globalsearch_resultslimit_of_txt'] = 'od'; |
| | | $wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; |
| | | $wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; |
| | | $wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Database User'; |
| | | $wb['database_user_txt'] = 'Database user'; |
| | | $wb['add_new_record_txt'] = 'Add new User'; |
| | | $wb['sys_groupid_txt'] = 'Client'; |
| | | $wb['list_head_txt'] = 'Korisnik baze'; |
| | | $wb['database_user_txt'] = 'Korisnik'; |
| | | $wb['add_new_record_txt'] = 'Dodaj'; |
| | | $wb['sys_groupid_txt'] = 'Klijent'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Database user'; |
| | | $wb['database_user_txt'] = 'Database user'; |
| | | $wb['add_new_record_txt'] = 'Add new user'; |
| | | $wb['list_head_txt'] = 'Korisnik baze'; |
| | | $wb['database_user_txt'] = 'Korisnik baze'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novog korisnika'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['directory_error_notinweb'] = 'Direktorij nije unutar početne web stranice.'; |
| | | $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; |
| | | $wb['quota_size_error_regex'] = 'Kvota: unesi -1 za neograničeno ili broj > 0'; |
| | | $wb['dir_dot_error'] = 'No .. in path allowed.'; |
| | | $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['dir_dot_error'] = '.. nije dozvoljen u putanji.'; |
| | | $wb['dir_slashdot_error'] = './ nije dozvoljen u putanji.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Nepostojeći sistemski korisnik ili grupa'; |
| | | $wb['directory_error_regex'] = 'Neispravan direktorij'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['add_new_record_txt'] = 'Dodaj FTP račun'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['limit_shell_user_txt'] = 'Iskorišten je maksimalan broj shell korisnika.'; |
| | | $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; |
| | | $wb['ssh_rsa_txt'] = 'SSH-RSA javni ključ (za logiranje ključevima)'; |
| | | $wb['dir_dot_error'] = 'No .. in path allowed.'; |
| | | $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $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['dir_dot_error'] = 'Nije dozvoljeno koristiti .. u putanji.'; |
| | | $wb['dir_slashdot_error'] = 'Nije dozvoljeno koristiti ./ u putanji.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['username_must_not_exceed_32_chars_txt'] = 'Korisničko ime ne može biti duže od 32 znaka.'; |
| | | $wb['username_not_allowed_txt'] = 'Izabrano korisničko ime nije dozvoljeno.'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Neispravan sistemski korisnik ili grupa'; |
| | | $wb['directory_error_regex'] = 'Neispravan direktorij'; |
| | | $wb['shell_error_regex'] = 'Neispravan shell'; |
| | | $wb['invalid_username_txt'] = 'Neispravno korisničko ime'; |
| | | $wb['directory_error_notinweb'] = 'Direktorij treba biti unutar web početne putanje (root).'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Shell korisnik'; |
| | | $wb['list_head_txt'] = 'Shell korisnici'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Web stranica'; |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novog Shell korisnika'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['used_txt'] = 'Prostor'; |
| | | $wb['hard_txt'] = 'Hard limit'; |
| | | $wb['soft_txt'] = 'Soft limit'; |
| | | $wb['files_txt'] = 'Single files'; |
| | | $wb['files_txt'] = 'Broj datoteka'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['backup_type_mysql'] = 'MySQL Database'; |
| | | $wb['backup_type_web'] = 'Website files'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['none_txt'] = 'Ništa'; |
| | | |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['path_txt'] = 'Putanja'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['path_error_regex'] = 'Neispravna putanja direktorija.'; |
| | | $wb['error_folder_already_protected_txt'] = 'There is already a record for this folder.'; |
| | | $wb['error_folder_already_protected_txt'] = 'Već postoji zapis za ovaj direktorij.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Web stranica'; |
| | | $wb['path_txt'] = 'Putanja'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novi direktorij'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['password_txt'] = 'Šifra'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['folder_error_empty'] = 'Nije izabran web direktorij.'; |
| | | $wb['password_strength_txt'] = 'Password strength'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['no_folder_perm'] = 'You have no permission for this folder.'; |
| | | $wb['error_user_exists_already_txt'] = 'There is already a record for this user.'; |
| | | $wb['password_strength_txt'] = 'Jačina šifre'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['no_folder_perm'] = 'Nemate potrebne dozvole za ovaj direktorij.'; |
| | | $wb['error_user_exists_already_txt'] = 'Već postoji zapis za ovog korisnika.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['web_folder_id_txt'] = 'Web direkotrij'; |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novog korisnika web direktorija'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['last_month_txt'] = 'Prošli mjesec'; |
| | | $wb['this_year_txt'] = 'Ovu godinu'; |
| | | $wb['last_year_txt'] = 'Prošlu godinu'; |
| | | $wb['sum_txt'] = 'Sum'; |
| | | $wb['sum_txt'] = 'Ukupno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['backup_interval_txt'] = 'Interval backupa'; |
| | | $wb['backup_copies_txt'] = 'Broj backup kopija'; |
| | | $wb['ssl_state_txt'] = 'Stanje'; |
| | | $wb['ssl_locality_txt'] = 'Lokacija'; |
| | | $wb['ssl_state_txt'] = 'Županija'; |
| | | $wb['ssl_locality_txt'] = 'Grad'; |
| | | $wb['ssl_organisation_txt'] = 'Organizacija'; |
| | | $wb['ssl_organisation_unit_txt'] = 'Organizacijski dio'; |
| | | $wb['ssl_organisation_unit_txt'] = 'Organizacijski sektor'; |
| | | $wb['ssl_country_txt'] = 'Država'; |
| | | $wb['ssl_request_txt'] = 'SSL zahtjev'; |
| | | $wb['ssl_cert_txt'] = 'SSL certifikat'; |
| | |
| | | $wb['domain_error_regex'] = 'Naziv domene nije ispravan.'; |
| | | $wb['hd_quota_error_empty'] = 'Limit kvote (prostor) je 0 ili je prazno.'; |
| | | $wb['traffic_quota_error_empty'] = 'Limit prometa je prazan.'; |
| | | $wb['error_ssl_state_empty'] = 'SSL županija je prazno.'; |
| | | $wb['error_ssl_locality_empty'] = 'SSL lokacija je prazna.'; |
| | | $wb['error_ssl_organisation_empty'] = 'SSL organizacija je prazna.'; |
| | | $wb['error_ssl_organisation_unit_empty'] = 'SSL organizacijski dio je prazan.'; |
| | | $wb['error_ssl_country_empty'] = 'SSL država je prazna.'; |
| | | $wb['error_ssl_state_empty'] = 'Niste unijeli županiju.'; |
| | | $wb['error_ssl_locality_empty'] = 'Niste unijeli grad.'; |
| | | $wb['error_ssl_organisation_empty'] = 'Niste unijeli organizaciju.'; |
| | | $wb['error_ssl_organisation_unit_empty'] = 'Niste unijeli organizacjski sektor.'; |
| | | $wb['error_ssl_country_empty'] = 'Niste unijeli državu.'; |
| | | $wb['error_ssl_cert_empty'] = 'Polje SSL certifikata je prazno'; |
| | | $wb['client_group_id_txt'] = 'Klijent'; |
| | | $wb['stats_password_txt'] = 'Šifra za statistiku'; |
| | | $wb['allow_override_txt'] = 'Apache AllowOverride'; |
| | | $wb['limit_web_quota_free_txt'] = 'Maksimalan limit kvote (prostor)'; |
| | | $wb['ssl_state_error_regex'] = 'Neispravan unos SSL županije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_locality_error_regex'] = 'Neispravan unos SSL lokacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_organisation_error_regex'] = 'Neispravan unos SSL organizacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_organistaion_unit_error_regex'] = 'Neispravan unos SSL organizacijskog dijela. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_country_error_regex'] = 'Neispravan unos SSL države. Dozvoljeni znakovi: A-Z'; |
| | | $wb['ssl_state_error_regex'] = 'Neispravan unos županije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_locality_error_regex'] = 'Neispravan unos grada. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_organisation_error_regex'] = 'Neispravan unos organizacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_organistaion_unit_error_regex'] = 'Neispravan unos organizacijskog sektora. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; |
| | | $wb['ssl_country_error_regex'] = 'Neispravan unos države. Dozvoljeni znakovi: A-Z'; |
| | | $wb['limit_traffic_quota_free_txt'] = 'Maksimalan limit prometa web stranice'; |
| | | $wb['redirect_error_regex'] = 'Neispravna putanja redirekcije. Ispravne redirekcije su npr.: /test/ ili http://www.domena.tld/test/'; |
| | | $wb['php_open_basedir_txt'] = 'PHP open_basedir'; |
| | |
| | | $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; |
| | | $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; |
| | | $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; |
| | | $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; |
| | | $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; |
| | | $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; |
| | | $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; |
| | | $wb['proxy_directives_txt'] = 'Proxy Directives'; |
| | | $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; |
| | | $wb['no_server_error'] = 'No server selected.'; |
| | | $wb['no_backup_txt'] = 'No backup'; |
| | | $wb['daily_backup_txt'] = 'Daily'; |
| | | $wb['weekly_backup_txt'] = 'Weekly'; |
| | | $wb['monthly_backup_txt'] = 'Monthly'; |
| | | $wb['rewrite_rules_txt'] = 'Rewrite Rules'; |
| | | $wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; |
| | | $wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; |
| | | $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; |
| | | $wb['domain_error_autosub'] = 'Već postoji poddomena sa ovim postavkama.'; |
| | | $wb['available_php_directive_snippets_txt'] = 'Dostupne PHP direktive:'; |
| | | $wb['available_apache_directive_snippets_txt'] = 'Dostupne Apache direktive:'; |
| | | $wb['available_nginx_directive_snippets_txt'] = 'Dostupne nginx direktive:'; |
| | | $wb['proxy_directives_txt'] = 'Proxy direktive'; |
| | | $wb['available_proxy_directive_snippets_txt'] = 'Dostupne Proxy direktive:'; |
| | | $wb['no_server_error'] = 'Nije izabran server.'; |
| | | $wb['no_backup_txt'] = 'Bez backup-a'; |
| | | $wb['daily_backup_txt'] = 'Dnevni backup'; |
| | | $wb['weekly_backup_txt'] = 'Tjedni backup'; |
| | | $wb['monthly_backup_txt'] = 'Mjesečni backup'; |
| | | $wb['rewrite_rules_txt'] = 'Rewrite pravila'; |
| | | $wb['invalid_rewrite_rules_txt'] = 'Neispravna Rewrite pravila'; |
| | | $wb['allowed_rewrite_rule_directives_txt'] = 'Dozvoljene direktive:'; |
| | | $wb['configuration_error_txt'] = 'KONFIGURACIJSKA GREŠKA'; |
| | | $wb['variables_txt'] = 'Varijable'; |
| | | $wb['added_by_txt'] = 'Dodao'; |
| | | $wb['added_date_txt'] = 'Dodano'; |
| | | $wb['backup_excludes_txt'] = 'Izbačeni direktoriji'; |
| | | $wb['web_folder_txt'] = 'Web folder'; |
| | | $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; |
| | | $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; |
| | | $wb['host_txt'] = 'Hostname'; |
| | | $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; |
| | | |
| | | $wb['variables_txt'] = 'Variables'; |
| | | $wb['added_by_txt'] = 'Added by'; |
| | | $wb['added_date_txt'] = 'Added date'; |
| | | $wb['backup_excludes_txt'] = 'Excluded Directories'; |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['backup_excludes_error_regex'] = 'Izbačeni direktorij sadrži nedozvoljene znakove.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Neispravne php.ini postavke'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domena'; |
| | | $wb['add_new_record_txt'] = 'Dodaj novu web stranicu'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['username_error_regex'] = 'Korisničko ime sadrži znakove koji nisu dopušteni.'; |
| | | $wb['directory_error_empty'] = 'Direktorij je prazan.'; |
| | | $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; |
| | | $wb['dir_dot_error'] = 'No .. in path allowed.'; |
| | | $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['dir_dot_error'] = '.. nije dozvoljenu u putanji.'; |
| | | $wb['dir_slashdot_error'] = './ nije dozvoljeno u putanji.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['username_txt'] = 'Korisničko ime'; |
| | | $wb['add_new_record_txt'] = 'Dodaj Webdav korisnika'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Serwer'; |
| | | $wb['parent_domain_id_txt'] = 'Witryna'; |
| | | $wb['path_txt'] = 'Ścieżka'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Aktywny'; |
| | | $wb['web_folder_id_txt'] = 'Katalog'; |
| | | $wb['username_txt'] = 'Login'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | |
| | | $wb['btn_cancel_txt'] = 'Avbryt'; |
| | | $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; |
| | | ?> |
| | | |
| | |
| | | $wb['delete_txt'] = 'Radera'; |
| | | $wb['reinstall_txt'] = 'Ominstallera'; |
| | | ?> |
| | | |
| | |
| | | $wb['status_txt'] = 'Olåst'; |
| | | $wb['filter_txt'] = 'Sök'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_cron_txt'] = 'Lägg till nytt cron-jobb'; |
| | | $wb['parent_domain_id_txt'] = 'Webbsida'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['sys_groupid_txt'] = 'Kund'; |
| | | $wb['parent_domain_id_txt'] = 'Webbsida'; |
| | | ?> |
| | | |
| | |
| | | $wb['database_user_txt'] = 'Databasanvändare'; |
| | | $wb['parent_domain_id_txt'] = 'Webbsida'; |
| | | ?> |
| | | |
| | |
| | | $wb['globalsearch_searchfield_watermark_txt'] = 'Sök'; |
| | | $wb['globalsearch_suggestions_text_txt'] = 'Förslag'; |
| | | ?> |
| | | |
| | |
| | | $wb['add_new_record_txt'] = 'Lägg till ny användare'; |
| | | $wb['sys_groupid_txt'] = 'Kund'; |
| | | ?> |
| | | |
| | |
| | | $wb['database_user_txt'] = 'Databasanvändare'; |
| | | $wb['add_new_record_txt'] = 'Lägg till ny användare'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Användarnamn'; |
| | | $wb['add_new_record_txt'] = 'Lägg till ny FTP-användare'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Shell-User'; |
| | | ?> |
| | | |
| | |
| | | $wb['soft_txt'] = 'Soft limit'; |
| | | $wb['files_txt'] = 'Single files'; |
| | | ?> |
| | | |
| | |
| | | $wb['backup_type_mysql'] = 'MySQL-databaser'; |
| | | $wb['backup_type_web'] = 'Webbsidefiler'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | | |
| | |
| | | $wb['last_year_txt'] = 'Förra året'; |
| | | $wb['sum_txt'] = 'Total'; |
| | | ?> |
| | | |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Ogiltiga php.ini-inställningar'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | | |
| | |
| | | $wb['domain_txt'] = 'Domain'; |
| | | $wb['add_new_record_txt'] = 'Add new website'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; |
| | | $wb['password_match_txt'] = 'Lösenorden matchar'; |
| | | ?> |
| | | |
| | |
| | | $wb['username_txt'] = 'Användarnamn'; |
| | | $wb['add_new_record_txt'] = 'Lägg till ny WebDAV-användare'; |
| | | ?> |
| | | |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | $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'; |
| | | ?> |
| | |
| | | $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'; |
| | | $wb['invalid_username_txt'] = 'Invalid Username'; |
| | | $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; |
| | | ?> |
| | |
| | | $wb['server_id_txt'] = 'Server'; |
| | | $wb['parent_domain_id_txt'] = 'Website'; |
| | | $wb['path_txt'] = 'Path'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder'; |
| | | ?> |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['web_folder_id_txt'] = 'Folder'; |
| | | $wb['username_txt'] = 'Username'; |
| | | $wb['add_new_record_txt'] = 'Add new Folder User'; |
| | | ?> |
| | |
| | | $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; |
| | | $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; |
| | | $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; |
| | | $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; |
| | | $wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; |
| | | ?> |
| | |
| | | } |
| | | } |
| | | 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! |
| | |
| | | $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']); |
| | |
| | | |
| | | 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')); |
| | |
| | | |
| | | //* make sure that the domain is lowercase |
| | | if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); |
| | | |
| | | |
| | | parent::onSubmit(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | $ssl_domain_select = ''; |
| | | $tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".$this->id); |
| | | $ssl_domains = array($tmp["domain"], 'www.'.$tmp["domain"], '*.'.$tmp["domain"]); |
| | | $ssl_domains = array(); |
| | | $tmpd = $app->db->queryAllRecords("SELECT domain, type FROM web_domain WHERE domain_id = ".$this->id." OR parent_domain_id = ".$this->id); |
| | | foreach($tmpd as $tmp) { |
| | | if($tmp['type'] == 'subdomain' || $tmp['type'] == 'vhostsubdomain') { |
| | | $ssl_domains[] = $tmp["domain"]; |
| | | } else { |
| | | $ssl_domains = array_merge($ssl_domains, array($tmp["domain"],'www.'.$tmp["domain"],'*.'.$tmp["domain"])); |
| | | } |
| | | } |
| | | if(is_array($ssl_domains)) { |
| | | foreach( $ssl_domains as $ssl_domain) { |
| | | $selected = ($ssl_domain == $this->dataRecord['ssl_domain'])?'SELECTED':''; |
| | |
| | | // 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, `web_folder`, `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`, `web_folder`, `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['web_folder'] = $tmp['web_folder']; // cannot be changed! |
| | | $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']; |
| | |
| | | $wb['password_strength_4_txt'] = 'Silné'; |
| | | $wb['password_strength_5_txt'] = 'Velmi silné'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_strength_4_txt'] = 'Jaka'; |
| | | $wb['password_strength_5_txt'] = 'Vrlo jaka'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['password_strength_4_txt'] = 'Starkt'; |
| | | $wb['password_strength_5_txt'] = 'Mycket starkt'; |
| | | ?> |
| | | |
| | |
| | | <!-- 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> |
| | |
| | | |
| | | $('.ttip').tipsy({live: true, gravity: 'ne', html: true}); |
| | | |
| | | tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled>'; |
| | | tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled>'; |
| | | tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled">'; |
| | | tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled">'; |
| | | tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">'; |
| | | tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">'; |
| | | |
| | |
| | | <!-- 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | $wb['PDNS Tupa'] = 'PowerDNS Tupa'; |
| | | $wb['Interface'] = 'Rozhraní'; |
| | | ?> |
| | | |
| | |
| | | $wb['import_user_filter_txt'] = 'Importovat uživatelský filter'; |
| | | $wb['import_spamfilter_txt'] = 'Importovat spamový filter'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_head_txt'] = 'ISPConfig nástroje'; |
| | | $wb['page_desc_txt'] = 'Změna uživatelského nastavení'; |
| | | ?> |
| | | |
| | |
| | | $wb['startmodule_txt'] = 'Výchozí modul po přihlášení'; |
| | | $wb['app_theme_txt'] = 'Výchozí grafické téma'; |
| | | ?> |
| | | |
| | |
| | | $wb['resync_firewall_txt'] = 'Resync Firewall'; |
| | | $wb['resync_no_server_txt'] = 'No active server found'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_start_txt'] = 'Uložit'; |
| | | $wb['btn_cancel_txt'] = 'Zpět'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; |
| | | $wb['password_match_txt'] = 'Hesla se shodují.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ISPConfig Tools'] = 'Control panel alati'; |
| | | $wb['Password and Language'] = 'Šifra i jezik'; |
| | | $wb['ispconfig_tools_note'] = 'Ovaj modul omogućava promjenu šifre i jezika te možete pokrenuti sinkronizaciju DNS zapisa.'; |
| | | $wb['Resync'] = 'Sinkroniziraj DNS zapise'; |
| | | $wb['Resync'] = 'Sinkroniziraj zapise'; |
| | | $wb['Sync Tools'] = 'Sync Tools'; |
| | | $wb['Import'] = 'Import'; |
| | | $wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail'; |
| | | $wb['PDNS Tupa'] = 'PowerDNS Tupa'; |
| | | $wb['Interface'] = 'Interface'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['head_txt'] = 'Import email configuration from ISPConfig 3'; |
| | | $wb['legend_txt'] = 'Remote server connection details'; |
| | | $wb['legend2_txt'] = 'Import email domain'; |
| | | $wb['resync_sites_txt'] = 'Resync Websites'; |
| | | $wb['resync_ftp_txt'] = 'Resync FTP users'; |
| | | $wb['resync_shell_txt'] = 'Resync shell users'; |
| | | $wb['resync_cron_txt'] = 'Resync cronjobs'; |
| | | $wb['resync_db_txt'] = 'Resync clientdb config'; |
| | | $wb['resync_mailbox_txt'] = 'Resync Mailboxes'; |
| | | $wb['resync_dns_txt'] = 'Resync DNS records'; |
| | | $wb['btn_start_txt'] = 'Start Import'; |
| | | $wb['btn_connect_txt'] = 'Connect to remote server'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['client_group_id_txt'] = 'Local client'; |
| | | $wb['mail_domain_txt'] = 'Remote email domain'; |
| | | $wb['import_mailbox_txt'] = 'Import mailbox'; |
| | | $wb['import_aliasdomain_txt'] = 'Import alias domain'; |
| | | $wb['import_alias_txt'] = 'Import email alias'; |
| | | $wb['import_forward_txt'] = 'Import forward'; |
| | | $wb['import_user_filter_txt'] = 'Import user filter'; |
| | | $wb['import_spamfilter_txt'] = 'Import spamfilter'; |
| | | $wb['head_txt'] = 'Importiraj email konfiguraciju iz ISPConfig 3'; |
| | | $wb['legend_txt'] = 'Podaci za spajanje na udaljeni server'; |
| | | $wb['legend2_txt'] = 'Importiraj email domenu'; |
| | | $wb['resync_sites_txt'] = 'Sinkroniziraj web stranice'; |
| | | $wb['resync_ftp_txt'] = 'Sinkroniziraj FTP korisnike'; |
| | | $wb['resync_shell_txt'] = 'Sinkroniziraj shell korisnike'; |
| | | $wb['resync_cron_txt'] = 'Sinkroniziraj cron zadatke'; |
| | | $wb['resync_db_txt'] = 'Sinkroniziraj clientdb konfiguraciju'; |
| | | $wb['resync_mailbox_txt'] = 'Sinkroniziraj email sandučiće'; |
| | | $wb['resync_dns_txt'] = 'Sinkroniziraj DNS zapise'; |
| | | $wb['btn_start_txt'] = 'Importiraj'; |
| | | $wb['btn_connect_txt'] = 'Spoji na udaljeni server'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['client_group_id_txt'] = 'Localni klijent'; |
| | | $wb['mail_domain_txt'] = 'Udaljena email domena'; |
| | | $wb['import_mailbox_txt'] = 'Importiraj sandučiće'; |
| | | $wb['import_aliasdomain_txt'] = 'Importiraj alias domene'; |
| | | $wb['import_alias_txt'] = 'Importiraj email alias-e'; |
| | | $wb['import_forward_txt'] = 'Importiraj forward-ere'; |
| | | $wb['import_user_filter_txt'] = 'Importiraj korisničke filtere'; |
| | | $wb['import_spamfilter_txt'] = 'Importiraj spamfilter'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['page_head_txt'] = 'ISPConfig Tools'; |
| | | $wb['page_desc_txt'] = 'Change user settings'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['interface_head_txt'] = 'Interface Settings'; |
| | | $wb['interface_desc_txt'] = 'Modify your interface'; |
| | | $wb['language_txt'] = 'Language'; |
| | | $wb['startmodule_txt'] = 'Startmodule'; |
| | | $wb['app_theme_txt'] = 'Design'; |
| | | $wb['interface_head_txt'] = 'Postavke teme'; |
| | | $wb['interface_desc_txt'] = 'Podesi temu'; |
| | | $wb['language_txt'] = 'Jezik'; |
| | | $wb['startmodule_txt'] = 'Početna stranica'; |
| | | $wb['app_theme_txt'] = 'Tema'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['head_txt'] = 'Resync Tool'; |
| | | $wb['legend_txt'] = 'Resync'; |
| | | $wb['resync_sites_txt'] = 'Resync Websites'; |
| | | $wb['resync_ftp_txt'] = 'Resync FTP users'; |
| | | $wb['resync_shell_txt'] = 'Resync shell users'; |
| | | $wb['resync_cron_txt'] = 'Resync cronjobs'; |
| | | $wb['resync_db_txt'] = 'Resync clientdb config'; |
| | | $wb['resync_mailbox_txt'] = 'Resync Mailboxes'; |
| | | $wb['resync_dns_txt'] = 'Resync DNS records'; |
| | | $wb['btn_start_txt'] = 'Start'; |
| | | $wb['btn_cancel_txt'] = 'Cancel'; |
| | | $wb['resync_client_txt'] = 'Resync Client records'; |
| | | $wb['head_txt'] = 'Sinkronizacija'; |
| | | $wb['legend_txt'] = 'Sinkroniziraj'; |
| | | $wb['resync_sites_txt'] = 'Sinkroniziraj web stranice'; |
| | | $wb['resync_ftp_txt'] = 'Sinkroniziraj FTP korisnike'; |
| | | $wb['resync_shell_txt'] = 'Sinkroniziraj shell korisnike'; |
| | | $wb['resync_cron_txt'] = 'Sinkroniziraj cron zadatke'; |
| | | $wb['resync_db_txt'] = 'Sinkroniziraj clientdb konfiguraciju'; |
| | | $wb['resync_mailbox_txt'] = 'Sinkroniziraj email sandučiće'; |
| | | $wb['resync_dns_txt'] = 'Sinkroniziraj DNS zapise'; |
| | | $wb['btn_start_txt'] = 'Pokreni'; |
| | | $wb['btn_cancel_txt'] = 'Odustani'; |
| | | $wb['resync_client_txt'] = 'Sinkroniziraj klijente'; |
| | | ?> |
| | | |
| | | |
| | |
| | | <?php |
| | | $wb['list_head_txt'] = 'Default Theme settings'; |
| | | $wb['list_desc_txt'] = 'Modify default-theme specific options'; |
| | | $wb['no_settings_txt'] = 'There are no settings for the default theme.'; |
| | | $wb['btn_start_txt'] = 'Save'; |
| | | $wb['btn_cancel_txt'] = 'Back'; |
| | | $wb['list_head_txt'] = 'Standardne postavke teme'; |
| | | $wb['list_desc_txt'] = 'Podesi opcije standardne teme'; |
| | | $wb['no_settings_txt'] = 'Nema opcija za standardnu temu.'; |
| | | $wb['btn_start_txt'] = 'Spremi'; |
| | | $wb['btn_cancel_txt'] = 'Natrag'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['password_mismatch'] = 'Šifra u drugom polju ne odgovara šifri iz prvog polja.'; |
| | | $wb['Form to edit the user password and language.'] = 'Formular za izmjenu šifre i jezika.'; |
| | | $wb['Settings'] = 'Postavke'; |
| | | $wb['generate_password_txt'] = 'Generate Password'; |
| | | $wb['repeat_password_txt'] = 'Repeat Password'; |
| | | $wb['password_mismatch_txt'] = 'The passwords do not match.'; |
| | | $wb['password_match_txt'] = 'The passwords do match.'; |
| | | $wb['generate_password_txt'] = 'Generiraj šifru'; |
| | | $wb['repeat_password_txt'] = 'Ponovi šifru'; |
| | | $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; |
| | | $wb['password_match_txt'] = 'Šifre su identične.'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['PDNS Tupa'] = 'PowerDNS Tupa'; |
| | | $wb['Interface'] = 'Interface'; |
| | | ?> |
| | | |
| | |
| | | $wb['import_user_filter_txt'] = 'Importera användarfilter'; |
| | | $wb['import_spamfilter_txt'] = 'Importera spamfilter'; |
| | | ?> |
| | | |
| | |
| | | $wb['page_head_txt'] = 'ISPConfig verktyg'; |
| | | $wb['page_desc_txt'] = 'Ändra användarinställningar'; |
| | | ?> |
| | | |
| | |
| | | $wb['startmodule_txt'] = 'Startmodul'; |
| | | $wb['app_theme_txt'] = 'Design'; |
| | | ?> |
| | | |
| | |
| | | $wb['btn_start_txt'] = 'Spara'; |
| | | $wb['btn_cancel_txt'] = 'Tillbaka'; |
| | | ?> |
| | | |
| | |
| | | $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; |
| | | $wb['password_match_txt'] = 'Lösenorden matchar'; |
| | | ?> |
| | | |
| | |
| | | //* Check permissions for module |
| | | $app->auth->check_module_permissions('tools'); |
| | | |
| | | if($_SESSION['s']['user']['typ'] == 'admin') { |
| | | $app->auth->check_security_permissions('admin_allow_new_admin'); |
| | | } |
| | | |
| | | // Loading classes |
| | | $app->uses('tpl,tform,tform_actions'); |
| | | $app->load('tform_actions'); |
| | |
| | | $app->error('Invalid language.'); |
| | | } |
| | | } |
| | | |
| | | function onAfterUpdate() { |
| | | global $app; |
| | | |
| | | if($_POST['passwort'] != '') { |
| | | $tmp_user = $app->db->queryOneRecord("SELECT passwort FROM sys_user WHERE userid = '".$app->functions->intval($_SESSION['s']['user']['userid'])."'"); |
| | | $_SESSION['s']['user']['passwort'] = $tmp_user['passwort']; |
| | | unset($tmp_user); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | $wb['IP addresses'] = 'IP addresses'; |
| | | $wb['OpenVZ'] = 'OpenVZ'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ip_error_unique'] = 'This IP address does already exist.'; |
| | | $wb['IP address'] = 'IP address'; |
| | | ?> |
| | | |
| | |
| | | $wb['reserved_txt'] = 'Reserved'; |
| | | $wb['vm_id_txt'] = 'VM'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_file_error_empty'] = 'Template filename is empty.'; |
| | | $wb['Template'] = 'Šablona'; |
| | | ?> |
| | | |
| | |
| | | $wb['allservers_txt'] = 'Exists on all servers'; |
| | | $wb['ostemplate_id_txt'] = 'ID'; |
| | | ?> |
| | | |
| | |
| | | $wb['Template'] = 'Šablona'; |
| | | $wb['Advanced'] = 'Pokročilý'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivní'; |
| | | $wb['template_name_txt'] = 'Název šablony'; |
| | | ?> |
| | | |
| | |
| | | $wb['Virtual server'] = 'Virtual server'; |
| | | $wb['Advanced'] = 'Pokročilý'; |
| | | ?> |
| | | |
| | |
| | | $wb['ip_address_txt'] = 'IP address'; |
| | | $wb['veid_txt'] = 'VEID'; |
| | | ?> |
| | | |
| | |
| | | $wb['IP addresses'] = 'IP adrese'; |
| | | $wb['OpenVZ'] = 'OpenVZ'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['stop_txt'] = 'Zaustavi virtualni server'; |
| | | $wb['restart_txt'] = 'Restartaj virtualni server'; |
| | | $wb['ostemplate_txt'] = 'Kreiraj predložak operativnog sistema'; |
| | | $wb['ostemplate_desc_txt'] = '(primjer: debian-6.0-i386-custom)'; |
| | | $wb['ostemplate_desc_txt'] = '(primjer: debian-7.0-i386-custom)'; |
| | | $wb['btn_save_txt'] = 'Pokreni selektiranu akciju'; |
| | | $wb['btn_cancel_txt'] = 'Prekini'; |
| | | $wb['start_exec_txt'] = 'Komanda za pokretanje je poslana VM host serveru. Treba pričekati minutu, dvije dok se VM ne pokrene.'; |
| | |
| | | $wb['ostemplate_name_unique_error'] = 'Već postoji OS predložak sa tim nazivom.'; |
| | | $wb['ostemplate_exec_txt'] = 'Komanda za kreiranje OS predloška je poslana host serveru. Treba pričekati minutu, dvije dok se OS predložak ne kreira'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['ip_error_unique'] = 'Ova IP adresa već postoji.'; |
| | | $wb['IP address'] = 'IP adresa'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['reserved_txt'] = 'Rezervirano'; |
| | | $wb['vm_id_txt'] = 'VM'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['template_file_error_empty'] = 'Nije upisan naziv datoteke predloška.'; |
| | | $wb['Template'] = 'Predložak'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['allservers_txt'] = 'Postoji na svim serverima'; |
| | | $wb['ostemplate_id_txt'] = 'ID'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['io_priority_txt'] = 'I/O priority'; |
| | | $wb['active_txt'] = 'Aktivno'; |
| | | $wb['description_txt'] = 'Opis'; |
| | | $wb['numproc_desc_txt'] = 'Number of processes and threads.'; |
| | | $wb['numtcpsock_desc_txt'] = 'Number of TCP sockets.'; |
| | | $wb['numothersock_desc_txt'] = 'Number of sockets other than TCP.'; |
| | | $wb['numproc_desc_txt'] = 'Broj procesa i thread-ova.'; |
| | | $wb['numtcpsock_desc_txt'] = 'Broj TCP socket-a.'; |
| | | $wb['numothersock_desc_txt'] = 'Broj socket-a drugačijih od TCP.'; |
| | | $wb['vmguarpages_desc_txt'] = 'Memory allocation guarantee, in pages.'; |
| | | $wb['kmemsize_desc_txt'] = 'Size of unswappable kernel memory, allocated for processes in this container.'; |
| | | $wb['tcpsndbuf_desc_txt'] = 'Total size of TCP send buffers.'; |
| | |
| | | $wb['oomguarpages_desc_txt'] = 'The guaranteed amount of memory for the case the memory is over-booked (out-of-memory kill guarantee), in pages.'; |
| | | $wb['privvmpages_desc_txt'] = 'Memory allocation limit, in pages.'; |
| | | $wb['lockedpages_desc_txt'] = 'Process pages not allowed to be swapped out (pages locked by mlock(2)).'; |
| | | $wb['shmpages_desc_txt'] = 'Total size of shared memory (IPC, shared anonymous mappings and tmpfs objects), in pages.'; |
| | | $wb['physpages_desc_txt'] = 'Total number of RAM pages used by processes.'; |
| | | $wb['numfile_desc_txt'] = 'Number of open files.'; |
| | | $wb['numflock_desc_txt'] = 'Number of file locks.'; |
| | | $wb['shmpages_desc_txt'] = 'Ukupna veličina dijeljene memorije (IPC, shared anonymous mappings and tmpfs objects), in pages.'; |
| | | $wb['physpages_desc_txt'] = 'Ukupna veličina RAM-a korištena od procesa.'; |
| | | $wb['numfile_desc_txt'] = 'Broj otvorenih datoteka.'; |
| | | $wb['numflock_desc_txt'] = 'Broj zaključanih datoteka.'; |
| | | $wb['numpty_desc_txt'] = 'Number of pseudo-terminals.'; |
| | | $wb['numsiginfo_desc_txt'] = 'Number of siginfo structures.'; |
| | | $wb['dcachesize_desc_txt'] = 'Total size of dentry and inode structures locked in memory.'; |
| | | $wb['numiptent_desc_txt'] = 'Number of NETFILTER (IP packet filtering) entries.'; |
| | | $wb['swappages_desc_txt'] = 'Amount of swap space to show in container.'; |
| | | $wb['create_dns_txt'] = 'Create DNS for hostname'; |
| | | $wb['template_name_error_empty'] = 'Template name is empty.'; |
| | | $wb['diskspace_error_empty'] = 'Diskspace is empty.'; |
| | | $wb['create_dns_txt'] = 'Kreiraj DNS za hostname'; |
| | | $wb['template_name_error_empty'] = 'Naziv predloška je prazan.'; |
| | | $wb['diskspace_error_empty'] = 'Diskovni prostor je prazan.'; |
| | | $wb['ram_error_empty'] = 'RAM (guaranteed) is empty.'; |
| | | $wb['ram_burst_error_empty'] = 'RAM (burst) is empty.'; |
| | | $wb['cpu_units_error_empty'] = 'CPU units is empty.'; |
| | |
| | | $wb['Template'] = 'Predložak'; |
| | | $wb['Advanced'] = 'Napredno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['active_txt'] = 'Aktivan'; |
| | | $wb['template_name_txt'] = 'Ime predloška'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['cpu_num_error_empty'] = 'CPU number polje je prazno.'; |
| | | $wb['cpu_limit_error_empty'] = 'CPU limit polje je prazno.'; |
| | | $wb['io_priority_error_empty'] = 'I/O priority polje je prazno.'; |
| | | $wb['template_nameserver_error_empty'] = 'Nameserver(s) polje je prazno.'; |
| | | $wb['template_nameserver_error_empty'] = 'Nameserver(i) polje je prazno.'; |
| | | $wb['Virtual server'] = 'Virtualni server'; |
| | | $wb['Advanced'] = 'Napredno'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['ip_address_txt'] = 'IP adresa'; |
| | | $wb['veid_txt'] = 'VEID'; |
| | | ?> |
| | | |
| | | |
| | |
| | | $wb['IP addresses'] = 'IP addresses'; |
| | | $wb['OpenVZ'] = 'OpenVZ'; |
| | | ?> |
| | | |
| | |
| | | $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.'; |
| | | ?> |
| | | |
| | |
| | | $wb['ip_error_unique'] = 'This IP address does already exist.'; |
| | | $wb['IP address'] = 'IP address'; |
| | | ?> |
| | | |
| | |
| | | $wb['reserved_txt'] = 'Reserved'; |
| | | $wb['vm_id_txt'] = 'VM'; |
| | | ?> |
| | | |
| | |
| | | $wb['template_file_error_empty'] = 'Template filename is empty.'; |
| | | $wb['Template'] = 'Template'; |
| | | ?> |
| | | |
| | |
| | | $wb['allservers_txt'] = 'Exists on all servers'; |
| | | $wb['ostemplate_id_txt'] = 'ID'; |
| | | ?> |
| | | |
| | |
| | | $wb['Template'] = 'Template'; |
| | | $wb['Advanced'] = 'Advanced'; |
| | | ?> |
| | | |
| | |
| | | $wb['active_txt'] = 'Active'; |
| | | $wb['template_name_txt'] = 'Template name'; |
| | | ?> |
| | | |
| | |
| | | $wb['Virtual server'] = 'Virtual server'; |
| | | $wb['Advanced'] = 'Advanced'; |
| | | ?> |
| | | |
| | |
| | | $wb['ip_address_txt'] = 'IP address'; |
| | | $wb['veid_txt'] = 'VEID'; |
| | | ?> |
| | | |
| | |
| | | $params = array( |
| | | 'server_id' => 1, |
| | | 'parent_domain_id' => 1, |
| | | 'username' => 'threep', |
| | | 'password' => 'wood', |
| | | 'username' => 'tom', |
| | | 'password' => 'secret', |
| | | 'quota_size' => 10000, |
| | | 'active' => 'y', |
| | | 'uid' => '5000', |
| | | 'gid' => '5000', |
| | | 'dir' => 'maybe', |
| | | 'dir' => '/var/www/clients/client0/web1', |
| | | 'quota_files' => -1, |
| | | 'ul_ratio' => -1, |
| | | 'dl_ratio' => -1, |
| | |
| | | } |
| | | |
| | | //* Parameters |
| | | $client_id = 1; |
| | | $client_id = 0; |
| | | $ftp_user_id = 1; |
| | | |
| | | |
| | |
| | | $params = array( |
| | | 'server_id' => 1, |
| | | 'parent_domain_id' => 1, |
| | | 'username' => 'threep2', |
| | | 'password' => 'wood', |
| | | 'username' => 'tom', |
| | | 'password' => 'test', |
| | | 'quota_size' => 10000, |
| | | 'active' => 'y', |
| | | 'puser' => 'null', |
| | | 'pgroup' => 'null', |
| | | 'puser' => 'web1', |
| | | 'pgroup' => 'client0', |
| | | 'shell' => '/bin/bash', |
| | | 'dir' => 'maybe', |
| | | 'dir' => '/var/www/clients/client0/web1', |
| | | 'chroot' => '' |
| | | ); |
| | | |
| | |
| | | } |
| | | |
| | | //* Parameters |
| | | $client_id = 3; |
| | | $client_id = 0; |
| | | $shell_user_id = 1; |
| | | |
| | | |
| New file |
| | |
| | | |
| | | Description for security_settings.ini values. |
| | | |
| | | The option "superadmin" means that a setting is only available to the admin user with userid 1 in the interface. |
| | | If there are other amdins, then they cant access this setting. |
| | | |
| | | ----------------------------------------------------------- |
| | | Setting: allow_shell_user |
| | | Options: yes/no |
| | | Description: Disables the shell user plugins in ispconfig |
| | | |
| | | Setting: admin_allow_server_config |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Server config |
| | | |
| | | Setting: admin_allow_server_services |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Server services |
| | | |
| | | Setting: admin_allow_server_ip |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Server IP |
| | | |
| | | Setting: admin_allow_remote_users |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Remote Users |
| | | |
| | | Setting: admin_allow_system_config |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Interface > Main Config |
| | | |
| | | Setting: admin_allow_server_php |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Additional PHP versions |
| | | |
| | | Setting: admin_allow_langedit |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Language editor functions |
| | | |
| | | Setting: admin_allow_new_admin |
| | | Options: yes/no/superadmin |
| | | Description: Disables the ability to add new admin users trough the interface |
| | | |
| | | Setting: admin_allow_del_cpuser |
| | | Options: yes/no/superadmin |
| | | Description: Disables the ability to delete CP users |
| | | |
| | | Setting: admin_allow_cpuser_group |
| | | Options: yes/no/superadmin |
| | | Description: Disables cp user group editing |
| | | |
| | | Setting: admin_allow_firewall_config |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Firewall |
| | | |
| | | Setting: admin_allow_osupdate |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > OS update |
| | | |
| | | Setting: admin_allow_software_packages |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Apps & Addons > Packages and Update |
| | | |
| | | Setting: admin_allow_software_repo |
| | | Options: yes/no/superadmin |
| | | Description: Disables System > Apps & Addons > Repo |
| | | |
| | | Setting: remote_api_allowed |
| | | Options: yes/no |
| | | Description: Disables the remote API |
| | | |
| | | Setting: password_reset_allowed |
| | | Options: yes/no |
| | | Description: Disables the password reset function. |
| | | |
| | | Setting: ids_enabled |
| | | Options: yes/no |
| | | Description: Enables the Intrusion Detection System |
| | | |
| | | Setting: ids_log_level |
| | | Options: 1 (number, default = 1) |
| | | Description: IDS score that triggers the log in /usr/local/ispconfig/interface/temp/ids.log |
| | | This log can be used to feed the whitelist. |
| | | |
| | | Example: |
| | | |
| | | cat /usr/local/ispconfig/interface/temp/ids.log >> /usr/local/ispconfig/security/ids.whitelist |
| | | rm -f /usr/local/ispconfig/interface/temp/ids.log |
| | | |
| | | If you want to use a custom whitelist, then store it as /usr/local/ispconfig/security/ids.whitelist.custom |
| | | |
| | | Setting: ids_warn_level |
| | | Options: 5 (number, default = 5) |
| | | Description: When the IDS score exceeds this level, a error message is logged into the system log. No message is displayed to the user. |
| | | |
| | | Setting: ids_block_level |
| | | Options: 100 (number, default = 100) |
| | | Description: When the IDS score exceeds this level, a error message is shown to the user and further processing is blocked. A score of 100 will most likely never be reached. |
| | | We have choosen such a high score as default until we have more complete whitelists for this new feature. |
| | | |
| | | Setting: sql_scan_enabled |
| | | Options: yes/no |
| | | Description: Enables the scan for SQL injections in the DB library. |
| | | |
| | | Setting: sql_scan_action |
| | | Options: warn/block |
| | | Description: warn = write errot message to log only. Block = block user action and show error to the user. |
| | | |
| | | Setting: apache_directives_scan_enabled |
| | | Options: yes/no |
| | | Description: Scan apache directives field for potentially malicious directives. This function uses the regex |
| | | list from /usr/local/ispconfig/security/apache_directives.blacklist file. |
| | | If you want to use a custom blacklist, then store it as /usr/local/ispconfig/security/apache_directives.blacklist.custom |
| | | |
| | | Setting: security_admin_email |
| | | Options: email address |
| | | Description: Email address of the security admin |
| | | |
| | | Setting: security_admin_email_subject |
| | | Options: Text |
| | | Description: Subject of the notification email |
| | | |
| | | Setting: warn_new_admin |
| | | Options: yes/no |
| | | Description: Warn by email when a new admin user in ISPConfig has been added. |
| | | |
| | | Setting: warn_passwd_change |
| | | Options: yes/no |
| | | Description: Warn by email when /etc/passwd has been changed. |
| | | |
| | | Setting: warn_shadow_change |
| | | Options: yes/no |
| | | Description: Warn by email when /etc/shadow has been changed. |
| | | |
| | | Setting: warn_group_change |
| | | Options: yes/no |
| | | Description: Warn by email when /etc/group has been changed. |
| | | |
| | | |
| New file |
| | |
| | | /^\s*(LoadModule|LoadFile|Include)(\s+|[\\\\])/mi |
| | | /^\s*(SuexecUserGroup|suPHP_UserGroup|suPHP_PHPPath|suPHP_ConfigPath)(\s+|[\\\\])/mi |
| | | /^\s*(FCGIWrapper|FastCgiExternalServer)(\s+|[\\\\])/mi |
| New file |
| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2014, Till Brehm, ISPConfig UG |
| | | 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. |
| | | */ |
| | | |
| | | require "/usr/local/ispconfig/server/lib/config.inc.php"; |
| | | require "/usr/local/ispconfig/server/lib/app.inc.php"; |
| | | |
| | | set_time_limit(0); |
| | | ini_set('error_reporting', E_ALL & ~E_NOTICE); |
| | | |
| | | // make sure server_id is always an int |
| | | $conf['server_id'] = intval($conf['server_id']); |
| | | |
| | | |
| | | // Load required base-classes |
| | | $app->uses('ini_parser,file,services,getconf,system'); |
| | | |
| | | // get security config |
| | | $security_config = $app->getconf->get_security_config('systemcheck'); |
| | | |
| | | $alert = ''; |
| | | $data_dir = '/usr/local/ispconfig/security/data'; |
| | | |
| | | |
| | | // Check if a new ispconfig user has been added |
| | | if($security_config['warn_new_admin'] == 'yes') { |
| | | $data_file = $data_dir.'/admincount'; |
| | | //get number of admins |
| | | $tmp = $app->db->queryOneRecord("SELECT count(userid) AS number FROM sys_user WHERE typ = 'admin'"); |
| | | $admin_user_count_new = intval($tmp['number']); |
| | | |
| | | if(is_file($data_file)) { |
| | | $admin_user_count_old = intval(file_get_contents($data_file)); |
| | | if($admin_user_count_new != $admin_user_count_old) { |
| | | $alert .= "The number of ISPConfig administrator users has changed. Old: $admin_user_count_old New: $admin_user_count_new \n"; |
| | | file_put_contents($data_file,$admin_user_count_new); |
| | | } |
| | | } else { |
| | | // first run, so we save the current count |
| | | file_put_contents($data_file,$admin_user_count_new); |
| | | chmod($data_file,0700); |
| | | } |
| | | } |
| | | |
| | | // Check if /etc/passwd file has been changed |
| | | if($security_config['warn_passwd_change'] == 'yes') { |
| | | $data_file = $data_dir.'/passwd.md5'; |
| | | $md5sum_new = md5_file('/etc/passwd'); |
| | | |
| | | if(is_file($data_file)) { |
| | | $md5sum_old = trim(file_get_contents($data_file)); |
| | | if($md5sum_new != $md5sum_old) { |
| | | $alert .= "The file /etc/passwd has been changed.\n"; |
| | | file_put_contents($data_file,$md5sum_new); |
| | | } |
| | | } else { |
| | | file_put_contents($data_file,$md5sum_new); |
| | | chmod($data_file,0700); |
| | | } |
| | | } |
| | | |
| | | // Check if /etc/shadow file has been changed |
| | | if($security_config['warn_shadow_change'] == 'yes') { |
| | | $data_file = $data_dir.'/shadow.md5'; |
| | | $md5sum_new = md5_file('/etc/shadow'); |
| | | |
| | | if(is_file($data_file)) { |
| | | $md5sum_old = trim(file_get_contents($data_file)); |
| | | if($md5sum_new != $md5sum_old) { |
| | | $alert .= "The file /etc/shadow has been changed.\n"; |
| | | file_put_contents($data_file,$md5sum_new); |
| | | } |
| | | } else { |
| | | file_put_contents($data_file,$md5sum_new); |
| | | chmod($data_file,0700); |
| | | } |
| | | } |
| | | |
| | | // Check if /etc/group file has been changed |
| | | if($security_config['warn_group_change'] == 'yes') { |
| | | $data_file = $data_dir.'/group.md5'; |
| | | $md5sum_new = md5_file('/etc/group'); |
| | | |
| | | if(is_file($data_file)) { |
| | | $md5sum_old = trim(file_get_contents($data_file)); |
| | | if($md5sum_new != $md5sum_old) { |
| | | $alert .= "The file /etc/group has been changed.\n"; |
| | | file_put_contents($data_file,$md5sum_new); |
| | | } |
| | | } else { |
| | | file_put_contents($data_file,$md5sum_new); |
| | | chmod($data_file,0700); |
| | | } |
| | | } |
| | | |
| | | |
| | | if($alert != '') { |
| | | $admin_email = $security_config['security_admin_email']; |
| | | $admin_email_subject = $security_config['security_admin_email_subject']; |
| | | mail($admin_email, $admin_email_subject, $alert); |
| | | //$app->log(str_replace("\n"," -- ",$alert),1); |
| | | echo str_replace("\n"," -- ",$alert)."\n"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ?> |
| New file |
| | |
| | | # Format: usertype:url_path:field |
| | | # usertype can be: any/client/admin |
| | | # Example: |
| | | # admin:/admin/language_edit.php:POST.records.weak_password_txt |
| | | admin:/admin/language_edit.php:POST.records |
| New file |
| | |
| | | # Format: usertype:url_path:field |
| | | # usertype can be: any/client/admin |
| | | # Example: |
| | | # admin:/admin/language_edit.php:POST.records.weak_password_txt |
| | | admin:/admin/server_config_edit.php:POST.maildir_path |
| | | admin:/admin/server_config_edit.php:POST.website_path |
| | | admin:/admin/server_config_edit.php:POST.website_symlinks |
| | | admin:/admin/server_config_edit.php:POST.vhost_conf_dir |
| | | admin:/admin/server_config_edit.php:POST.vhost_conf_enabled_dir |
| | | admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_dir |
| | | admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_enabled_dir |
| | | admin:/admin/server_config_edit.php:POST.php_open_basedir |
| | | admin:/admin/server_config_edit.php:POST.awstats_pl |
| | | admin:/admin/server_config_edit.php:POST.fastcgi_starter_path |
| | | admin:/admin/server_config_edit.php:POST.fastcgi_bin |
| | | admin:/admin/server_config_edit.php:POST.jailkit_chroot_home |
| | | admin:/admin/remote_user_edit.php:POST.remote_functions.1 |
| | | admin:/admin/firewall_edit.php:POST.tcp_port |
| | | admin:/admin/system_config_edit.php:POST.admin_dashlets_right |
| | | admin:/admin/system_config_edit.php:POST.reseller_dashlets_left |
| | | admin:/admin/system_config_edit.php:POST.reseller_dashlets_right |
| | | admin:/admin/language_edit.php:POST.records.weak_password_txt |
| | | user:/client/client_message.php:POST.message |
| | | user:/client/message_template_edit.php:POST.subject |
| | | admin:/dns/dns_template_edit.php:POST.template |
| | | admin:/nav.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_sys_state.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/capp.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/keepalive.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/log_list.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/datalog_list.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_data.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_sys_state.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_monit.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_munin.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_data.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/show_log.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/monitor/log_del.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/keepalive.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/capp.php:SESSION.s.module.nav.1.items.0.title |
| | | admin:/sites/web_vhost_subdomain_edit.php:POST.php_open_basedir |
| | | admin:/sites/web_domain_edit.php:POST.php_open_basedir |
| | | admin:/sites/web_domain_edit.php:POST.apache_directives |
| | | user:/sites/shell_user_edit.php:POST.ssh_rsa |
| | | user:/sites/cron_edit.php:POST.command |
| New file |
| | |
| | | [permissions] |
| | | allow_shell_user=yes |
| | | admin_allow_server_config=superadmin |
| | | admin_allow_server_services=superadmin |
| | | admin_allow_server_ip=superadmin |
| | | admin_allow_remote_users=superadmin |
| | | admin_allow_system_config=superadmin |
| | | admin_allow_server_php=superadmin |
| | | admin_allow_langedit=superadmin |
| | | admin_allow_new_admin=superadmin |
| | | admin_allow_del_cpuser=superadmin |
| | | admin_allow_cpuser_group=superadmin |
| | | admin_allow_firewall_config=superadmin |
| | | admin_allow_osupdate=superadmin |
| | | admin_allow_software_packages=superadmin |
| | | admin_allow_software_repo=superadmin |
| | | remote_api_allowed=yes |
| | | password_reset_allowed=yes |
| | | |
| | | [ids] |
| | | ids_enabled=no |
| | | ids_log_level=1 |
| | | ids_warn_level=5 |
| | | ids_block_level=100 |
| | | sql_scan_enabled=yes |
| | | sql_scan_action=warn |
| | | apache_directives_scan_enabled=yes |
| | | |
| | | [systemcheck] |
| | | security_admin_email=root@localhost |
| | | security_admin_email_subject=Security alert from server |
| | | warn_new_admin=yes |
| | | warn_passwd_change=no |
| | | warn_shadow_change=no |
| | | warn_group_change=no |
| | |
| | | # 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> |
| | |
| | | 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 |
| | |
| | | |
| | | <tmpl_if name='ssl_enabled'> |
| | | listen <tmpl_var name='ip_address'>:443 ssl; |
| | | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; |
| | | <tmpl_if name='ipv6_enabled'> |
| | | listen [<tmpl_var name='ipv6_address'>]:443 ssl; |
| | | </tmpl_if> |
| | |
| | | |
| | | <IfModule mod_ssl.c> |
| | | <tmpl_if name='ssl_enabled'> |
| | | SSLEngine on |
| | | SSLEngine on |
| | | SSLProtocol All -SSLv2 -SSLv3 |
| | | SSLCertificateFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt |
| | | SSLCertificateKeyFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key |
| | | <tmpl_if name='has_bundle_cert'> |
| | |
| | | # 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 |
| | |
| | | FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization |
| | | </tmpl_if> |
| | | </IfModule> |
| | | <IfModule mod_proxy_fcgi.c> |
| | | ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1 |
| | | </IfModule> |
| | | </tmpl_if> |
| | | |
| | | <tmpl_if name='php' op='==' value='hhvm'> |
| | |
| | | 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> |
| | |
| | | |
| | | // the cron daily file is no longer used and was replaced by cron.php |
| | | |
| | | |
| | | ?> |
| | |
| | | |
| | | var $loaded_modules = array(); |
| | | var $loaded_plugins = array(); |
| | | var $_calling_script = ''; |
| | | |
| | | function __construct() { |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | function setCaller($caller) { |
| | | $this->_calling_script = $caller; |
| | | } |
| | | |
| | | function getCaller() { |
| | | return $this->_calling_script; |
| | | } |
| | | |
| | | function forceErrorExit($errmsg = 'undefined') { |
| | | global $conf; |
| | | |
| | | if($this->_calling_script == 'server') { |
| | | @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock'); |
| | | } |
| | | die('Exiting because of error: ' . $errmsg); |
| | | } |
| | | |
| | | function uses($classes) { |
| | | |
| | | global $conf; |
| New file |
| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2013, 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. |
| | | */ |
| | | |
| | | class cronjob_cleanup extends cronjob { |
| | | |
| | | // job schedule |
| | | protected $_schedule = '*/5 * * * *'; |
| | | protected $_run_at_new = true; |
| | | |
| | | private $_tools = null; |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onPrepare() { |
| | | global $app; |
| | | |
| | | parent::onPrepare(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onBeforeRun() { |
| | | global $app; |
| | | |
| | | return parent::onBeforeRun(); |
| | | } |
| | | |
| | | public function onRunJob() { |
| | | global $app, $conf; |
| | | |
| | | // run this only on the master |
| | | if($conf['server_id'] == 1) { |
| | | $records = $app->db->queryAllRecords("SELECT s.instance_id, s.name, s.value FROM `aps_instances_settings` as s INNER JOIN `aps_instances` as i ON (i.id = s.instance_id) WHERE s.value != '' AND s.name IN ('main_database_password', 'admin_password') AND i.instance_status > 1"); |
| | | if(is_array($records)) { |
| | | foreach($records as $rec) { |
| | | $tmp = $app->db->queryOneRecord("SELECT id FROM aps_instances_settings WHERE instance_id = '".$app->db->quote($rec['instance_id'])."' AND name = '".$app->db->quote($rec['name'])."'"); |
| | | $app->db->datalogUpdate('aps_instances_settings', "value = ''", 'id', $tmp['id']); |
| | | } |
| | | } |
| | | } |
| | | |
| | | parent::onRunJob(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onAfterRun() { |
| | | global $app; |
| | | |
| | | parent::onAfterRun(); |
| | | } |
| | | |
| | | } |
| | | |
| | | ?> |
| | |
| | | private function _query($sQuery = '') { |
| | | global $app; |
| | | |
| | | if($this->isConnected == false) return false; |
| | | if ($sQuery == '') { |
| | | $this->_sqlerror('Keine Anfrage angegeben / No query given'); |
| | | return false; |
| | |
| | | $ok = mysqli_ping($this->_iConnId); |
| | | if(!$ok) { |
| | | if(!mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) { |
| | | if($this->errorNumber == '111') { |
| | | // server is not available |
| | | if($try > 9) { |
| | | if(isset($app) && isset($app->forceErrorExit)) { |
| | | $app->forceErrorExit('Database connection failure!'); |
| | | } |
| | | // if we reach this, the app object is missing or has no exit method, so we continue as normal |
| | | } |
| | | sleep(30); // additional seconds, please! |
| | | } |
| | | |
| | | if($try > 9) { |
| | | $this->_sqlerror('DB::query -> reconnect'); |
| | | return false; |
| | |
| | | } |
| | | return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; |
| | | } |
| | | |
| | | public function get_security_config($section = '') { |
| | | global $app; |
| | | |
| | | $app->uses('ini_parser'); |
| | | $security_config = $app->ini_parser->parse_ini_string(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); |
| | | |
| | | return ($section == '') ? $security_config : $security_config[$section]; |
| | | } |
| | | |
| | | } |
| | | |
| New file |
| | |
| | | <?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' ? 'tls://' : '') . $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; |
| | | } |
| | | |
| | | } |
| | | |
| | | ?> |
| | |
| | | $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; |
| | |
| | | $distver = '5.3'; |
| | | $distid = 'centos53'; |
| | | $distbaseid = 'fedora'; |
| | | } elseif(stristr($content, 'CentOS Linux release 6')) { |
| | | $distname = 'CentOS'; |
| | | $distver = 'Unknown'; |
| | | $distid = 'centos53'; |
| | | $distbaseid = 'fedora'; |
| | | } elseif(stristr($content, 'CentOS Linux release 7')) { |
| | | $distname = 'CentOS'; |
| | | $distver = 'Unknown'; |
| | | $distid = 'centos53'; |
| | | $distbaseid = 'fedora'; |
| | | } else { |
| | | $distname = 'Redhat'; |
| | | $distver = 'Unknown'; |
| | |
| | | var $server_id; |
| | | var $server_conf; |
| | | var $data; |
| | | |
| | | var $min_uid = 500; |
| | | var $min_gid = 500; |
| | | |
| | | /** |
| | | * Construct for this class |
| | | * |
| | |
| | | function getinitcommand($servicename, $action, $init_script_directory = ''){ |
| | | global $conf; |
| | | // systemd |
| | | if(is_executable('/bin/systemd')){ |
| | | if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ |
| | | return 'systemctl '.$action.' '.$servicename.'.service'; |
| | | } |
| | | // upstart |
| | |
| | | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | ?> |
| server/mods-available/monitor_core_module.inc.php
server/mods-available/web_module.inc.php
server/plugins-available/apache2_plugin.inc.php
server/plugins-available/backup_plugin.inc.php
server/plugins-available/bind_dlz_plugin.inc.php
server/plugins-available/cron_jailkit_plugin.inc.php
server/plugins-available/cron_plugin.inc.php
server/plugins-available/firewall_plugin.inc.php
server/plugins-available/mail_plugin.inc.php
server/plugins-available/maildeliver_plugin.inc.php
server/plugins-available/mailman_plugin.inc.php
server/plugins-available/mysql_clientdb_plugin.inc.php
server/plugins-available/network_settings_plugin.inc.php
server/plugins-available/nginx_plugin.inc.php
server/plugins-available/shelluser_base_plugin.inc.php
server/plugins-available/shelluser_jailkit_plugin.inc.php
server/scripts/ispconfig_htaccess.php
server/scripts/ispconfig_update.php
server/server.php
server/server.sh |