Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
ISPConfig
ISPConfig 3
Commits
30fc1b7c
Commit
30fc1b7c
authored
Mar 02, 2013
by
latham
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Silly Microsoft line endings removed to not error on Linux Subversion servers...
parent
526b997c
Changes
68
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
68 changed files
with
5603 additions
and
5603 deletions
+5603
-5603
install/tpl/server.ini.master
install/tpl/server.ini.master
+13
-13
interface/lib/classes/aps_base.inc.php
interface/lib/classes/aps_base.inc.php
+102
-102
interface/lib/classes/aps_crawler.inc.php
interface/lib/classes/aps_crawler.inc.php
+591
-591
interface/lib/classes/aps_guicontroller.inc.php
interface/lib/classes/aps_guicontroller.inc.php
+840
-840
interface/lib/classes/tform.inc.php
interface/lib/classes/tform.inc.php
+37
-37
interface/web/admin/form/server_config.tform.php
interface/web/admin/form/server_config.tform.php
+30
-30
interface/web/admin/lib/lang/en_server_config.lng
interface/web/admin/lib/lang/en_server_config.lng
+6
-6
interface/web/admin/lib/menu.d/tpl_default.menu.php
interface/web/admin/lib/menu.d/tpl_default.menu.php
+15
-15
interface/web/admin/templates/iptables_edit.htm
interface/web/admin/templates/iptables_edit.htm
+66
-66
interface/web/admin/templates/iptables_list.htm
interface/web/admin/templates/iptables_list.htm
+73
-73
interface/web/admin/templates/server_config_server_edit.htm
interface/web/admin/templates/server_config_server_edit.htm
+14
-14
interface/web/admin/templates/server_config_web_edit.htm
interface/web/admin/templates/server_config_web_edit.htm
+16
-16
interface/web/admin/templates/system_config_branding_edit.html
...face/web/admin/templates/system_config_branding_edit.html
+21
-21
interface/web/client/client_template_edit.php
interface/web/client/client_template_edit.php
+97
-97
interface/web/mail/templates/user_quota_stats_list.htm
interface/web/mail/templates/user_quota_stats_list.htm
+51
-51
interface/web/monitor/templates/show_sys_state.htm
interface/web/monitor/templates/show_sys_state.htm
+24
-24
interface/web/sites/aps_cron_apscrawler_if.php
interface/web/sites/aps_cron_apscrawler_if.php
+62
-62
interface/web/sites/aps_do_operation.php
interface/web/sites/aps_do_operation.php
+112
-112
interface/web/sites/aps_install_package.php
interface/web/sites/aps_install_package.php
+210
-210
interface/web/sites/aps_installedpackages_list.php
interface/web/sites/aps_installedpackages_list.php
+141
-141
interface/web/sites/aps_packagedetails_show.php
interface/web/sites/aps_packagedetails_show.php
+99
-99
interface/web/sites/lib/lang/ar_aps_update_packagelist.lng
interface/web/sites/lib/lang/ar_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/bg_aps_update_packagelist.lng
interface/web/sites/lib/lang/bg_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/br_aps_update_packagelist.lng
interface/web/sites/lib/lang/br_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/el_aps_update_packagelist.lng
interface/web/sites/lib/lang/el_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/en_aps.lng
interface/web/sites/lib/lang/en_aps.lng
+57
-57
interface/web/sites/lib/lang/en_aps_instances_list.lng
interface/web/sites/lib/lang/en_aps_instances_list.lng
+12
-12
interface/web/sites/lib/lang/en_aps_packages_list.lng
interface/web/sites/lib/lang/en_aps_packages_list.lng
+7
-7
interface/web/sites/lib/lang/en_aps_update_packagelist.lng
interface/web/sites/lib/lang/en_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/es_aps_update_packagelist.lng
interface/web/sites/lib/lang/es_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/fi_aps_update_packagelist.lng
interface/web/sites/lib/lang/fi_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/fr_aps_update_packagelist.lng
interface/web/sites/lib/lang/fr_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/hr_aps_update_packagelist.lng
interface/web/sites/lib/lang/hr_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/hu_aps_update_packagelist.lng
interface/web/sites/lib/lang/hu_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/id_aps_update_packagelist.lng
interface/web/sites/lib/lang/id_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/it_aps_update_packagelist.lng
interface/web/sites/lib/lang/it_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/nl_aps_update_packagelist.lng
interface/web/sites/lib/lang/nl_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/pl_aps_update_packagelist.lng
interface/web/sites/lib/lang/pl_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/pt_aps_update_packagelist.lng
interface/web/sites/lib/lang/pt_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/ro_aps_update_packagelist.lng
interface/web/sites/lib/lang/ro_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/ru_aps_update_packagelist.lng
interface/web/sites/lib/lang/ru_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/se_aps_update_packagelist.lng
interface/web/sites/lib/lang/se_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/sk_aps_update_packagelist.lng
interface/web/sites/lib/lang/sk_aps_update_packagelist.lng
+6
-6
interface/web/sites/lib/lang/tr_aps_update_packagelist.lng
interface/web/sites/lib/lang/tr_aps_update_packagelist.lng
+6
-6
interface/web/sites/list/aps_availablepackages.list.php
interface/web/sites/list/aps_availablepackages.list.php
+85
-85
interface/web/sites/list/aps_installedpackages.list.php
interface/web/sites/list/aps_installedpackages.list.php
+82
-82
interface/web/sites/templates/aps_install_package.htm
interface/web/sites/templates/aps_install_package.htm
+55
-55
interface/web/sites/templates/aps_instances_list.htm
interface/web/sites/templates/aps_instances_list.htm
+61
-61
interface/web/sites/templates/aps_packagedetails_show.htm
interface/web/sites/templates/aps_packagedetails_show.htm
+140
-140
interface/web/sites/templates/aps_packages_list.htm
interface/web/sites/templates/aps_packages_list.htm
+54
-54
interface/web/sites/templates/web_aliasdomain_advanced.htm
interface/web/sites/templates/web_aliasdomain_advanced.htm
+36
-36
interface/web/sites/templates/web_subdomain_advanced.htm
interface/web/sites/templates/web_subdomain_advanced.htm
+37
-37
interface/web/themes/default-304/css/screen/redmond/jquery-ui-1.8.16.custom.css
...efault-304/css/screen/redmond/jquery-ui-1.8.16.custom.css
+443
-443
interface/web/themes/default-304/css/screen/tipsy.css
interface/web/themes/default-304/css/screen/tipsy.css
+25
-25
interface/web/themes/default-304/templates/monitor/show_sys_state.htm
...b/themes/default-304/templates/monitor/show_sys_state.htm
+24
-24
interface/web/themes/default-304/templates/sites/aps_install_package.htm
...hemes/default-304/templates/sites/aps_install_package.htm
+55
-55
interface/web/themes/default-304/templates/sites/aps_instances_list.htm
...themes/default-304/templates/sites/aps_instances_list.htm
+61
-61
interface/web/themes/default-304/templates/sites/aps_packagedetails_show.htm
...s/default-304/templates/sites/aps_packagedetails_show.htm
+138
-138
interface/web/themes/default-304/templates/sites/aps_packages_list.htm
.../themes/default-304/templates/sites/aps_packages_list.htm
+49
-49
interface/web/themes/default/CHANGELOG
interface/web/themes/default/CHANGELOG
+31
-31
interface/web/themes/default/TODO
interface/web/themes/default/TODO
+7
-7
interface/web/themes/default/css/jquery-ui-1.8.16.custom.css
interface/web/themes/default/css/jquery-ui-1.8.16.custom.css
+445
-445
interface/web/tools/lib/interface.d/tpl_default.menu.php
interface/web/tools/lib/interface.d/tpl_default.menu.php
+8
-8
server/lib/classes/aps_base.inc.php
server/lib/classes/aps_base.inc.php
+102
-102
server/lib/classes/aps_installer.inc.php
server/lib/classes/aps_installer.inc.php
+709
-709
server/plugins-available/apache2_plugin.inc.php
server/plugins-available/apache2_plugin.inc.php
+17
-17
server/plugins-available/aps_plugin.inc.php
server/plugins-available/aps_plugin.inc.php
+117
-117
No files found.
install/tpl/server.ini.master
View file @
30fc1b7c
...
...
@@ -5,13 +5,13 @@ dnsserver=mydns
[server]
auto_network_configuration=n
ip_address=0.0.0.0
netmask=255.255.255.0
v6_prefix=
gateway=0.0.0.0
hostname=server1.domain.tld
nameservers=8.8.8.8,8.8.4.4
auto_network_configuration=n
ip_address=0.0.0.0
netmask=255.255.255.0
v6_prefix=
gateway=0.0.0.0
hostname=server1.domain.tld
nameservers=8.8.8.8,8.8.4.4
firewall=bastille
loglevel=2
backup_dir=/var/backup
...
...
@@ -42,12 +42,12 @@ getmail_config_dir=/etc/getmail
[web]
server_type=apache
website_basedir=/var/www
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
vhost_conf_dir=/etc/apache2/sites-available
vhost_conf_enabled_dir=/etc/apache2/sites-enabled
nginx_vhost_conf_dir=/etc/nginx/sites-available
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
vhost_conf_dir=/etc/apache2/sites-available
vhost_conf_enabled_dir=/etc/apache2/sites-enabled
nginx_vhost_conf_dir=/etc/nginx/sites-available
nginx_vhost_conf_enabled_dir=/etc/nginx/sites-enabled
security_level=20
user=www-data
...
...
interface/lib/classes/aps_base.inc.php
View file @
30fc1b7c
<?php
/*
Copyright (c) 2012, ISPConfig UG
Contributors: web wack creations, http://www.web-wack.at
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.
*/
// Constants describing instances
define
(
'INSTANCE_PENDING'
,
0
);
define
(
'INSTANCE_INSTALL'
,
1
);
define
(
'INSTANCE_ERROR'
,
2
);
define
(
'INSTANCE_SUCCESS'
,
3
);
define
(
'INSTANCE_REMOVE'
,
4
);
// Constants describing packages
define
(
'PACKAGE_LOCKED'
,
1
);
define
(
'PACKAGE_ENABLED'
,
2
);
define
(
'PACKAGE_OUTDATED'
,
3
);
define
(
'PACKAGE_ERROR_NOMETA'
,
4
);
class
ApsBase
{
protected
$log_prefix
=
''
;
protected
$fetch_url
=
''
;
protected
$aps_version
=
''
;
protected
$packages_dir
=
''
;
protected
$temp_pkg_dir
=
''
;
protected
$interface_pkg_dir
=
''
;
protected
$interface_mode
=
false
;
// server mode by default
/**
* Constructor
*
* @param $app the application instance (db handle + log method)
* @param $interface_mode act in interface (true) or server mode (false)
* @param $log_prefix a prefix to set before all log entries
*/
public
function
__construct
(
$app
,
$log_prefix
=
'APS: '
,
$interface_mode
=
false
)
{
$this
->
log_prefix
=
$log_prefix
;
$this
->
interface_mode
=
$interface_mode
;
$this
->
fetch_url
=
'apscatalog.com'
;
$this
->
aps_version
=
'1'
;
$this
->
packages_dir
=
ISPC_ROOT_PATH
.
'/aps_packages'
;
$this
->
interface_pkg_dir
=
ISPC_ROOT_PATH
.
'/web/sites/aps_meta_packages'
;
}
/**
* Converts a given value to it's native representation in 1024 units
*
* @param $value the size to convert
* @return integer and string
*/
public
function
convertSize
(
$value
)
{
$unit
=
array
(
'Bytes'
,
'KB'
,
'MB'
,
'GB'
,
'TB'
);
return
@
round
(
$value
/
pow
(
1024
,
(
$i
=
floor
(
log
(
$value
,
1024
)))),
2
)
.
' '
.
$unit
[
$i
];
}
/**
* Determine a specific xpath from a given SimpleXMLElement handle. If the
* element is found, it's string representation is returned. If not,
* the return value will stay empty
*
* @param $xml_handle the SimpleXMLElement handle
* @param $query the XPath query
* @param $array define whether to return an array or a string
* @return $ret the return string
*/
protected
function
getXPathValue
(
$xml_handle
,
$query
,
$array
=
false
)
{
$ret
=
''
;
$xp_result
=
@
(
$xml_handle
->
xpath
(
$query
))
?
$xml_handle
->
xpath
(
$query
)
:
false
;
if
(
$xp_result
!==
false
)
$ret
=
((
$array
===
false
)
?
(
string
)
$xp_result
[
0
]
:
$xp_result
);
return
$ret
;
}
}
<?php
/*
Copyright (c) 2012, ISPConfig UG
Contributors: web wack creations, http://www.web-wack.at
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.
*/
// Constants describing instances
define
(
'INSTANCE_PENDING'
,
0
);
define
(
'INSTANCE_INSTALL'
,
1
);
define
(
'INSTANCE_ERROR'
,
2
);
define
(
'INSTANCE_SUCCESS'
,
3
);
define
(
'INSTANCE_REMOVE'
,
4
);
// Constants describing packages
define
(
'PACKAGE_LOCKED'
,
1
);
define
(
'PACKAGE_ENABLED'
,
2
);
define
(
'PACKAGE_OUTDATED'
,
3
);
define
(
'PACKAGE_ERROR_NOMETA'
,
4
);
class
ApsBase
{
protected
$log_prefix
=
''
;
protected
$fetch_url
=
''
;
protected
$aps_version
=
''
;
protected
$packages_dir
=
''
;
protected
$temp_pkg_dir
=
''
;
protected
$interface_pkg_dir
=
''
;
protected
$interface_mode
=
false
;
// server mode by default
/**
* Constructor
*
* @param $app the application instance (db handle + log method)
* @param $interface_mode act in interface (true) or server mode (false)
* @param $log_prefix a prefix to set before all log entries
*/
public
function
__construct
(
$app
,
$log_prefix
=
'APS: '
,
$interface_mode
=
false
)
{
$this
->
log_prefix
=
$log_prefix
;
$this
->
interface_mode
=
$interface_mode
;
$this
->
fetch_url
=
'apscatalog.com'
;
$this
->
aps_version
=
'1'
;
$this
->
packages_dir
=
ISPC_ROOT_PATH
.
'/aps_packages'
;
$this
->
interface_pkg_dir
=
ISPC_ROOT_PATH
.
'/web/sites/aps_meta_packages'
;
}
/**
* Converts a given value to it's native representation in 1024 units
*
* @param $value the size to convert
* @return integer and string
*/
public
function
convertSize
(
$value
)
{
$unit
=
array
(
'Bytes'
,
'KB'
,
'MB'
,
'GB'
,
'TB'
);
return
@
round
(
$value
/
pow
(
1024
,
(
$i
=
floor
(
log
(
$value
,
1024
)))),
2
)
.
' '
.
$unit
[
$i
];
}
/**
* Determine a specific xpath from a given SimpleXMLElement handle. If the
* element is found, it's string representation is returned. If not,
* the return value will stay empty
*
* @param $xml_handle the SimpleXMLElement handle
* @param $query the XPath query
* @param $array define whether to return an array or a string
* @return $ret the return string
*/
protected
function
getXPathValue
(
$xml_handle
,
$query
,
$array
=
false
)
{
$ret
=
''
;
$xp_result
=
@
(
$xml_handle
->
xpath
(
$query
))
?
$xml_handle
->
xpath
(
$query
)
:
false
;
if
(
$xp_result
!==
false
)
$ret
=
((
$array
===
false
)
?
(
string
)
$xp_result
[
0
]
:
$xp_result
);
return
$ret
;
}
}
?>
\ No newline at end of file
interface/lib/classes/aps_crawler.inc.php
View file @
30fc1b7c
This diff is collapsed.
Click to expand it.
interface/lib/classes/aps_guicontroller.inc.php
View file @
30fc1b7c
This diff is collapsed.
Click to expand it.
interface/lib/classes/tform.inc.php
View file @
30fc1b7c
...
...
@@ -884,43 +884,43 @@ class tform {
$this
->
errorMessage
.
=
$this
->
wordbook
[
$errmsg
]
.
"<br />
\r\n
"
;
}
else
{
$this
->
errorMessage
.
=
$errmsg
.
"<br />
\r\n
"
;
}
}
break
;
case
'ISV6PREFIX'
:
$v6_prefix_ok
=
0
;
$explode_field_value
=
explode
(
':'
,
$field_value
);
if
(
$explode_field_value
[
count
(
$explode_field_value
)
-
1
]
==
''
&&
$explode_field_value
[
count
(
$explode_field_value
)
-
2
]
==
''
){
if
(
count
(
$explode_field_value
)
<=
9
)
{
if
(
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
),
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
or
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
)
.
'::0'
,
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
or
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
)
.
':0'
,
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
)
{
$v6_prefix_ok
=
1
;
}
}
}
else
{
$v6_prefix_ok
=
2
;
}
// check subnet against defined server-ipv6
$sql_v6
=
$app
->
db
->
queryOneRecord
(
"SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' LIMIT 0,1"
);
$sql_v6_explode
=
explode
(
':'
,
$sql_v6
[
'ip_address'
]);
if
(
count
(
$sql_v6_explode
)
<
count
(
$explode_field_value
)
&&
isset
(
$sql_v6
[
'ip_address'
])
)
{
$v6_prefix_ok
=
3
;
}
if
(
$v6_prefix_ok
==
0
)
{
$errmsg
=
$validator
[
'errmsg'
];
}
if
(
$v6_prefix_ok
==
2
)
{
$errmsg
=
'IPv6 Prefix must end with ::'
;
}
if
(
$v6_prefix_ok
==
3
)
{
$errmsg
=
'IPv6 Prefix too long (according to Server IP Addresses)'
;
}
if
(
$v6_prefix_ok
<>
1
){
$this
->
errorMessage
.
=
$errmsg
.
"<br />
\r\n
"
;
}
break
;
case
'ISIPV4'
:
$vip
=
1
;
if
(
preg_match
(
"/^[0-9]
{
1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3
}
$/"
,
$field_value
)){
}
}
break
;
case
'ISV6PREFIX'
:
$v6_prefix_ok
=
0
;
$explode_field_value
=
explode
(
':'
,
$field_value
);
if
(
$explode_field_value
[
count
(
$explode_field_value
)
-
1
]
==
''
&&
$explode_field_value
[
count
(
$explode_field_value
)
-
2
]
==
''
){
if
(
count
(
$explode_field_value
)
<=
9
)
{
if
(
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
),
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
or
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
)
.
'::0'
,
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
or
filter_var
(
substr
(
$field_value
,
0
,
strlen
(
$field_value
)
-
2
)
.
':0'
,
FILTER_VALIDATE_IP
,
FILTER_FLAG_IPV6
)
)
{
$v6_prefix_ok
=
1
;
}
}
}
else
{
$v6_prefix_ok
=
2
;
}
// check subnet against defined server-ipv6
$sql_v6
=
$app
->
db
->
queryOneRecord
(
"SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' LIMIT 0,1"
);
$sql_v6_explode
=
explode
(
':'
,
$sql_v6
[
'ip_address'
]);
if
(
count
(
$sql_v6_explode
)
<
count
(
$explode_field_value
)
&&
isset
(
$sql_v6
[
'ip_address'
])
)
{
$v6_prefix_ok
=
3
;
}
if
(
$v6_prefix_ok
==
0
)
{
$errmsg
=
$validator
[
'errmsg'
];
}
if
(
$v6_prefix_ok
==
2
)
{
$errmsg
=
'IPv6 Prefix must end with ::'
;
}
if
(
$v6_prefix_ok
==
3
)
{
$errmsg
=
'IPv6 Prefix too long (according to Server IP Addresses)'
;
}
if
(
$v6_prefix_ok
<>
1
){
$this
->
errorMessage
.
=
$errmsg
.
"<br />
\r\n
"
;
}
break
;
case
'ISIPV4'
:
$vip
=
1
;
if
(
preg_match
(
"/^[0-9]
{
1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3
}
$/"
,
$field_value
)){
$groups
=
explode
(
"."
,
$field_value
);
foreach
(
$groups
as
$group
){
if
(
$group
<
0
OR
$group
>
255
)
...
...
interface/web/admin/form/server_config.tform.php
View file @
30fc1b7c
...
...
@@ -83,20 +83,20 @@ $form["tabs"]['server'] = array(
'errmsg'
=>
'netmask_error_wrong'
),
),
'value'
=>
''
,
'width'
=>
'15'
,
'maxlength'
=>
'255'
),
'v6_prefix'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'validators'
=>
array
(
0
=>
array
(
'type'
=>
'ISV6PREFIX'
,
'errmsg'
=>
'v6_prefix_wrong'
),
),
'default'
=>
''
),
'gateway'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'width'
=>
'15'
,
'maxlength'
=>
'255'
),
'v6_prefix'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'validators'
=>
array
(
0
=>
array
(
'type'
=>
'ISV6PREFIX'
,
'errmsg'
=>
'v6_prefix_wrong'
),
),
'default'
=>
''
),
'gateway'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'default'
=>
'192.168.0.1'
,
'validators'
=>
array
(
0
=>
array
(
'type'
=>
'ISIPV4'
,
'errmsg'
=>
'gateway_error_wrong'
),
...
...
@@ -421,22 +421,22 @@ $form["tabs"]['web'] = array(
'formtype'
=>
'TEXT'
,
'default'
=>
''
,
'value'
=>
''
,
'width'
=>
'40'
,
'maxlength'
=>
'255'
),
/*
'vhost_rewrite_v6' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'n',
'value' => array(0 => 'n',1 => 'y')
),
*/
'vhost_conf_dir'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'width'
=>
'40'
,
'maxlength'
=>
'255'
),
/*
'vhost_rewrite_v6' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'n',
'value' => array(0 => 'n',1 => 'y')
),
*/
'vhost_conf_dir'
=>
array
(
'datatype'
=>
'VARCHAR'
,
'formtype'
=>
'TEXT'
,
'default'
=>
''
,
'validators'
=>
array
(
0
=>
array
(
'type'
=>
'NOTEMPTY'
,
'errmsg'
=>
'vhost_conf_dir_error_empty'
),
...
...
interface/web/admin/lib/lang/en_server_config.lng
View file @
30fc1b7c
...
...
@@ -167,15 +167,15 @@ $wb["awstats_settings_txt"] = 'AWStats Settings';
$wb
[
"firewall_txt"
]
=
'Firewall'
;
$wb
[
"mailbox_quota_stats_txt"
]
=
'Mailbox quota statistics'
;
$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
[
"overtraffic_notify_client_txt"
]
=
'Send overtraffic notification to client'
;
$wb
[
"v6_prefix_txt"
]
=
'IPv6 Prefix'
;
$wb
[
"vhost_rewrite_v6_txt"
]
=
'Rewrite IPv6 on Mirror'
;
$wb
[
"web_folder_protection_txt"
]
=
'Make web folders immutable (extended attributes)'
;
$wb
[
"overtraffic_notify_admin_txt"
]
=
'Send overtraffic notification to admin'
;
$wb
[
"overtraffic_notify_client_txt"
]
=
'Send overtraffic notification to client'
;
$wb
[
"v6_prefix_txt"
]
=
'IPv6 Prefix'
;
$wb
[
"vhost_rewrite_v6_txt"
]
=
'Rewrite IPv6 on Mirror'
;
$wb
[
"v6_prefix_wrong"
]
=
'Invalid v6 Netmask format.'
;
$wb
[
"php_ini_check_minutes_txt"
]
=
'Check system php.ini files for changes each'
;
$wb
[
"php_ini_check_minutes_info_txt"
]
=
'minutes (0 disables checking)'
;
$wb
[
'php_ini_check_minutes_error_empty'
]
=
'Invalid value for php.ini checking.'
;
$wb
[
"sendmail_path_txt"
]
=
'Sendmail Path'
;
$wb
[
"sendmail_path_error_empty"
]
=
'Sendmail Path is empty.'
;
?>
?>
interface/web/admin/lib/menu.d/tpl_default.menu.php
View file @
30fc1b7c
<?php
/* Removed because tpl_default.php does not work
for($m = 0; $m < count($module['nav']); $m++) {
if($module['nav'][$m]['title'] == 'Interface') {
$module['nav'][$m]['items'][] = array( 'title' => 'Default Theme',
'target' => 'content',
'link' => 'admin/tpl_default.php',
'html_id' => 'tpl_default');
break;
}
}
*/
?>
<?php
/* Removed because tpl_default.php does not work
for($m = 0; $m < count($module['nav']); $m++) {
if($module['nav'][$m]['title'] == 'Interface') {
$module['nav'][$m]['items'][] = array( 'title' => 'Default Theme',
'target' => 'content',
'link' => 'admin/tpl_default.php',
'html_id' => 'tpl_default');
break;
}
}
*/
?>
interface/web/admin/templates/iptables_edit.htm
View file @
30fc1b7c
<h2><tmpl_var
name=
"list_head_txt"
></h2>
<p><tmpl_var
name=
"list_desc_txt"
></p>
<div
class=
"panel panel_iptables"
>
<div
class=
"pnl_formsarea"
>
<fieldset
class=
"inlineLabels"
>
<div
class=
"ctrlHolder"
>
<label
for=
"server_id"
>
{tmpl_var name='server_id_txt'}
</label>
<select
name=
"server_id"
id=
"server_id"
class=
"selectInput"
>
{tmpl_var name='server_id'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"table"
>
{tmpl_var name='table_txt'}
</label>
<select
name=
"table"
id=
"table"
class=
"selectInput formLengthLimit"
>
{tmpl_var name='table'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"protocol"
>
{tmpl_var name='protocol_txt'}
</label>
<select
name=
"protocol"
id=
"protocol"
class=
"selectInput formLengthLimit"
>
{tmpl_var name='protocol'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"singleport"
>
{tmpl_var name='singleport_txt'}
</label>
<input
name=
"singleport"
id=
"singleport"
value=
"{tmpl_var name='singleport'}"
size=
"10"
maxlength=
"10"
type=
"text"
class=
"textInput formLengthLimit"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"multiport"
>
{tmpl_var name='multiport_txt'}
</label>
<input
name=
"multiport"
id=
"multiport"
value=
"{tmpl_var name='multiport'}"
size=
"20"
maxlength=
"40"
type=
"text"
class=
"textInput"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"destination_ip"
>
{tmpl_var name='destination_ip_txt'}
</label>
<input
name=
"destination_ip"
id=
"destination_ip"
value=
"{tmpl_var name='destination_ip'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput formLengthIPv4"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"source_ip"
>
{tmpl_var name='source_ip_txt'}
</label>
<input
name=
"source_ip"
id=
"source_ip"
value=
"{tmpl_var name='source_ip'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput formLengthIPv4"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"state"
>
{tmpl_var name='state_txt'}
</label>
<input
name=
"state"
id=
"state"
value=
"{tmpl_var name='state'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"target"
>
{tmpl_var name='target_txt'}
</label>
<select
name=
"target"
id=
"target"
class=
"selectInput formLengthLimit"
>
{tmpl_var name='target'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<p
class=
"label"
>
{tmpl_var name='active_txt'}
</p>
<div
class=
"multiField"
>
{tmpl_var name='active'}
</div>
</div>
</fieldset>
<input
type=
"hidden"
name=
"id"
value=
"{tmpl_var name='id'}"
>
<div
class=
"buttonHolder buttons"
>
<button
class=
"positive iconstxt icoPositive"
type=
"button"
value=
"{tmpl_var name='btn_save_txt'}"
onclick=
"submitForm('pageForm','admin/iptables_edit.php');"
>
<span>
{tmpl_var name='btn_save_txt'}
</span></button>
<button
class=
"negative iconstxt icoNegative"
type=
"button"
value=
"{tmpl_var name='btn_cancel_txt'}"
onclick=
"loadContent('admin/iptables_list.php');"
>
<span>
{tmpl_var name='btn_cancel_txt'}
</span></button>
</div>
</div>
<h2><tmpl_var
name=
"list_head_txt"
></h2>
<p><tmpl_var
name=
"list_desc_txt"
></p>
<div
class=
"panel panel_iptables"
>
<div
class=
"pnl_formsarea"
>
<fieldset
class=
"inlineLabels"
>
<div
class=
"ctrlHolder"
>
<label
for=
"server_id"
>
{tmpl_var name='server_id_txt'}
</label>
<select
name=
"server_id"
id=
"server_id"
class=
"selectInput"
>
{tmpl_var name='server_id'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"table"
>
{tmpl_var name='table_txt'}
</label>
<select
name=
"table"
id=
"table"
class=
"selectInput formLengthLimit"
>
{tmpl_var name='table'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"protocol"
>
{tmpl_var name='protocol_txt'}
</label>
<select
name=
"protocol"
id=
"protocol"
class=
"selectInput formLengthLimit"
>
{tmpl_var name='protocol'}
</select>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"singleport"
>
{tmpl_var name='singleport_txt'}
</label>
<input
name=
"singleport"
id=
"singleport"
value=
"{tmpl_var name='singleport'}"
size=
"10"
maxlength=
"10"
type=
"text"
class=
"textInput formLengthLimit"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"multiport"
>
{tmpl_var name='multiport_txt'}
</label>
<input
name=
"multiport"
id=
"multiport"
value=
"{tmpl_var name='multiport'}"
size=
"20"
maxlength=
"40"
type=
"text"
class=
"textInput"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"destination_ip"
>
{tmpl_var name='destination_ip_txt'}
</label>
<input
name=
"destination_ip"
id=
"destination_ip"
value=
"{tmpl_var name='destination_ip'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput formLengthIPv4"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"source_ip"
>
{tmpl_var name='source_ip_txt'}
</label>
<input
name=
"source_ip"
id=
"source_ip"
value=
"{tmpl_var name='source_ip'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput formLengthIPv4"
/>
</div>
<div
class=
"ctrlHolder"
>
<label
for=
"state"
>
{tmpl_var name='state_txt'}
</label>
<input
name=
"state"
id=
"state"
value=
"{tmpl_var name='state'}"
size=
"16"
maxlength=
"20"
type=
"text"
class=
"textInput"
/>