Explorar el Código

Control de usuarios, correcto. Que no se insertara el sys_userid y sys_groupid correctamente era por que no se ejecutaban los plugins. Se ha tomado el código de estos plugins y se han añadido como funciones propias de WebDNS. Hay un problema con en control de limitaciones con los reventas.

develop
David Ramos hace 8 años
padre
commit
5098f84459
Se han modificado 2 ficheros con 62 adiciones y 13 borrados
  1. +59
    -12
      new_service_webdns.php
  2. +3
    -1
      templates/new_service_webdns.htm

+ 59
- 12
new_service_webdns.php Ver fichero

@@ -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 = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
//$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 .= "<option value='$rec[groupid]' $selected>$rec[contactname]</option>\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 "<br>". $this->pass_db_txt;
//print "<pre>"; print_r($fields); print "</pre>\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 "<pre>Valores : "; print_r($this->cli_id); print "</pre>\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;
}


+ 3
- 1
templates/new_service_webdns.htm Ver fichero

@@ -15,12 +15,14 @@
</div>
</tmpl_if>
<tmpl_if name="is_reseller">
<tmpl_unless name="domain_option">
<div class="form-group">
<label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
<div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
{tmpl_var name='client_group_id'}
</select></div>
</div>
</div>
</tmpl_unless>
</tmpl_if>
<!--div class="col-sm-9">


Cargando…
Cancelar
Guardar