diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 97321cdcba816e9d438e21e3656b385093350475..fe6dfdbd288f2aea7f312becdbbde3d95f9369f6 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -103,7 +103,7 @@ CREATE TABLE `client` (
`usertheme` varchar(32) NOT NULL default 'default',
`template_master` int(11) unsigned NOT NULL default '0',
`template_additional` varchar(255) NOT NULL default '',
- `created_at` datetime default NULL,
+ `created_at` bigint(20) DEFAULT NULL,
PRIMARY KEY (`client_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index 68e9b56911fc5783d3138b28b1e362031e4749a1..9808b8f536c520f5c65354e82e68a9c2e2581ae7 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -1,218 +1,220 @@
-auth->check_module_permissions('client');
-
-// Loading classes
-$app->uses('tpl,tform,tform_actions');
-$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_client 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 website.
- if($client["limit_client"] >= 0) {
- $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id");
- if($tmp["number"] >= $client["limit_client"]) {
- $app->error($app->tform->wordbook["limit_client_txt"]);
- }
- }
- }
-
- parent::onShowNew();
- }
-
-
- function onSubmit() {
- global $app, $conf;
-
- // we will check only users, not admins
- if($_SESSION["s"]["user"]["typ"] == 'user' && $this->id == 0) {
-
- // Get the limits of the client
- $client_group_id = $_SESSION["s"]["user"]["default_group"];
- $client = $app->db->queryOneRecord("SELECT limit_client 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 website.
- if($client["limit_client"] >= 0) {
- $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id");
- if($tmp["number"] >= $client["limit_client"]) {
- $app->error($app->tform->wordbook["limit_client_txt"]);
- }
- }
- }
-
- parent::onSubmit();
- }
-
-
- function onShowEnd() {
-
- global $app;
-
- $sql = "SELECT template_id,template_name FROM client_template WHERE template_type = 'a'";
- $tpls = $app->db->queryAllRecords($sql);
- $option = '';
- $tpl = array();
- foreach($tpls as $item){
- $option .= '';
- $tpl[$item['template_id']] = $item['template_name'];
- }
- $app->tpl->setVar('tpl_add_select',$option);
-
- $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
- $result = $app->db->queryOneRecord($sql);
- $tplAdd = explode("/", $result['template_additional']);
- $text = '';
- foreach($tplAdd as $item){
- if (trim($item) != ''){
- if ($text != '') $text .= '
';
- $text .= $tpl[$item];
- }
- }
-
- $app->tpl->setVar('template_additional_list', $text);
-
- parent::onShowEnd();
-
- }
-
- /*
- This function is called automatically right after
- the data was successful inserted in the database.
- */
- function onAfterInsert() {
- global $app;
- // Create the group for the client
- $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('".mysql_real_escape_string($this->dataRecord["username"])."','',".$this->id.")", 'groupid');
- $groups = $groupid;
-
- $username = $app->db->quote($this->dataRecord["username"]);
- $password = $app->db->quote($this->dataRecord["password"]);
- $modules = ISPC_INTERFACE_MODULES_ENABLED;
- if($this->dataRecord["limit_client"] > 0) $modules .= ',client';
- $startmodule = 'mail';
- $usertheme = $app->db->quote($this->dataRecord["usertheme"]);
- $type = 'user';
- $active = 1;
- $language = $app->db->quote($this->dataRecord["language"]);
-
- // Create the controlpaneluser for the client
- $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id)
- VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,".$this->id.")";
- $app->db->query($sql);
-
- //* If the user who inserted the client is a reseller (not admin), we will have to add this new client group
- //* to his groups, so he can administrate the records of this client.
- if($_SESSION['s']['user']['typ'] == 'user') {
- $app->auth->add_group_to_user($_SESSION['s']['user']['userid'],$groupid);
- $app->db->query("UPDATE client SET parent_client_id = ".intval($_SESSION['s']['user']['client_id'])." WHERE client_id = ".$this->id);
- }
-
- /* If there is a client-template, process it */
- applyClientTemplates($this->id);
-
- parent::onAfterInsert();
- }
-
-
- /*
- This function is called automatically right after
- the data was successful updated in the database.
- */
- function onAfterUpdate() {
- global $app;
-
- // username changed
- if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
- $username = $app->db->quote($this->dataRecord["username"]);
- $client_id = $this->id;
- $sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id";
- $app->db->query($sql);
-
- $tmp = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = $client_id");
- $app->db->datalogUpdate("sys_group", "name = '$username'", 'groupid', $tmp['groupid']);
- unset($tmp);
- }
-
- // password changed
- if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
- $password = $app->db->quote($this->dataRecord["password"]);
- $client_id = $this->id;
- $sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id";
- $app->db->query($sql);
- }
-
- // reseller status changed
- if(isset($this->dataRecord["limit_client"]) && $this->dataRecord["limit_client"] != $this->oldDataRecord["limit_client"]) {
- $modules = ISPC_INTERFACE_MODULES_ENABLED;
- if($this->dataRecord["limit_client"] > 0) $modules .= ',client';
- $modules = $app->db->quote($modules);
- $client_id = $this->id;
- $sql = "UPDATE sys_user SET modules = '$modules' WHERE client_id = $client_id";
- $app->db->query($sql);
- }
- /*
- * If there is a client-template, process it */
- applyClientTemplates($this->id);
-
- parent::onAfterUpdate();
- }
-}
-
-$page = new page_action;
-$page->onLoad();
-
+auth->check_module_permissions('client');
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$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_client 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 website.
+ if($client["limit_client"] >= 0) {
+ $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id");
+ if($tmp["number"] >= $client["limit_client"]) {
+ $app->error($app->tform->wordbook["limit_client_txt"]);
+ }
+ }
+ }
+
+ parent::onShowNew();
+ }
+
+
+ function onSubmit() {
+ global $app, $conf;
+
+ // we will check only users, not admins
+ if($_SESSION["s"]["user"]["typ"] == 'user' && $this->id == 0) {
+
+ // Get the limits of the client
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ $client = $app->db->queryOneRecord("SELECT limit_client 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 website.
+ if($client["limit_client"] >= 0) {
+ $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id");
+ if($tmp["number"] >= $client["limit_client"]) {
+ $app->error($app->tform->wordbook["limit_client_txt"]);
+ }
+ }
+ }
+
+ parent::onSubmit();
+ }
+
+
+ function onShowEnd() {
+
+ global $app;
+
+ $sql = "SELECT template_id,template_name FROM client_template WHERE template_type = 'a'";
+ $tpls = $app->db->queryAllRecords($sql);
+ $option = '';
+ $tpl = array();
+ foreach($tpls as $item){
+ $option .= '';
+ $tpl[$item['template_id']] = $item['template_name'];
+ }
+ $app->tpl->setVar('tpl_add_select',$option);
+
+ $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
+ $result = $app->db->queryOneRecord($sql);
+ $tplAdd = explode("/", $result['template_additional']);
+ $text = '';
+ foreach($tplAdd as $item){
+ if (trim($item) != ''){
+ if ($text != '') $text .= '
';
+ $text .= $tpl[$item];
+ }
+ }
+
+ $app->tpl->setVar('template_additional_list', $text);
+
+ parent::onShowEnd();
+
+ }
+
+ /*
+ This function is called automatically right after
+ the data was successful inserted in the database.
+ */
+ function onAfterInsert() {
+ global $app;
+ // Create the group for the client
+ $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('".mysql_real_escape_string($this->dataRecord["username"])."','',".$this->id.")", 'groupid');
+ $groups = $groupid;
+
+ $username = $app->db->quote($this->dataRecord["username"]);
+ $password = $app->db->quote($this->dataRecord["password"]);
+ $modules = ISPC_INTERFACE_MODULES_ENABLED;
+ if($this->dataRecord["limit_client"] > 0) $modules .= ',client';
+ $startmodule = 'mail';
+ $usertheme = $app->db->quote($this->dataRecord["usertheme"]);
+ $type = 'user';
+ $active = 1;
+ $language = $app->db->quote($this->dataRecord["language"]);
+
+ // Create the controlpaneluser for the client
+ $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id)
+ VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,".$this->id.")";
+ $app->db->query($sql);
+
+ //* If the user who inserted the client is a reseller (not admin), we will have to add this new client group
+ //* to his groups, so he can administrate the records of this client.
+ if($_SESSION['s']['user']['typ'] == 'user') {
+ $app->auth->add_group_to_user($_SESSION['s']['user']['userid'],$groupid);
+ $app->db->query("UPDATE client SET parent_client_id = ".intval($_SESSION['s']['user']['client_id'])." WHERE client_id = ".$this->id);
+ }
+
+ $app->db->query("UPDATE client SET created_at = ".time()." WHERE client_id = ".$this->id);
+
+ /* If there is a client-template, process it */
+ applyClientTemplates($this->id);
+
+ parent::onAfterInsert();
+ }
+
+
+ /*
+ This function is called automatically right after
+ the data was successful updated in the database.
+ */
+ function onAfterUpdate() {
+ global $app;
+
+ // username changed
+ if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
+ $username = $app->db->quote($this->dataRecord["username"]);
+ $client_id = $this->id;
+ $sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id";
+ $app->db->query($sql);
+
+ $tmp = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = $client_id");
+ $app->db->datalogUpdate("sys_group", "name = '$username'", 'groupid', $tmp['groupid']);
+ unset($tmp);
+ }
+
+ // password changed
+ if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
+ $password = $app->db->quote($this->dataRecord["password"]);
+ $client_id = $this->id;
+ $sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id";
+ $app->db->query($sql);
+ }
+
+ // reseller status changed
+ if(isset($this->dataRecord["limit_client"]) && $this->dataRecord["limit_client"] != $this->oldDataRecord["limit_client"]) {
+ $modules = ISPC_INTERFACE_MODULES_ENABLED;
+ if($this->dataRecord["limit_client"] > 0) $modules .= ',client';
+ $modules = $app->db->quote($modules);
+ $client_id = $this->id;
+ $sql = "UPDATE sys_user SET modules = '$modules' WHERE client_id = $client_id";
+ $app->db->query($sql);
+ }
+ /*
+ * If there is a client-template, process it */
+ applyClientTemplates($this->id);
+
+ parent::onAfterUpdate();
+ }
+}
+
+$page = new page_action;
+$page->onLoad();
+
?>
\ No newline at end of file