diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php
index fc6f6103bb035fc3cc4fbc60da7e4c357c01261d..9854b630f6866bfcb31304419cb5515ea503bc22 100644
--- a/interface/lib/app.inc.php
+++ b/interface/lib/app.inc.php
@@ -170,6 +170,9 @@ class app {
$this->tpl->setVar('app_title',$conf["app_title"]);
$this->tpl->setVar('delete_confirmation',$this->lng('delete_confirmation'));
$this->tpl->setVar('app_module',$_SESSION["s"]["module"]["name"]);
+ if($_SESSION["s"]["user"]["typ"] == 'admin') {
+ $this->tpl->setVar('is_admin',1);
+ }
}
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 0bcc13d3c4bafc1799ebc2b72990af7906aac55f..da4ad76e307f68d8d916b39d22bf2fc376b71c33 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -1,521 +1,534 @@
-
-* @copyright Copyright © 2005, Till Brehm
-*/
-
-class tform_actions {
-
- var $id;
- var $activeTab;
- var $dataRecord;
- var $plugins = array();
-
- function onLoad() {
- global $app, $conf, $tform_def_file;
-
- // Loading template classes and initialize template
- if(!is_object($app->tpl)) $app->uses('tpl');
- if(!is_object($app->tform)) $app->uses('tform');
-
- $app->tpl->newTemplate("tabbed_form.tpl.htm");
-
- // Load table definition from file
- $app->tform->loadFormDef($tform_def_file);
-
- // Importing ID
- $this->id = intval($_REQUEST["id"]);
-
- // show print version of the form
- if($_GET["print_form"] == 1) {
- $this->onPrintForm();
- }
-
- // send this form by email
- if($_GET["send_form_by_mail"] == 1) {
- $this->onMailSendForm();
- }
-
- if(count($_POST) > 1) {
- $this->dataRecord = $_POST;
- $this->onSubmit();
- } else {
- $this->onShow();
- }
- }
-
- /**
- * Function called on page submit
- */
-
- function onSubmit() {
- global $app, $conf;
-
- // Calling the action functions
- if($this->id > 0) {
- $this->onUpdate();
- } else {
- $this->onInsert();
- }
- }
-
- /**
- * Function called on data update
- */
-
- function onUpdate() {
- global $app, $conf;
-
- $ext_where = '';
- $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where);
- if($app->tform->errorMessage == '') {
-
- if(!empty($sql)) {
- $app->db->query($sql);
- if($app->db->errorMessage != '') die($app->db->errorMessage);
- }
-
- // loading plugins
- $next_tab = $app->tform->getCurrentTab();
- $this->loadPlugins($next_tab);
-
- // Call plugin
- foreach($this->plugins as $plugin) {
- $plugin->onInsert();
- }
-
- $this->onAfterUpdate();
-
- if($_REQUEST["next_tab"] == '') {
- $list_name = $_SESSION["s"]["form"]["return_to"];
- // When a list is embedded inside of a form
-
- //if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
- if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
- $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
- $_SESSION["s"]["form"]["return_to"] = '';
- session_write_close();
- header($redirect);
- // When a returnto variable is set
- } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') {
- $redirect = $_SESSION["s"]["form"]["return_to_url"];
- $_SESSION["s"]["form"]["return_to_url"] = '';
- session_write_close();
- header("Location: ".$redirect);
- exit;
- // Use the default list of the form
- } else {
- header("Location: ".$app->tform->formDef['list_default']);
- }
- exit;
- } else {
- $this->onShow();
- }
- } else {
- $this->onError();
- }
- }
-
- /**
- * Function called on data insert
- */
-
- function onInsert() {
- global $app, $conf;
-
- $ext_where = '';
- $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();
-
- // loading plugins
- $next_tab = $app->tform->getCurrentTab();
- $this->loadPlugins($next_tab);
-
- // Call plugin
- foreach($this->plugins as $plugin) {
- $plugin->onInsert();
- }
-
- $this->onAfterInsert();
-
-
- if($_REQUEST["next_tab"] == '') {
- $list_name = $_SESSION["s"]["form"]["return_to"];
- // if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
- if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
- $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
- $_SESSION["s"]["form"]["return_to"] = '';
- session_write_close();
- header($redirect);
- exit;
- } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') {
- $_SESSION["s"]["form"]["return_to_url"] = '';
- session_write_close();
- header("Location: ".$_SESSION["s"]["form"]["return_to_url"]);
- exit;
- } else {
- header("Location: ".$app->tform->formDef['list_default']);
- }
- exit;
- } else {
- $this->onShow();
- }
- } else {
- $this->onError();
- }
- }
-
- function onAfterUpdate() {
- global $app, $conf;
- }
-
- function onAfterInsert() {
- global $app, $conf;
- }
-
-
- /**
- * Function called on data insert or update error
- */
-
- function onError() {
- global $app, $conf;
-
- $app->tpl->setVar("error","".$app->lng('Error').":
".$app->tform->errorMessage);
- $app->tpl->setVar($this->dataRecord);
- $this->onShow();
- }
-
- /**
- * Function called on data delete
- */
-
- function onDelete() {
- global $app, $conf,$list_def_file,$tform_def_file;
-
- include_once($list_def_file);
-
- // Loading tform framework
- if(!is_object($app->tform)) $app->uses('tform');
-
- // Load table definition from file
- $app->tform->loadFormDef($tform_def_file);
-
- // importing ID
- $this->id = intval($_REQUEST["id"]);
-
- if($this->id > 0) {
-
- // checking permissions
- if($app->tform->formDef['auth'] == 'yes') {
- if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission'));
- }
-
- $record_old = $app->db->queryOneRecord("SELECT * FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
-
- // Saving record to datalog when db_history enabled
- if($form["db_history"] == 'yes') {
- $diffrec = array();
-
- foreach($record_old as $key => $val) {
- // Record has changed
- $diffrec[$key] = array('old' => $val,
- 'new' => '');
- }
-
- $diffstr = $app->db->quote(serialize($diffrec));
- $username = $app->db->quote($_SESSION["s"]["user"]["username"]);
- $dbidx = $app->tform->formDef['db_table_idx'].":".$this->id;
- $sql = "INSERT INTO sys_datalog (dbtable,dbidx,action,tstamp,user,data) VALUES ('".$app->tform->formDef['db_table']."','$dbidx','d','".time()."','$username','$diffstr')";
- $app->db->query($sql);
- }
-
- $app->db->query("DELETE FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
-
- // loading plugins
- $next_tab = $app->tform->getCurrentTab();
- $this->loadPlugins($next_tab);
-
-
- // Call plugin
- foreach($this->plugins as $plugin) {
- $plugin->onDelete();
- }
- }
-
- //header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
- $list_name = $_SESSION["s"]["form"]["return_to"];
- if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
- $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
- $_SESSION["s"]["form"]["return_to"] = '';
- session_write_close();
- header($redirect);
- } else {
- header("Location: ".$liste["file"]);
- }
- exit;
-
- }
-
- /**
- * Function to print the form content
- */
-
- function onPrintForm() {
- global $app, $conf;
-
- if($app->tform->formDef['template_print'] == '') die('No print template available.');
-
- $app->tpl->newTemplate("print.tpl.htm");
- $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_print']);
-
- if($app->tform->formDef['auth'] == 'no') {
- $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id;
- } else {
- $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u');
- }
- if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
-
- $record["datum"] = date("d.m.Y");
-
- $app->tpl->setVar($app->tform->wordbook);
-
- $app->tpl->setVar($record);
- $app->tpl_defaults();
- $app->tpl->pparse();
- exit;
-
- }
-
- /**
- * Function to print the form content
- */
-
- function onMailSendForm() {
- global $app, $conf;
-
- if($app->tform->formDef['template_mailsend'] == '') die('No print template available.');
-
- if($_POST["email"] == '' && $_POST["sender"] == '') {
- // Zeige Formular zum versenden an.
- $app->tpl->newTemplate("form.tpl.htm");
- $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_mailsend']);
- $app->tpl->setVar('show_form',1);
- $app->tpl->setVar("form_action",$app->tform->formDef['action'].'?send_form_by_mail=1');
- $app->tpl->setVar("id",$this->id);
- $app->tpl_defaults();
- $app->tpl->pparse();
- exit;
- } else {
- $app->tpl->newTemplate("mail.tpl.htm");
- $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_mailsend']);
- $app->tpl->setVar('show_mail',1);
- if($app->tform->formDef['auth'] == 'no') {
- $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id;
- } else {
- $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u');
- }
- if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
-
- $record["datum"] = date("d.m.Y");
- $record["mailmessage"] = $_POST["message"];
-
- $app->tpl->setVar($app->tform->wordbook);
-
- $app->tpl->setVar($record);
- $app->tpl_defaults();
-
- $email_message = $app->tpl->grab();
- $email = $_POST["email"];
- $sender = $_POST["sender"];
-
- $headers = "MIME-Version: 1.0\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\n";
- $headers .= "From: $sender\n";
-
- if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' . '@' . '([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.)+' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $sender)) {
- $sender = 'noreply@iprguard.de';
- }
-
- if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' . '@' . '([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.)+' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)) {
- mail($email, 'Domainrecherche Statement '.$record["domain"], $email_message, $headers);
- }
- echo "
Email wurde versand.
"; - exit; - } - - - - if($app->tform->formDef['auth'] == 'no') { - $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id; - } else { - $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u'); - } - if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission')); - - $record["datum"] = date("d.m.Y"); - - $app->tpl->setVar($app->tform->wordbook); - - $app->tpl->setVar($record); - $app->tpl_defaults(); - $app->tpl->pparse(); - exit; - - } - - /** - * Function called on page show - */ - - function onShow() { - global $app, $conf; - - // Which tab do we render - $this->active_tab = $app->tform->getNextTab(); - - if($this->id > 0) { - $this->onShowEdit(); - } else { - $this->onShowNew(); - } - - // make Form and Tabs - $app->tform->showForm(); - - // Setting default values - $app->tpl_defaults(); - - // Show the navigation bar of the form - if($app->tform->formDef['navibar'] == 'yes') { - $navibar = ''; - if($app->tform->formDef['template_print'] != '') { - $navibar .= ' '; - } - if($app->tform->formDef['template_mailsend'] != '') { - $navibar .= "tform->formDef['action'].'?id='.$this->id."&send_form_by_mail=1','send','width=370,height=240')\">"; - } - $app->tpl->setVar('form_navibar',$navibar); - } - - - // loading plugins - $this->loadPlugins($this->active_tab); - - // Calling the Plugin onShow Events and set the data in the - // plugins placeholder in the template - foreach($this->plugins as $plugin_name => $plugin) { - $app->tpl->setVar($plugin_name,$plugin->onShow()); - } - - // Parse the templates and send output to the browser - $this->onShowEnd(); - - } - - /** - * Function called on new record - */ - - function onShowNew() { - global $app, $conf; - - if($app->tform->errorMessage == '') { - $record = array(); - $record = $app->tform->getHTML($record, $app->tform->formDef['tab_default'],'NEW'); - } else { - $record = $app->tform->getHTML($app->tform->encode($_POST,$this->active_tab),$this->active_tab,'EDIT'); - } - - $app->tpl->setVar($record); - } - - /** - * Function called on edit record - */ - - function onShowEdit() { - global $app, $conf; - - // bestehenden Datensatz anzeigen - if($app->tform->errorMessage == '') { - if($app->tform->formDef['auth'] == 'no') { - $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id; - } else { - $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u'); - } - if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission')); - } else { - $record = $app->tform->encode($_POST,$this->active_tab); - } - - $this->dataRecord = $record; - - // Userdaten umwandeln - $record = $app->tform->getHTML($record, $this->active_tab,'EDIT'); - $record['id'] = $this->id; - - $app->tpl->setVar($record); - } - - function onShowEnd() { - global $app, $conf; - - // Template parsen - $app->tpl->pparse(); - } - - function loadPlugins($next_tab) { - global $app; - if(is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) { - $app->load('plugin_base'); - foreach($app->tform->formDef["tabs"][$next_tab]["plugins"] as $plugin_name => $plugin_settings) { - $plugin_class = $plugin_settings["class"]; - $app->load($plugin_class); - $this->plugins[$plugin_name] = new $plugin_class; - $this->plugins[$plugin_name]->setOptions($plugin_name,$plugin_settings['options']); - // Make the data of the form easily accessible for the plugib - $this->plugins[$plugin_name]->form = $this; - $this->plugins[$plugin_name]->onLoad(); - } - } - } - - -} - + +* @copyright Copyright © 2005, Till Brehm +*/ + +class tform_actions { + + var $id; + var $activeTab; + var $dataRecord; + var $plugins = array(); + + function onLoad() { + global $app, $conf, $tform_def_file; + + // Loading template classes and initialize template + if(!is_object($app->tpl)) $app->uses('tpl'); + if(!is_object($app->tform)) $app->uses('tform'); + + $app->tpl->newTemplate("tabbed_form.tpl.htm"); + + // Load table definition from file + $app->tform->loadFormDef($tform_def_file); + + // Importing ID + $this->id = intval($_REQUEST["id"]); + + // show print version of the form + if($_GET["print_form"] == 1) { + $this->onPrintForm(); + } + + // send this form by email + if($_GET["send_form_by_mail"] == 1) { + $this->onMailSendForm(); + } + + if(count($_POST) > 1) { + $this->dataRecord = $_POST; + $this->onSubmit(); + } else { + $this->onShow(); + } + } + + /** + * Function called on page submit + */ + + function onSubmit() { + global $app, $conf; + + // Calling the action functions + if($this->id > 0) { + $this->onUpdate(); + } else { + $this->onInsert(); + } + } + + /** + * Function called on data update + */ + + function onUpdate() { + global $app, $conf; + + $this->onBeforeUpdate(); + + $ext_where = ''; + $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where); + if($app->tform->errorMessage == '') { + + if(!empty($sql)) { + $app->db->query($sql); + if($app->db->errorMessage != '') die($app->db->errorMessage); + } + + // loading plugins + $next_tab = $app->tform->getCurrentTab(); + $this->loadPlugins($next_tab); + + // Call plugin + foreach($this->plugins as $plugin) { + $plugin->onInsert(); + } + + $this->onAfterUpdate(); + + if($_REQUEST["next_tab"] == '') { + $list_name = $_SESSION["s"]["form"]["return_to"]; + // When a list is embedded inside of a form + + //if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"]; + $_SESSION["s"]["form"]["return_to"] = ''; + session_write_close(); + header($redirect); + // When a returnto variable is set + } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') { + $redirect = $_SESSION["s"]["form"]["return_to_url"]; + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$redirect); + exit; + // Use the default list of the form + } else { + header("Location: ".$app->tform->formDef['list_default']); + } + exit; + } else { + $this->onShow(); + } + } else { + $this->onError(); + } + } + + /** + * Function called on data insert + */ + + function onInsert() { + global $app, $conf; + + $this->onBeforeInsert(); + + $ext_where = ''; + $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(); + + // loading plugins + $next_tab = $app->tform->getCurrentTab(); + $this->loadPlugins($next_tab); + + // Call plugin + foreach($this->plugins as $plugin) { + $plugin->onInsert(); + } + + $this->onAfterInsert(); + + + if($_REQUEST["next_tab"] == '') { + $list_name = $_SESSION["s"]["form"]["return_to"]; + // if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"]; + $_SESSION["s"]["form"]["return_to"] = ''; + session_write_close(); + header($redirect); + exit; + } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') { + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$_SESSION["s"]["form"]["return_to_url"]); + exit; + } else { + header("Location: ".$app->tform->formDef['list_default']); + } + exit; + } else { + $this->onShow(); + } + } else { + $this->onError(); + } + } + + function onBeforeUpdate() { + global $app, $conf; + } + + function onBeforeInsert() { + global $app, $conf; + } + + function onAfterUpdate() { + global $app, $conf; + } + + function onAfterInsert() { + global $app, $conf; + } + + + /** + * Function called on data insert or update error + */ + + function onError() { + global $app, $conf; + + $app->tpl->setVar("error","".$app->lng('Error').":
Email wurde versand.
"; + exit; + } + + + + if($app->tform->formDef['auth'] == 'no') { + $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id; + } else { + $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u'); + } + if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission')); + + $record["datum"] = date("d.m.Y"); + + $app->tpl->setVar($app->tform->wordbook); + + $app->tpl->setVar($record); + $app->tpl_defaults(); + $app->tpl->pparse(); + exit; + + } + + /** + * Function called on page show + */ + + function onShow() { + global $app, $conf; + + // Which tab do we render + $this->active_tab = $app->tform->getNextTab(); + + if($this->id > 0) { + $this->onShowEdit(); + } else { + $this->onShowNew(); + } + + // make Form and Tabs + $app->tform->showForm(); + + // Setting default values + $app->tpl_defaults(); + + // Show the navigation bar of the form + if($app->tform->formDef['navibar'] == 'yes') { + $navibar = ''; + if($app->tform->formDef['template_print'] != '') { + $navibar .= ' '; + } + if($app->tform->formDef['template_mailsend'] != '') { + $navibar .= "tform->formDef['action'].'?id='.$this->id."&send_form_by_mail=1','send','width=370,height=240')\">"; + } + $app->tpl->setVar('form_navibar',$navibar); + } + + + // loading plugins + $this->loadPlugins($this->active_tab); + + // Calling the Plugin onShow Events and set the data in the + // plugins placeholder in the template + foreach($this->plugins as $plugin_name => $plugin) { + $app->tpl->setVar($plugin_name,$plugin->onShow()); + } + + // Parse the templates and send output to the browser + $this->onShowEnd(); + + } + + /** + * Function called on new record + */ + + function onShowNew() { + global $app, $conf; + + if($app->tform->errorMessage == '') { + $record = array(); + $record = $app->tform->getHTML($record, $app->tform->formDef['tab_default'],'NEW'); + } else { + $record = $app->tform->getHTML($app->tform->encode($_POST,$this->active_tab),$this->active_tab,'EDIT'); + } + + $app->tpl->setVar($record); + } + + /** + * Function called on edit record + */ + + function onShowEdit() { + global $app, $conf; + + // bestehenden Datensatz anzeigen + if($app->tform->errorMessage == '') { + if($app->tform->formDef['auth'] == 'no') { + $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id; + } else { + $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u'); + } + if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission')); + } else { + // $record = $app->tform->encode($_POST,$this->active_tab); + $record = $app->tform->encode($this->dataRecord,$this->active_tab); + } + + $this->dataRecord = $record; + + // Userdaten umwandeln + $record = $app->tform->getHTML($record, $this->active_tab,'EDIT'); + $record['id'] = $this->id; + + $app->tpl->setVar($record); + } + + function onShowEnd() { + global $app, $conf; + + // Template parsen + $app->tpl->pparse(); + } + + function loadPlugins($next_tab) { + global $app; + if(is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) { + $app->load('plugin_base'); + foreach($app->tform->formDef["tabs"][$next_tab]["plugins"] as $plugin_name => $plugin_settings) { + $plugin_class = $plugin_settings["class"]; + $app->load($plugin_class); + $this->plugins[$plugin_name] = new $plugin_class; + $this->plugins[$plugin_name]->setOptions($plugin_name,$plugin_settings['options']); + // Make the data of the form easily accessible for the plugib + $this->plugins[$plugin_name]->form = $this; + $this->plugins[$plugin_name]->onLoad(); + } + } + } + + +} + ?> \ No newline at end of file diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php index 68b8d3a0a5d212e5735d3fb18ccdae350c3afa0c..fca18dfe4995d84485d838a23bd733f8f1f9d762 100644 --- a/interface/web/client/client_edit.php +++ b/interface/web/client/client_edit.php @@ -100,7 +100,9 @@ class page_action extends tform_actions { // password changed if($this->dataRecord["password"] != '') { $password = addslashes($this->dataRecord["password"]); + $client_id = $this->id; $sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id"; + $app->db->query($sql); } diff --git a/interface/web/mail/lib/lang/en_mail_domain.lng b/interface/web/mail/lib/lang/en_mail_domain.lng index 6f89de675b8576e844700539627612aec27a9e94..c8e79c1cc96e8abe893b75509ed0cf3d9c1a986b 100644 --- a/interface/web/mail/lib/lang/en_mail_domain.lng +++ b/interface/web/mail/lib/lang/en_mail_domain.lng @@ -8,5 +8,6 @@ $wb["btn_cancel_txt"] = 'Cancel'; $wb["domain_error_empty"] = 'Domain is empty.'; $wb["domain_error_unique"] = 'Duplicate Domain.'; $wb["domain_error_regex"] = 'Invalid domain name.'; +$wb["client_txt"] = 'Client'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng index d92b129256859a306725c882a3acb294f965dd45..3026274db5ef1aa97679872c83832c7b1e96d12d 100644 --- a/interface/web/mail/lib/lang/en_mail_user.lng +++ b/interface/web/mail/lib/lang/en_mail_user.lng @@ -17,4 +17,6 @@ $wb["password_txt"] = 'password'; $wb["maildir_txt"] = 'maildir'; $wb["postfix_txt"] = 'Enable Receiving'; $wb["access_txt"] = 'Enable Access'; +$wb["limit_mailbox_txt"] = 'The max. number of mailboxes for your account is reached.'; +$wb["limit_mailquota_txt"] = 'The max space for mailboxes is reached. The max. available space in MB is'; ?> \ No newline at end of file diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index f1bf87f22c8191b54b8ecc646e47a8d50a750177..f2709b593da7fc9a8ad4a6f2241fa60a286998f0 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -1,56 +1,104 @@ -uses('tpl,tform,tform_actions'); - -// let tform_actions handle the page -$app->tform_actions->onLoad(); - +uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onShowEnd() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Getting Domains of the user + $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0"; + $clients = $app->db->queryAllRecords($sql); + $client_select = ""; + if(is_array($clients)) { + foreach( $clients as $client) { + $selected = ($client["groupid"] == $this->dataRecord["sys_groupid"])?'SELECTED':''; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + } + + parent::onShowEnd(); + } + + function onSubmit() { + if($_SESSION["s"]["user"]["typ"] != 'admin') unset($this->dataRecord["client_group_id"]); + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id WHERE domain_id = ".$this->id); + } + } + + function onAfterUpdate() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id WHERE domain_id = ".$this->id); + } + } + +} + +$page = new page_action; +$page->onLoad(); + ?> \ No newline at end of file diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index ee384f78cc92e0ede2459eed3f5f02c53f8f7482..2427dc34f87b626d5b965601e93c20a62593f6dc 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -53,6 +53,29 @@ $app->load('tform_actions'); class page_action extends tform_actions { + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_mailbox FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + // Check if the user may add another mailbox. + if($client["limit_mailbox"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE sys_groupid = $client_group_id"); + if($tmp["number"] >= $client["limit_mailbox"]) { + $app->error($app->tform->wordbook["limit_mailbox_txt"]); + } + } + } + + parent::onShowNew(); + } + function onShowEnd() { global $app, $conf; @@ -75,22 +98,54 @@ class page_action extends tform_actions { // Convert quota from Bytes to MB $app->tpl->setVar("quota",$this->dataRecord["quota"] / 1024); - parent::onShowEnd(); } function onSubmit() { global $app, $conf; + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_mailbox, limit_mailquota FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + // Check if Domain belongs to user $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - // if its an insert, check for password - if($this->id == 0 and $_POST["password"] == '') { - $app->tform->errorMessage .= $app->tform->wordbook["error_no_pwd"]."{tmpl_var name='server_id_txt'}: | @@ -7,6 +8,15 @@ |
{tmpl_var name='client_txt'}: | ++ + | +
{tmpl_var name='domain_txt'}: |