auth->check_module_permissions('domain'); // Loading classes $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); //* load language file $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng'; include($lng_file); class page_action extends tform_actions { function onShowNew() { global $app, $conf, $wb; // Only admins can add domains, so we don't need any check $app->tpl->setVar($wb); parent::onShowNew(); } function onShowEnd() { global $app, $conf, $wb; if($_SESSION["s"]["user"]["typ"] == 'admin') { // Getting Clients of the user $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; $clients = $app->db->queryAllRecords($sql); $client_select = ''; if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= ""; $tmp_data_record = $app->tform->getDataRecord($this->id); if(is_array($clients)) { foreach( $clients as $client) { $selected = ($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; $client_select .= "\r\n"; } } $app->tpl->setVar("client_group_id",$client_select); } if($this->id > 0) { //* we are editing a existing record $app->tpl->setVar("edit_disabled", 1); } else { $app->tpl->setVar("edit_disabled", 0); } $app->tpl->setVar($wb); parent::onShowEnd(); } function onSubmit() { global $app, $conf, $wb; if($_SESSION["s"]["user"]["typ"] == 'admin') { if ($this->id == 0) { /* * We create a new record */ // Check if the user is empty if(isset($this->dataRecord['client_group_id']) && $this->dataRecord['client_group_id'] == 0) { $app->tform->errorMessage .= $wb['error_client_group_id_empty']; } //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); } else { /* * We edit a existing one, but there is nothing to edit */ $this->dataRecord = $app->tform->getDataRecord($this->id); } } else { if($this->id > 0) { /* * Clients may not edit anything, so we reset the old data */ $this->dataRecord = $app->tform->getDataRecord($this->id); } else { /* * clients may not create a new domain */ $app->error($wb['error_client_can_not_add_domain']); } } $app->tpl->setVar($wb); parent::onSubmit(); } function onAfterInsert() { global $app, $conf; // make sure that the record belongs to the client group and not the admin group when admin inserts it // also make sure that the user can not delete domain created by a admin 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 domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); } } } $page = new page_action; $page->onLoad(); ?>