diff --git a/install/sql/incremental/upd_0040.sql b/install/sql/incremental/upd_0040.sql index d613681f184c478c4f77806d9cc9e36ed5729fe1..423772e86c2fc2e74743c8d275e0567ef2f450e8 100644 --- a/install/sql/incremental/upd_0040.sql +++ b/install/sql/incremental/upd_0040.sql @@ -2,3 +2,23 @@ -- Removal of the domain module UPDATE sys_user SET startmodule = 'dashboard' WHERE startmodule = 'domain'; UPDATE sys_user SET modules = replace(modules, ',domain', '') WHERE modules like '%domain%'; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `directive_snippets` +-- + +CREATE TABLE IF NOT EXISTS `directive_snippets` ( + `directive_snippets_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `snippet` mediumtext, + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`directive_snippets_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 205840800f88aca4a0ab6dcf030340e57ab2d760..2817f7558e81ed26db88012e7ad02333c18a2ff7 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -347,6 +347,26 @@ CREATE TABLE `cron` ( -- -------------------------------------------------------- +-- +-- Table structure for table `directive_snippets` +-- + +CREATE TABLE IF NOT EXISTS `directive_snippets` ( + `directive_snippets_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `snippet` mediumtext, + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`directive_snippets_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + -- -- Table structure for table `dns_rr` -- diff --git a/interface/web/admin/directive_snippets_del.php b/interface/web/admin/directive_snippets_del.php new file mode 100644 index 0000000000000000000000000000000000000000..ee1ab8b273cd67ed7b897514ea8f4ae2e6b532e8 --- /dev/null +++ b/interface/web/admin/directive_snippets_del.php @@ -0,0 +1,51 @@ +auth->check_module_permissions('admin'); + +$app->uses("tform_actions"); +$app->tform_actions->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/admin/directive_snippets_edit.php b/interface/web/admin/directive_snippets_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..317dc58bbcd0f37e38b80358dbe3d2de94f8aa99 --- /dev/null +++ b/interface/web/admin/directive_snippets_edit.php @@ -0,0 +1,53 @@ +auth->check_module_permissions('admin'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); + +// let tform_actions handle the page +$app->tform_actions->onLoad(); + +?> \ No newline at end of file diff --git a/interface/web/admin/directive_snippets_list.php b/interface/web/admin/directive_snippets_list.php new file mode 100644 index 0000000000000000000000000000000000000000..4f411942cefad2f1c42ded4c68db8ca9f07813c5 --- /dev/null +++ b/interface/web/admin/directive_snippets_list.php @@ -0,0 +1,52 @@ +auth->check_module_permissions('admin'); + +$app->uses('listform_actions'); + +$app->listform_actions->onLoad(); + + +?> \ No newline at end of file diff --git a/interface/web/admin/form/directive_snippets.tform.php b/interface/web/admin/form/directive_snippets.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..a8b43b534d5aa052ae9c8413001e9f1461dcfd45 --- /dev/null +++ b/interface/web/admin/form/directive_snippets.tform.php @@ -0,0 +1,101 @@ + 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['directive_snippets'] = array ( + 'title' => "Directive Snippets", + 'width' => 100, + 'template' => "templates/directive_snippets_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'directive_snippets_name_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'directive_snippets_name_error_unique'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('apache' => 'Apache','nginx' => 'nginx','php' => 'PHP'), + ), + 'snippet' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + +?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/de.lng b/interface/web/admin/lib/lang/de.lng index a90537e1aecf2b30d692f2c9923c8ed673a3a933..bec98adf5ba3b5faab2265aa3d3f6cb13077ea66 100644 --- a/interface/web/admin/lib/lang/de.lng +++ b/interface/web/admin/lib/lang/de.lng @@ -28,6 +28,7 @@ $wb['Jailkit'] = 'Jailkit'; $wb['Rescue'] = 'Rescue'; $wb['Server IP addresses'] = 'Server IP-Adressen'; $wb['Additional PHP Versions'] = 'Zusätzliche PHP-Versionen'; +$wb['Directive Snippets'] = 'Direktiven-Schnipsel'; $wb['Firewall'] = 'Firewall'; $wb['Interface'] = 'Interface'; $wb['Interface Config'] = 'Main Config'; diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng new file mode 100644 index 0000000000000000000000000000000000000000..b0417fedf0dae0714bfa9ba6e7f47db582bff190 --- /dev/null +++ b/interface/web/admin/lib/lang/de_directive_snippets.lng @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/de_directive_snippets_list.lng b/interface/web/admin/lib/lang/de_directive_snippets_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..a928a4d76661fb70599ca8556dab8da3bc3a91c6 --- /dev/null +++ b/interface/web/admin/lib/lang/de_directive_snippets_list.lng @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en.lng b/interface/web/admin/lib/lang/en.lng index 3cbf996e21ef3eff904c090adc38ac4a51899db8..d9cbc7f8392567bfc902daa51cd6c30788faf29c 100644 --- a/interface/web/admin/lib/lang/en.lng +++ b/interface/web/admin/lib/lang/en.lng @@ -36,6 +36,7 @@ $wb['Server Config'] = 'Server Config'; $wb['Rescue'] = 'Rescue'; $wb['Server IP addresses'] = 'Server IP addresses'; $wb['Additional PHP Versions'] = 'Additional PHP Versions'; +$wb['Directive Snippets'] = 'Directive Snippets'; $wb['Firewall'] = 'Firewall'; $wb['Interface'] = 'Interface'; diff --git a/interface/web/admin/lib/lang/en_directive_snippets.lng b/interface/web/admin/lib/lang/en_directive_snippets.lng new file mode 100644 index 0000000000000000000000000000000000000000..ee40ab06f9c236b846ebe8daec35f7603aefe520 --- /dev/null +++ b/interface/web/admin/lib/lang/en_directive_snippets.lng @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_directive_snippets_list.lng b/interface/web/admin/lib/lang/en_directive_snippets_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..702e7e250480306e6f717010d84662c0e03d41e1 --- /dev/null +++ b/interface/web/admin/lib/lang/en_directive_snippets_list.lng @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/module.conf.php b/interface/web/admin/lib/module.conf.php index 91a9401f1ac5ed0d61170b53edefa4cad3f1e96e..489daacf2df23e91e9adbc8211efc49403bd706c 100644 --- a/interface/web/admin/lib/module.conf.php +++ b/interface/web/admin/lib/module.conf.php @@ -47,6 +47,11 @@ $items[] = array( 'title' => 'Additional PHP Versions', 'target' => 'content', 'link' => 'admin/server_php_list.php', 'html_id' => 'server_php_list'); + +$items[] = array( 'title' => 'Directive Snippets', + 'target' => 'content', + 'link' => 'admin/directive_snippets_list.php', + 'html_id' => 'directive_snippets_list'); $items[] = array( 'title' => 'Firewall', 'target' => 'content', diff --git a/interface/web/admin/list/directive_snippets.list.php b/interface/web/admin/list/directive_snippets.list.php new file mode 100644 index 0000000000000000000000000000000000000000..ec023c1ec8bca8b2bf33b4c624d8cc5f788d3e53 --- /dev/null +++ b/interface/web/admin/list/directive_snippets.list.php @@ -0,0 +1,78 @@ + "active", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('y' => "