From cc99cdff8ff86b3fbe8eb4261bfaddb86fbec3ec Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 19 Oct 2012 07:49:52 -0400
Subject: [PATCH] - Improved cron and ssh user plugins. - Added "touch" function to system.inc.php
---
interface/lib/classes/remoting.inc.php | 107 ++++++++++++++++++++++++++++++-----------------------
1 files changed, 61 insertions(+), 46 deletions(-)
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index 8efecc8..269a5cb 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -1023,11 +1023,11 @@
return false;
}
- $sys_userid = intval($sys_userid);
+ $sys_userid = $app->functions->intval($sys_userid);
$rec = $app->db->queryOneRecord("SELECT client_id FROM sys_user WHERE userid = ".$sys_userid);
if(isset($rec['client_id'])) {
- return intval($rec['client_id']);
+ return $app->functions->intval($rec['client_id']);
} else {
$this->server->fault('no_client_found', 'There is no sysuser account for this client ID.');
return false;
@@ -1043,11 +1043,11 @@
return false;
}
- $client_id = intval($client_id);
+ $client_id = $app->functions->intval($client_id);
$rec = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client_id);
if(isset($rec['groupid'])) {
- return intval($rec['groupid']);
+ return $app->functions->intval($rec['groupid']);
} else {
$this->server->fault('no_group_found', 'There is no group for this client ID.');
return false;
@@ -1063,7 +1063,8 @@
$this->server->fault('permission_denied','You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->klientadd('../client/form/client.tform.php',$reseller_id, $params);
+ if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id;
+ $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php',$reseller_id, $params);
return $affected_rows;
}
@@ -1077,7 +1078,8 @@
$this->server->fault('permission_denied','You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->updateQuery('../client/form/client.tform.php', $reseller_id, $client_id, $params);
+ if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id;
+ $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update');
$app->remoting_lib->ispconfig_sysuser_update($params,$client_id);
@@ -1110,12 +1112,12 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $client_id = intval($client_id);
+ $client_id = $app->functions->intval($client_id);
$client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id");
$tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic';
$tables_array = explode(',',$tables);
- $client_group_id = intval($client_group['groupid']);
+ $client_group_id = $app->functions->intval($client_group['groupid']);
$table_list = array();
if($client_group_id > 1) {
@@ -1131,7 +1133,7 @@
if($client_id > 0) {
// remove the group of the client from the resellers group
- $parent_client_id = intval($this->dataRecord['parent_client_id']);
+ $parent_client_id = $app->functions->intval($this->dataRecord['parent_client_id']);
$parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id");
$client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id");
$app->auth->remove_group_from_user($parent_user['userid'],$client_group['groupid']);
@@ -1145,7 +1147,7 @@
// Delete all records (sub-clients, mail, web, etc....) of this client.
$tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic';
$tables_array = explode(',',$tables);
- $client_group_id = intval($client_group['groupid']);
+ $client_group_id = $app->functions->intval($client_group['groupid']);
if($client_group_id > 1) {
foreach($tables_array as $table) {
if($table != '') {
@@ -1253,8 +1255,17 @@
//* Add a record
public function sites_database_add($session_id, $client_id, $params)
{
+ global $app;
+
if(!$this->checkPerm($session_id, 'sites_database_add')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ //* Check for duplicates
+ $tmp = $app->db->queryOneRecord("SELECT count(database_id) as dbnum FROM web_database WHERE database_name = '".$app->db->quote($params['database_name'])."' AND server_id = '".intval($params["server_id"])."'");
+ if($tmp['dbnum'] > 0) {
+ $this->server->fault('database_name_error_unique', 'There is already a database with that name on the same server.');
return false;
}
@@ -1275,6 +1286,8 @@
//* Update a record
public function sites_database_update($session_id, $client_id, $primary_id, $params)
{
+ global $app;
+
if(!$this->checkPerm($session_id, 'sites_database_update')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
@@ -1296,6 +1309,7 @@
//* Delete a record
public function sites_database_delete($session_id, $primary_id)
{
+ global $app;
if(!$this->checkPerm($session_id, 'sites_database_delete')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
@@ -1500,7 +1514,7 @@
}
if(!isset($params['client_group_id']) or (isset($params['client_group_id']) && empty($params['client_group_id']))) {
- $rec = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".intval($client_id));
+ $rec = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($client_id));
$params['client_group_id'] = $rec['groupid'];
}
@@ -1762,7 +1776,7 @@
}
// Delete all users that belong to this folder. - taken from web_folder_delete.php
- $records = $app->db->queryAllRecords("SELECT web_folder_user_id FROM web_folder_user WHERE web_folder_id = '".intval($primary_id)."'");
+ $records = $app->db->queryAllRecords("SELECT web_folder_user_id FROM web_folder_user WHERE web_folder_id = '".$app->functions->intval($primary_id)."'");
foreach($records as $rec) {
$this->deleteQuery('../sites/form/web_folder_user.tform.php',$rec['web_folder_user_id']);
//$app->db->datalogDelete('web_folder_user','web_folder_user_id',$rec['web_folder_user_id']);
@@ -1833,7 +1847,7 @@
return false;
}
$app->uses('remoting_lib');
- $app->remoting_lib->loadFormDef('../domain/form/domain.tform.php');
+ $app->remoting_lib->loadFormDef('../client/form/domain.tform.php');
return $app->remoting_lib->getDataRecord($primary_id);
}
@@ -1844,7 +1858,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- return $this->insertQuery('../domain/form/domain.tform.php',$client_id,$params);
+ return $this->insertQuery('../client/form/domain.tform.php',$client_id,$params);
}
//* Delete a record
@@ -1854,7 +1868,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->deleteQuery('../domain/form/domain.tform.php',$primary_id);
+ $affected_rows = $this->deleteQuery('../client/form/domain.tform.php',$primary_id);
return $affected_rows;
}
@@ -1867,7 +1881,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $group_id = intval($group_id);
+ $group_id = $app->functions->intval($group_id);
$sql = "SELECT domain_id, domain FROM domain WHERE sys_groupid = $group_id ";
$all = $app->db->queryAllRecords($sql);
return $all;
@@ -1885,7 +1899,7 @@
return false;
}
- $client = $app->db->queryOneRecord("SELECT default_dnsserver FROM client WHERE client_id = ".intval($client_id));
+ $client = $app->db->queryOneRecord("SELECT default_dnsserver FROM client WHERE client_id = ".$app->functions->intval($client_id));
$server_id = $client["default_dnsserver"];
$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = '$template_id'");
$fields = explode(',',$template_record['fields']);
@@ -1952,7 +1966,7 @@
if($error == '') {
// Insert the soa record
- $tmp = $app->db->queryOneRecord("SELECT userid,default_group FROM sys_user WHERE client_id = ".intval($client_id));
+ $tmp = $app->db->queryOneRecord("SELECT userid,default_group FROM sys_user WHERE client_id = ".$app->functions->intval($client_id));
$sys_userid = $tmp['userid'];
$sys_groupid = $tmp['default_group'];
unset($tmp);
@@ -2017,7 +2031,7 @@
$rec = $app->db->queryOneRecord("SELECT id FROM dns_soa WHERE origin like '".$origin.'%');
if(isset($rec['id'])) {
- return intval($rec['id']);
+ return $app->functions->intval($rec['id']);
} else {
$this->server->fault('no_domain_found', 'There is no domain ID with informed domain name.');
return false;
@@ -2612,13 +2626,6 @@
//* load the user profile of the client
$app->remoting_lib->loadUserProfile($reseller_id);
- //* load the client template
- if(isset($params['template_master']) and $params['template_master'] > 0)
- {
- $template=$app->db->queryOneRecord("SELECT * FROM client_template WHERE template_id=".intval($params['template_master']));
- if(is_array($template)) $params=array_merge($params,$template);
- }
-
//* Get the SQL query
$sql = $app->remoting_lib->getSQL($params,'INSERT',0);
@@ -2647,7 +2654,7 @@
$this->id = $insert_id;
$this->dataRecord = $params;
- $app->plugin->raiseEvent('client:client:on_after_insert',$this);
+ $app->plugin->raiseEvent('client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_insert',$this);
/*
if($app->db->errorMessage != '') {
@@ -2656,6 +2663,12 @@
}
*/
+ /* copied from the client_edit php */
+ exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f /tmp/id_rsa -N ""');
+ $app->db->query("UPDATE client SET created_at = ".time().", id_rsa = '".$app->db->quote(@file_get_contents('/tmp/id_rsa'))."', ssh_rsa = '".$app->db->quote(@file_get_contents('/tmp/id_rsa.pub'))."' WHERE client_id = ".$this->id);
+ exec('rm -f /tmp/id_rsa /tmp/id_rsa.pub');
+
+
//$app->uses('tform');
//* Save changes to Datalog
@@ -2678,7 +2691,7 @@
protected function insertQuery($formdef_file, $client_id, $params,$event_identifier = '')
{
$sql = $this->insertQueryPrepare($formdef_file, $client_id, $params);
- if($sql !== false) return $this->insertQueryExecute($sql, $params,$event_identifier = '');
+ if($sql !== false) return $this->insertQueryExecute($sql, $params,$event_identifier);
else return false;
}
@@ -2700,7 +2713,7 @@
$this->server->fault('data_processing_error', $app->remoting_lib->errorMessage);
return false;
}
-
+ $app->log('Executed insertQueryPrepare', LOGLEVEL_DEBUG);
return $sql;
}
@@ -2722,7 +2735,7 @@
// set a few values for compatibility with tform actions, mostly used by plugins
$this->id = $insert_id;
$this->dataRecord = $params;
-
+ $app->log('Executed insertQueryExecute, raising events now if any: ' . $event_identifier, LOGLEVEL_DEBUG);
if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this);
//$app->uses('tform');
@@ -2739,7 +2752,7 @@
global $app;
$sql = $this->updateQueryPrepare($formdef_file, $client_id, $primary_id, $params);
- if($sql !== false) return $this->updateQueryExecute($sql, $primary_id, $params,$event_identifier = '');
+ if($sql !== false) return $this->updateQueryExecute($sql, $primary_id, $params,$event_identifier);
else return false;
}
@@ -2787,6 +2800,7 @@
}
$affected_rows = $app->db->affectedRows();
+ $app->log('Executed updateQueryExecute, raising events now if any: ' . $event_identifier, LOGLEVEL_DEBUG);
if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this);
@@ -2817,6 +2831,7 @@
$this->oldDataRecord = $old_rec;
$this->id = $primary_id;
$this->dataRecord = $old_rec;
+ $app->log('Executed deleteQuery, raising events now if any: ' . $event_identifier, LOGLEVEL_DEBUG);
//$this->dataRecord = $params;
//* Get the SQL query
@@ -2901,11 +2916,11 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $sys_userid = intval($sys_userid);
+ $sys_userid = $app->functions->intval($sys_userid);
$sys_groupid = explode(',', $sys_groupid);
$new_group = array();
foreach($sys_groupid as $group_id) {
- $new_group[] = intval( $group_id);
+ $new_group[] = $app->functions->intval( $group_id);
}
$group_list = implode(',', $new_group);
$sql ="SELECT domain, domain_id, document_root, active FROM web_domain WHERE ( (sys_userid = $sys_userid AND sys_perm_user LIKE '%r%') OR (sys_groupid IN ($group_list) AND sys_perm_group LIKE '%r%') OR sys_perm_other LIKE '%r%') AND type = 'vhost'";
@@ -2939,7 +2954,7 @@
} else {
$status = 'n';
}
- $sql = "UPDATE web_domain SET active = '$status' WHERE domain_id = ".intval($primary_id);
+ $sql = "UPDATE web_domain SET active = '$status' WHERE domain_id = ".$app->functions->intval($primary_id);
$app->db->query($sql);
$result = $app->db->affectedRows();
return $result;
@@ -3009,7 +3024,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $client_id = intval($client_id);
+ $client_id = $app->functions->intval($client_id);
$client = $app->db->queryOneRecord("SELECT client_id FROM client WHERE client_id = ".$client_id);
if($client['client_id'] > 0) {
$new_password = $app->db->quote($new_password);
@@ -3072,7 +3087,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $client_id = intval($client_id);
+ $client_id = $app->functions->intval($client_id);
$sql = "SELECT d.database_id, d.database_name, d.database_user_id, d.database_ro_user_id, du.database_user, du.database_password FROM web_database d LEFT JOIN web_database_user du ON (du.database_user_id = d.database_user_id) INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id";
$all = $app->db->queryAllRecords($sql);
return $all;
@@ -3105,8 +3120,8 @@
return false;
}
if (!empty($client_id) && !empty($server_id)) {
- $server_id = intval($server_id);
- $client_id = intval($client_id);
+ $server_id = $app->functions->intval($server_id);
+ $client_id = $app->functions->intval($client_id);
$sql = "SELECT id, origin FROM dns_soa d INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id AND server_id = $server_id";
$result = $app->db->queryAllRecords($sql);
return $result;
@@ -3126,7 +3141,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $sql = "SELECT * FROM dns_rr WHERE zone = ".intval($zone_id);;
+ $sql = "SELECT * FROM dns_rr WHERE zone = ".$app->functions->intval($zone_id);;
$result = $app->db->queryAllRecords($sql);
return $result;
}
@@ -3151,7 +3166,7 @@
} else {
$status = 'N';
}
- $sql = "UPDATE dns_soa SET active = '$status' WHERE id = ".intval($primary_id);
+ $sql = "UPDATE dns_soa SET active = '$status' WHERE id = ".$app->functions->intval($primary_id);
$app->db->query($sql);
$result = $app->db->affectedRows();
return $result;
@@ -3173,7 +3188,7 @@
} else {
$status = 'n';
}
- $sql = "UPDATE mail_domain SET active = '$status' WHERE domain_id = ".intval($primary_id);
+ $sql = "UPDATE mail_domain SET active = '$status' WHERE domain_id = ".$app->functions->intval($primary_id);
$app->db->query($sql);
$result = $app->db->affectedRows();
return $result;
@@ -3300,7 +3315,7 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $server_id = intval($server_id);
+ $server_id = $app->functions->intval($server_id);
if($server_id > 0) {
$tmp = $app->db->queryOneRecord("SELECT ip_address_id, server_id, ip_address FROM openvz_ip WHERE reserved = 'n' AND vm_id = 0 AND server_id = $server_id LIMIT 0,1");
@@ -3372,9 +3387,9 @@
}
if (!empty($client_id)) {
- $client_id = intval($client_id);
+ $client_id = $app->functions->intval($client_id);
$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id");
- $sql = "SELECT * FROM openvz_vm WHERE sys_groupid = ".intval($tmp['groupid']);
+ $sql = "SELECT * FROM openvz_vm WHERE sys_groupid = ".$app->functions->intval($tmp['groupid']);
$result = $app->db->queryAllRecords($sql);
return $result;
}
@@ -3402,8 +3417,8 @@
}
- $template_id = intval($template_id);
- $ostemplate_id = intval($ostemplate_id);
+ $template_id = $app->functions->intval($template_id);
+ $ostemplate_id = $app->functions->intval($ostemplate_id);
//* Verify parameters
if($template_id == 0) {
--
Gitblit v1.9.1