Skip to content

Commit fdfa05a

Browse files
committed
Remote API: Check client modules against interface_modules_enabled setting in conf.
Add is_admin check beside the existing is admin module check in edit and delete functions of the admin module.
1 parent bb37295 commit fdfa05a

28 files changed

+37
-3
lines changed

interface/lib/classes/remoting_lib.inc.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,14 @@ function ispconfig_sysuser_add($params, $insert_id){
296296
if(!isset($params['modules'])) {
297297
$modules = $conf['interface_modules_enabled'];
298298
} else {
299+
// Check if modules are allowed
300+
$allowed_modules = explode(',', $conf['interface_modules_enabled']);
299301
$modules = $params['modules'];
302+
foreach(explode(',', $modules) as $module) {
303+
if(!in_array($module, $allowed_modules)) {
304+
throw new SoapFault('Invalid modules', 'Module '.$module.' is not allowed.');
305+
}
306+
}
300307
}
301308
if(isset($params['limit_client']) && $params['limit_client'] > 0) {
302309
$modules .= ',client';
@@ -306,7 +313,7 @@ function ispconfig_sysuser_add($params, $insert_id){
306313
$startmodule = 'dashboard';
307314
} else {
308315
$startmodule = $params["startmodule"];
309-
if(!preg_match('/'.$startmodule.'/', $modules)) {
316+
if(!in_array($startmodule, explode(',', $modules))) {
310317
$_modules = explode(',', $modules);
311318
$startmodule=$_modules[0];
312319
}

interface/web/admin/directive_snippets_del.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444

4545
//* Check permissions for module
4646
$app->auth->check_module_permissions('admin');
47+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4748

4849
$app->load("tform_actions");
4950

interface/web/admin/directive_snippets_edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
//* Check permissions for module
4545
$app->auth->check_module_permissions('admin');
46+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4647

4748
// Loading classes
4849
$app->uses('tpl,tform,tform_actions');

interface/web/admin/extension_edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
//* Check permissions for module
3535
$app->auth->check_module_permissions('admin');
36+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
3637

3738
//* load language file
3839
$lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_extension_install_list.lng';

interface/web/admin/firewall_del.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
//* Check permissions for module
4646
$app->auth->check_module_permissions('admin');
4747
$app->auth->check_security_permissions('admin_allow_firewall_config');
48+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4849

4950
$app->uses("tform_actions");
5051
$app->tform_actions->onDelete();

interface/web/admin/firewall_edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
//* Check permissions for module
4545
$app->auth->check_module_permissions('admin');
4646
$app->auth->check_security_permissions('admin_allow_firewall_config');
47+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4748

4849
// Loading classes
4950
$app->uses('tpl,tform,tform_actions');

interface/web/admin/groups_del.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
//* Check permissions for module
4646
$app->auth->check_module_permissions('admin');
4747
$app->auth->check_security_permissions('admin_allow_cpuser_group');
48+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4849

4950
$app->uses("tform_actions");
5051
$app->tform_actions->onDelete();

interface/web/admin/groups_edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
//* Check permissions for module
4545
$app->auth->check_module_permissions('admin');
4646
$app->auth->check_security_permissions('admin_allow_cpuser_group');
47+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4748

4849
// Loading classes
4950
$app->uses('tpl,tform,tform_actions');

interface/web/admin/iptables_del.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444

4545
//* Check permissions for module
4646
$app->auth->check_module_permissions('admin');
47+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4748

4849
$app->uses("tform_actions");
4950
$app->tform_actions->onDelete();

interface/web/admin/iptables_edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444

4545
//* Check permissions for module
4646
$app->auth->check_module_permissions('admin');
47+
if(!$app->auth->is_admin()) $app->error('This function needs admin privileges');
4748

4849
// Loading classes
4950
$app->uses('tpl,tform,tform_actions');

0 commit comments

Comments
 (0)