auth->check_module_permissions('client');
if($_SESSION["s"]["user"]["typ"] != 'admin') die('Access only for administrators.');
// 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, $conf;
// Create the group for the reseller
$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 = $conf['interface_modules_enabled'] . ',client';
$startmodule = 'client';
$usertheme = $app->db->quote($this->dataRecord["usertheme"]);
$type = 'user';
$active = 1;
$language = $app->db->quote($this->dataRecord["language"]);
// Create the controlpaneluser for the reseller
$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);
//* set the number of clients to 1
$app->db->query("UPDATE client SET limit_client = 1 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, $conf;
// 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);
}
// language changed
if(isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
$language = $app->db->quote($this->dataRecord["language"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET language = '$language' 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 = $conf['interface_modules_enabled'] . ',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();
?>