diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php index 363401aa73a5e1d140512cc795d0e206578bbfca..4b1369264cc833aa03011bc2f110ec76738faf79 100644 --- a/interface/lib/classes/listform_actions.inc.php +++ b/interface/lib/classes/listform_actions.inc.php @@ -50,6 +50,11 @@ class listform_actions { // Load list definition $app->listform->loadListDef($list_def_file); + if(!is_file('templates/'.$app->listform->listDef["name"].'_list.htm')) { + $app->uses('listform_tpl_generator'); + $app->listform_tpl_generator->buildHTML($app->listform->listDef); + } + $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl','templates/'.$app->listform->listDef["name"].'_list.htm'); diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 542dc4a4f25c444415b0ecd020f63b116c9e419d..2c54f37ff50f1f3d0f4addcb6c6e85c631f45c99 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -218,6 +218,7 @@ class tform { // Getting the records $tmp_records = $app->db->queryAllRecords($querystring); + if($app->db->errorMessage != '') die($app->db->errorMessage); if(is_array($tmp_records)) { $key_field = $field["datasource"]["keyfield"]; $value_field = $field["datasource"]["valuefield"]; @@ -240,6 +241,8 @@ class tform { } } + return $values; + } @@ -354,6 +357,12 @@ class tform { } else { // Action: NEW foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + + // If Datasource is set, get the data from there + if(is_array($field['datasource'])) { + $field["value"] = $this->getDatasourceData($field, $record); + } + switch ($field['formtype']) { case 'SELECT': if(is_array($field['value'])) { diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index 56deb43c4af0161c3147d641c06168eb0c492c35..a13a8fe6f043659a987289583a03e719bd84958f 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -105,6 +105,7 @@ class tform_actions { $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where); if($app->tform->errorMessage == '') { $app->db->query($sql); + if($app->db->errorMessage != '') die($app->db->errorMessage); // Call plugin foreach($this->plugins as $plugin) { @@ -133,6 +134,7 @@ class tform_actions { $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'INSERT',$this->id,$ext_where); if($app->tform->errorMessage == '') { $app->db->query($sql); + if($app->db->errorMessage != '') die($app->db->errorMessage); $this->id = $app->db->insertID(); // Call plugin diff --git a/interface/sql/auth_sql_snippet.sql b/interface/sql/auth_sql_snippet.sql new file mode 100644 index 0000000000000000000000000000000000000000..2a1fb8cc1c4213d1c02ad6125f41f4661184e2eb --- /dev/null +++ b/interface/sql/auth_sql_snippet.sql @@ -0,0 +1,5 @@ +ALTER TABLE `mail_domain` ADD `sys_userid` INT NOT NULL AFTER `domain_id` , +ADD `sys_groupid` INT NOT NULL AFTER `sys_userid` , +ADD `sys_perm_user` VARCHAR( 5 ) NOT NULL AFTER `sys_groupid` , +ADD `sys_perm_group` VARCHAR( 5 ) NOT NULL AFTER `sys_perm_user` , +ADD `sys_perm_other` VARCHAR( 5 ) NOT NULL AFTER `sys_perm_group` ; \ No newline at end of file diff --git a/interface/sql/ispconfig3db.sql b/interface/sql/ispconfig3db.sql index 887ce2ea4e34ca71eb154f27df4601441a5bee46..c37bd433825cd58570a89e1aa59fd7efacf1bfb2 100644 --- a/interface/sql/ispconfig3db.sql +++ b/interface/sql/ispconfig3db.sql @@ -3,7 +3,7 @@ # http://www.phpmyadmin.net/ (download page) # # Host: localhost -# Erstellungszeit: 01. November 2005 um 23:57 +# Erstellungszeit: 09. November 2005 um 23:22 # Server Version: 4.0.23 # PHP-Version: 5.0.3 # Datenbank: `ispconfig3` @@ -35,10 +35,17 @@ CREATE TABLE mail_blacklist ( DROP TABLE IF EXISTS mail_domain; CREATE TABLE mail_domain ( domain_id int(11) NOT NULL auto_increment, + sys_userid int(11) NOT NULL default '0', + sys_groupid int(11) NOT NULL default '0', + sys_perm_user varchar(5) NOT NULL default '', + sys_perm_group varchar(5) NOT NULL default '', + sys_perm_other varchar(5) NOT NULL default '', server_id int(11) NOT NULL default '0', domain varchar(255) NOT NULL default '', - type enum('local','relay','manual_relay') NOT NULL default 'local', + type enum('local','relay','manual_relay','alias') NOT NULL default 'local', relay_host varchar(255) NOT NULL default '', + destination varchar(255) NOT NULL default '', + active tinyint(4) NOT NULL default '1', PRIMARY KEY (domain_id), KEY server_id (server_id,domain,type) ) TYPE=MyISAM; @@ -47,6 +54,7 @@ CREATE TABLE mail_domain ( # Daten für Tabelle `mail_domain` # +INSERT INTO mail_domain VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'test.de', 'local', '', '', 1); # -------------------------------------------------------- # @@ -399,5 +407,5 @@ CREATE TABLE sys_user ( # Daten für Tabelle `sys_user` # -INSERT INTO sys_user VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,clients,designer,resellers,sites', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0); +INSERT INTO sys_user VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,designer,sites', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0); diff --git a/interface/web/admin/lib/lang/en_server_list.lng b/interface/web/admin/lib/lang/en_server_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..889d8025f36f66a1d9c50aa302fc5be4e2b20d10 --- /dev/null +++ b/interface/web/admin/lib/lang/en_server_list.lng @@ -0,0 +1,17 @@ + \ 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 d1261e489305d924d85609a23c3ce7f0d0fc1e59..f5c49fd8d1bee6ce3d4d9868f9a4091580a97958 100644 --- a/interface/web/admin/lib/module.conf.php +++ b/interface/web/admin/lib/module.conf.php @@ -16,7 +16,7 @@ $items[] = array( 'title' => "Edit user", 'link' => 'admin/users_list.php'); -$module["nav"][] = array( 'title' => 'Users', +$module["nav"][] = array( 'title' => 'CP Users', 'open' => 1, 'items' => $items); diff --git a/interface/web/admin/list/server.list.php b/interface/web/admin/list/server.list.php new file mode 100644 index 0000000000000000000000000000000000000000..b5cb00750e3f09c61d014f40c996f88d23ebb592 --- /dev/null +++ b/interface/web/admin/list/server.list.php @@ -0,0 +1,123 @@ + "server_name", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "mail_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "web_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "dns_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "file_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "mysql_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + +$liste["item"][] = array( 'field' => "postgresql_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + +$liste["item"][] = array( 'field' => "firebird_server", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); +?> \ No newline at end of file diff --git a/interface/web/admin/server_del.php b/interface/web/admin/server_del.php new file mode 100644 index 0000000000000000000000000000000000000000..b0ae30d4553482024da5c72e6f2b2dd6d45f4d05 --- /dev/null +++ b/interface/web/admin/server_del.php @@ -0,0 +1,54 @@ +uses("tform_actions"); +$app->tform_actions->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/admin/server_list.php b/interface/web/admin/server_list.php new file mode 100644 index 0000000000000000000000000000000000000000..bfae8779f71d5ea5c387390ee56babc1c2beebfa --- /dev/null +++ b/interface/web/admin/server_list.php @@ -0,0 +1,54 @@ +uses('listform_actions'); +$app->listform_actions->onLoad(); + + +?> \ No newline at end of file diff --git a/interface/web/admin/templates/server_list.htm b/interface/web/admin/templates/server_list.htm new file mode 100644 index 0000000000000000000000000000000000000000..e730c00bb7624491978fa6a8cca4086755917d86 --- /dev/null +++ b/interface/web/admin/templates/server_list.htm @@ -0,0 +1,44 @@ +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
{tmpl_var name="server_name"}{tmpl_var name="mail_server"}{tmpl_var name="web_server"}{tmpl_var name="dns_server"}{tmpl_var name="file_server"}{tmpl_var name="mysql_server"}{tmpl_var name="postgresql_server"}{tmpl_var name="firebird_server"}[{tmpl_var name='delete_txt'}]
+
\ No newline at end of file diff --git a/interface/web/sites/form/mail_domain.tform.php b/interface/web/sites/form/mail_domain.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..cdf6b9461b3335032a6939e25598bdff25b02869 --- /dev/null +++ b/interface/web/sites/form/mail_domain.tform.php @@ -0,0 +1,104 @@ + 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"]['domain'] = array ( + 'title' => "Domain", + 'width' => 100, + 'template' => "templates/mail_domain_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE 1 ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'domain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'domain_error_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'domain_error_unique'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('local' => 'local','relay'=>'relay','manual_relay'=>'manual Relay') + ), + 'active' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'CHECKBOX', + 'default' => '1', + 'value' => '1' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_mail_domain.lng b/interface/web/sites/lib/lang/en_mail_domain.lng new file mode 100644 index 0000000000000000000000000000000000000000..9645078df688bf763ccbabdd0247ba9e86b40383 --- /dev/null +++ b/interface/web/sites/lib/lang/en_mail_domain.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_mail_domain_list.lng b/interface/web/sites/lib/lang/en_mail_domain_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..efdf7fc71de187dc5acd0698b7e639612da7ee94 --- /dev/null +++ b/interface/web/sites/lib/lang/en_mail_domain_list.lng @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php index 9f2fb8dff2efbce633d8108db908541145072ae2..392881c4b5f12069b82cdbd649322acb8ff4e6e8 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -6,6 +6,66 @@ $module = array ( 'navframe_page' => '', 'startpage' => 'sites/index.php', 'tab_width' => '', - 'nav' => NULL, + 'nav' => + array ( + 0 => + array ( + 'title' => 'Email Accounts', + 'open' => 1, + 'items' => + array ( + 0 => + array ( + 'title' => 'Domain', + 'target' => 'content', + 'link' => 'sites/mail_domain_list.php', + ), + 1 => + array ( + 'title' => 'Domain Alias', + 'target' => 'content', + 'link' => '', + ), + 2 => + array ( + 'title' => 'Email Mailbox', + 'target' => 'content', + 'link' => '', + ), + 3 => + array ( + 'title' => 'Email Forward', + 'target' => 'content', + 'link' => '', + ), + 4 => + array ( + 'title' => 'Domain Catchall', + 'target' => 'content', + 'link' => '', + ), + ), + ), + 1 => + array ( + 'title' => 'Email Filter', + 'open' => 1, + 'items' => + array ( + 0 => + array ( + 'title' => 'Email Whitelist', + 'target' => 'content', + 'link' => '', + ), + 1 => + array ( + 'title' => 'Email Blacklist', + 'target' => 'content', + 'link' => '', + ), + ), + ), + ), ) ?> \ No newline at end of file diff --git a/interface/web/sites/list/mail_domain.list.php b/interface/web/sites/list/mail_domain.list.php new file mode 100644 index 0000000000000000000000000000000000000000..07c4681d8718042f75d5ba7991efe10cdeff20ff --- /dev/null +++ b/interface/web/sites/list/mail_domain.list.php @@ -0,0 +1,69 @@ + "server_id", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "domain", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + +?> \ No newline at end of file diff --git a/interface/web/sites/mail_domain_del.php b/interface/web/sites/mail_domain_del.php new file mode 100644 index 0000000000000000000000000000000000000000..894c9c1167bc60b642110fa484f25550dade2862 --- /dev/null +++ b/interface/web/sites/mail_domain_del.php @@ -0,0 +1,54 @@ +uses("tform_actions"); +$app->tform_actions->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/sites/mail_domain_edit.php b/interface/web/sites/mail_domain_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..f1bf87f22c8191b54b8ecc646e47a8d50a750177 --- /dev/null +++ b/interface/web/sites/mail_domain_edit.php @@ -0,0 +1,56 @@ +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/sites/mail_domain_list.php b/interface/web/sites/mail_domain_list.php new file mode 100644 index 0000000000000000000000000000000000000000..cc6d8f549f135f6e64b05183d376acacc6bc8d78 --- /dev/null +++ b/interface/web/sites/mail_domain_list.php @@ -0,0 +1,25 @@ +uses('listform_actions'); +$app->listform_actions->onLoad(); + + +?> \ No newline at end of file diff --git a/interface/web/sites/templates/mail_domain_edit.htm b/interface/web/sites/templates/mail_domain_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..1a7a3a9ebc2635a82eff4ec6d736b1ce83ecbe80 --- /dev/null +++ b/interface/web/sites/templates/mail_domain_edit.htm @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + +
{tmpl_var name='server_id_txt'}: + +
{tmpl_var name='domain_txt'}:
 {tmpl_var name='active'}   {tmpl_var name='active_txt'}
  
  + +
+ + \ No newline at end of file diff --git a/interface/web/sites/templates/mail_domain_list.htm b/interface/web/sites/templates/mail_domain_list.htm new file mode 100644 index 0000000000000000000000000000000000000000..e400ca3939e9ee5e12c497ccf7be7e3ddcfe1293 --- /dev/null +++ b/interface/web/sites/templates/mail_domain_list.htm @@ -0,0 +1,26 @@ +
+

+

+ + + + + + + + + + + + + + + + + + + + + +
 
{tmpl_var name="server_id"}{tmpl_var name="domain"}[{tmpl_var name='delete_txt'}]
+
\ No newline at end of file