From 5098f84459b5338a7f7ea1b4f8eba6206769ea94 Mon Sep 17 00:00:00 2001 From: David Ramos Date: Wed, 17 Jan 2018 18:53:08 +0100 Subject: [PATCH] =?UTF-8?q?Control=20de=20usuarios,=20correcto.=20Que=20no?= =?UTF-8?q?=20se=20insertara=20el=20sys=5Fuserid=20y=20sys=5Fgroupid=20cor?= =?UTF-8?q?rectamente=20era=20por=20que=20no=20se=20ejecutaban=20los=20plu?= =?UTF-8?q?gins.=20Se=20ha=20tomado=20el=20c=C3=B3digo=20de=20estos=20plug?= =?UTF-8?q?ins=20y=20se=20han=20a=C3=B1adido=20como=20funciones=20propias?= =?UTF-8?q?=20de=20WebDNS.=20Hay=20un=20problema=20con=20en=20control=20de?= =?UTF-8?q?=20limitaciones=20con=20los=20reventas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- new_service_webdns.php | 71 ++++++++++++++++++++++++++------ templates/new_service_webdns.htm | 4 +- 2 files changed, 62 insertions(+), 13 deletions(-) diff --git a/new_service_webdns.php b/new_service_webdns.php index 1de1ed8..7e5973a 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -102,6 +102,25 @@ class page_action extends tform_actions { } } $app->tpl->setVar("client_group_id", $client_select);*/ + //* Reseller: If the logged in user is not admin and has sub clients (reseller) + }elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.company_name, client.contact_name, client.client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +//echo('PRe antes2 ' . print_r($global_config)); + // Fill the client select field + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ? ORDER BY client.company_name, client.contact_name, sys_group.name"; + $records = $app->db->queryAllRecords($sql, $client['client_id']); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ?", $client['client_id']); + $client_select = ''; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($records)) { + foreach( $records as $rec) { + $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id", $client_select); } elseif($_SESSION["s"]["user"]["typ"] == 'admin') { // Fill the client select field $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY client.company_name, client.contact_name, sys_group.name"; @@ -203,7 +222,7 @@ class page_action extends tform_actions { } //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $this->valor_prefix = $fields['database_user_prefix']; + $this->valor_prefix = $dbuser_prefix; } } @@ -387,11 +406,12 @@ class page_action extends tform_actions { //print "
". $this->pass_db_txt; //print "
"; print_r($fields); print "
\n"; - // $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); + $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); //echo('El id ' . $this->id); $remoto2 = new remote_actions; + $remoto->sites_database_user_after_add($this->cli_grupo_id, $db_user_params); //echo(' El cliente en webdns ' . $this->cli_id); - $db_user_id = $remoto2->sites_database_user_add(1, $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); + //$db_user_id = $remoto2->sites_database_user_add(1, $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); /*$sql = "INSERT INTO web_database_user (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES (?, ?, ?, ?, ?, ?, ?)"; $app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr); */ @@ -580,8 +600,8 @@ class page_action extends tform_actions { $this->cli_id = $_SESSION["s"]["user"]["client_id"]; $this->cli_grupo_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); $this->sys_usuario_id = $_SESSION["s"]["user"]["sys_userid"]; - $this->sys_grupo_id = $this->cli_grupo_id;//$_SESSION["s"]["user"]["sys_groupid"]; - echo(' cli_id ' . $this->cli_id . ' cli_grupo_id ' . $this->cli_grupo_id . ' sys_usuario ' . $this->sys_usuario_id . ' sys_grupo ' . $this->sys_grupo_id); + $this->sys_grupo_id = $_SESSION["s"]["user"]["sys_groupid"]; + //echo('Es cliente cli_id ' . $this->cli_id . ' cli_grupo_id ' . $this->cli_grupo_id . ' sys_usuario ' . $this->sys_usuario_id . ' sys_grupo ' . $this->sys_grupo_id); } else { //Captura de los distintos ids del cliente y usuario de sistema. @@ -592,8 +612,10 @@ class page_action extends tform_actions { $this->cli_id = 0; $this->cli_grupo_id = 1; $this->sys_usuario_id = 1;//$this->cli_id; - $this->sys_grupo_id = 0; //$this->cli_grupo_id;//0 + $this->sys_grupo_id = 0; //$this->cli_grupo_id;//0 + //echo('Quien es ' . $_SESSION["s"]["user"]["typ"]); }else{ + //echo('Quien es else ' . $_SESSION["s"]["user"]["typ"]); $client = $app->db->queryOneRecord( 'SELECT sys_user.sys_userid, sys_user.sys_groupid, sys_user.default_group, sys_user.client_id FROM sys_group, sys_user @@ -602,11 +624,11 @@ class page_action extends tform_actions { $this->cli_id = $client['client_id']; $this->cli_grupo_id = $client['default_group']; $this->sys_usuario_id = $client['sys_userid']; - $this->sys_grupo_id = $client['client_id'];//$client['default_group'];//$client['sys_groupid']; + $this->sys_grupo_id = $this->cli_grupo_id;//$client['sys_groupid']; } } //print "
Valores : "; print_r($this->cli_id); print "
\n"; - print " cli_id " . $this->cli_id . ' cli_grupo ' . $this->cli_grupo_id . ' sys_usuario ' . $this->sys_usuario_id . ' sys grupo ' . $this->sys_grupo_id; + //print " cli_id " . $this->cli_id . ' cli_grupo ' . $this->cli_grupo_id . ' sys_usuario ' . $this->sys_usuario_id . ' sys grupo ' . $this->sys_grupo_id; } @@ -1653,6 +1675,31 @@ class remote_actions extends remoting { return $insert_id; } + public function sites_database_user_after_add($client_id, $params){ + global $app, $conf; + //echo('Plugeando'); + if($_SESSION["s"]["user"]["typ"] == 'user' /*&& isset($this->dataRecord["client_group_id"])*/) { + //$client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_id, $this->id); + } + if($_SESSION["s"]["user"]["typ"] == 'admin'/* && isset($this->dataRecord["client_group_id"])*/) { + //echo('Plugeando ' .$app->functions->intval($this->dataRecord["client_group_id"]) . ' y ' . $client_id . ' id ' . $this->id); + //$client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_id, $this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid'])/* && isset($this->dataRecord["client_group_id"])*/) { + //$client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_id, $this->id); + } + + $app->uses('sites_web_database_user_plugin'); + global $app; + //Register for the events + $app->plugin->registerEvent('sites:web_database_user:on_after_update', 'sites_web_database_user_plugin', 'sites_web_database_user_edit'); + $app->plugin->registerEvent('sites:web_database_user:on_after_insert', 'sites_web_database_user_plugin', 'sites_web_database_user_edit'); + + } + public function sites_database_user_add($session_id, $client_id, $params, $event_identifier = '') { global $app; /*if(!$this->checkPerm($session_id, 'sites_database_user_add')) { @@ -1746,18 +1793,18 @@ class remote_actions extends remoting { $this->id = 0; $this->dataRecord = $params; //$app->uses('sites_database_plugin'); - $app->sites_database_plugin->processDatabaseInsert($this); - + $retval = $this->insertQueryExecuteWebDNS($sql, $params); + $app->sites_database_plugin->processDatabaseInsert($this); // set correct values for backup_interval and backup_copies - if(isset($params['backup_interval']) || isset($params['backup_copies'])){ + /*if(isset($params['backup_interval']) || isset($params['backup_copies'])){ $sql_set = array(); if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'"; if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']); //$app->db->query("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval); $this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params); - } + }*/ return $retval; } diff --git a/templates/new_service_webdns.htm b/templates/new_service_webdns.htm index a1c5011..5315e7e 100755 --- a/templates/new_service_webdns.htm +++ b/templates/new_service_webdns.htm @@ -15,12 +15,14 @@ +
-
+ +