pandorafms/pandora_console/godmode/usuarios/configurar_usuarios.php

289 lines
13 KiB
PHP

<?php
// Pandora - The Free Monitoring System
// This code is protected by GPL license.
// Este codigo esta protegido por la licencia GPL.
// Sancho Lerena <slerena@gmail.com>, 2003-2006
// Raul Mateos <raulofpandora@gmail.com>, 2005-2006
// Load global vars
require("include/config.php");
if (comprueba_login() == 0)
if (give_acl($id_user, 0, "UM")==1) {
// Init. vars
$comentarios = "";
$direccion = "";
$telefono = "";
$password = "";
$id_usuario_mio = "";
$nombre_real = "";
$nivel = 0;
// Default is create mode (creacion)
$modo = "creacion";
if (isset($_GET["borrar_grupo"])){ // if modified some parameter
$grupo= entrada_limpia($_GET["borrar_grupo"]);
$query_del2="DELETE FROM tusuario_perfil WHERE id_up = ".$grupo;
$resq1=mysql_query($query_del2);
}
if (isset($_GET["id_usuario_mio"])){ // se ha modificado algun parametro de agente
$modo="edicion";
$id_usuario_mio = entrada_limpia($_GET["id_usuario_mio"]);
// Leemos los datos del usuario para mostrarlos en el formulario
$query1="SELECT * FROM tusuario WHERE id_usuario = '".$id_usuario_mio."'";
$resq1=mysql_query($query1);
$rowdup=mysql_fetch_array($resq1);
if (!$rowdup)
{
echo "<h3 class='error'>".$lang_label["user_error"]."</h3>";
echo "</table>";
include ("general/footer.php");
exit;
}
else
$password=$rowdup["password"];
$comentarios=$rowdup["comentarios"];
$direccion=$rowdup["direccion"];
$telefono=$rowdup["telefono"];
$nivel =$rowdup["nivel"];
$nombre_real=$rowdup["nombre_real"];
}
// Modificacion de un usuario
if (isset ($_POST["edicion"])){
// Se realiza la modificación
if (isset ($_POST["pass1"])){
$nombre = entrada_limpia($_POST["nombre"]);
$nombre_real=entrada_limpia($_POST["nombre_real"]);
$nombre_viejo = entrada_limpia($_POST["id_usuario_antiguo"]);
$password = entrada_limpia($_POST["pass1"]);
$password2 = entrada_limpia($_POST["pass2"]);
if ($password <> $password2){
echo "<h3 class='error'>".$lang_label["pass_nomatch"]."</h3>";
}
else {
if (isset($_POST["nivel"]))
$nivel = entrada_limpia($_POST["nivel"]);
$direccion = entrada_limpia($_POST["direccion"]);
$telefono = entrada_limpia($_POST["telefono"]);
$comentarios = entrada_limpia($_POST["comentarios"]);
if (dame_password($nombre_viejo)!=$password){
$password=md5($password);
$sql = "UPDATE tusuario set nombre_real ='".$nombre_real."', id_usuario ='".$nombre."', password = '".$password."', telefono ='".$telefono."', direccion ='".$direccion." ', nivel = '".$nivel."', comentarios = '".$comentarios."' WHERE id_usuario = '".$nombre_viejo."'";
}
else
$sql = "UPDATE tusuario set nombre_real ='".$nombre_real."', id_usuario ='".$nombre."', telefono ='".$telefono."', direccion ='".$direccion." ', nivel = '".$nivel."', comentarios = '".$comentarios."' WHERE id_usuario = '".$nombre_viejo."'";
$resq2=mysql_query($sql);
// Añadimos grupo
if (isset($_POST["grupo"]))
if ($_POST["grupo"] <> ""){
$grupo = $_POST["grupo"];
$perfil = $_POST["perfil"];
$id_usuario_edit = $_SESSION["id_usuario"];
$sql = "INSERT INTO tusuario_perfil (id_usuario,id_perfil,id_grupo,assigned_by) VALUES ('".$nombre."',$perfil,$grupo,'".$id_usuario_edit."')";
// echo "DEBUG:".$sql;
$resq2=mysql_query($sql);
}
$query1="SELECT * FROM tusuario WHERE id_usuario = '".$nombre."'";
$id_usuario_mio = $nombre;
$resq1=mysql_query($query1);
$rowdup=mysql_fetch_array($resq1);
$password=$rowdup["password"];
$comentarios=$rowdup["comentarios"];
$direccion=$rowdup["direccion"];
$telefono=$rowdup["telefono"];
$nivel = $rowdup["nivel"];
$nombre_real=$rowdup["nombre_real"];
$modo ="edicion";
echo "<h3 class='suc'>".$lang_label["update_user_ok"]."</h3>";
}
}
else {
echo "<h3 class='error'>".$lang_label["update_user_no"]."</h3>";
}
}
// Create user
if (isset($_GET["nuevo_usuario"])){
// Get data from POST
$nombre = entrada_limpia($_POST["nombre"]);
$password = entrada_limpia($_POST["pass1"]);
$password2 = entrada_limpia($_POST["pass2"]);
$nombre_real=entrada_limpia($_POST["nombre_real"]);
if ($password <> $password2){
echo "<h3 class='error'>".$lang_label["pass_nomatch"]."</h3>";
}
$direccion = entrada_limpia($_POST["direccion"]);
$telefono = entrada_limpia($_POST["telefono"]);
$comentarios = entrada_limpia($_POST["comentarios"]);
if (isset($_POST["nivel"]))
$nivel = entrada_limpia($_POST["nivel"]);
$password=md5($password);
$ahora = date("Y/m/d H:i:s");
$sql_insert = "insert into tusuario (id_usuario,direccion,password,telefono,fecha_registro,nivel,comentarios, nombre_real) values ('".$nombre."','".$direccion."','".$password."','".$telefono."','".$ahora."','".$nivel."','".$comentarios."','".$nombre_real."')";
$resq1=mysql_query($sql_insert);
if (! $resq1)
echo "<h3 class='error'>".$lang_label["create_user_no"]."</h3>";
else {
echo "<h3 class='suc'>".$lang_label["create_user_ok"]."</h3>";
}
$id_usuario_mio = $nombre;
$modo ="edicion";
}
echo "<h2>".$lang_label["user_management"]."</h2>";
if (isset($_GET["alta"])){
if ($_GET["alta"]==1){
echo "<h3>".$lang_label["create_user"]."</h3>";
}
}
if (isset($_GET["id_usuario_mio"]) OR isset($_GET["nuevo_usuario"])){
echo "<h3>".$lang_label["update_user"]."</h3>";
}
?>
<table width='500' cellpadding='3' cellspacing='3'>
<?php
if (isset($_GET["alta"]))
echo '<form name="user_mod" method="post" action="index.php?sec=gusuarios&sec2=godmode/usuarios/configurar_usuarios&nuevo_usuario=1"><tr><th rowspan=10 width=5>';
else
echo '<form name="user_mod" method="post" action="index.php?sec=gusuarios&sec2=godmode/usuarios/configurar_usuarios&id_usuario_mio='.$id_usuario_mio.'"><tr><th rowspan=12 width=5>';
?>
<tr><td class="datos"><?php echo $lang_label["id_user"] ?>
<td class="datos"><input type="text" name="nombre" value="<?php echo $id_usuario_mio ?>">
<tr><td class="datos"><?php echo $lang_label["real_name"] ?>
<td class="datos"><input type="text" name="nombre_real" value="<?php echo $nombre_real ?>">
<tr><td class="datos"><?php echo $lang_label["password"] ?>
<td class="datos"><input type="password" name="pass1" value="<?php echo $password ?>">
<tr><td class="datos"><?php echo $lang_label["password"] ?> - <?php echo $lang_label["confirmation"] ?>
<td class="datos"><input type="password" name="pass2" value="<?php echo $password ?>">
<tr><td class="datos">E-Mail
<td class="datos"><input type="text" name="direccion" size="40" value="<?php echo $direccion ?>">
<tr><td class="datos"><?php echo $lang_label["telefono"] ?>
<td class="datos"><input type="text" name="telefono" value="<?php echo $telefono ?>">
<tr><td class="datos"><?php echo $lang_label["global_profile"] ?>
<td class="datos">
<?php if ($nivel == "1"){
echo $lang_label["administrator"].'<input type="radio" class="chk" name="nivel" value="1" checked><a href="#" class="tip">&nbsp;<span>'.$help_label["users_msg1"].'</span></a>&nbsp;';
echo $lang_label["normal_user"].'<input type="radio" class="chk" name="nivel" value="0"><a href="#" class="tip">&nbsp;<span>'.$help_label["users_msg2"].'</span></a>';
} else {
echo $lang_label["administrator"].'<input type="radio" class="chk" name="nivel" value="1"><a href="#" class="tip">&nbsp;<span>'.$help_label["users_msg1"].'</span></a>&nbsp;';
echo $lang_label["normal_user"].'<input type="radio" class="chk" name="nivel" value="0" checked><a href="#" class="tip">&nbsp;<span>'.$help_label["users_msg2"].'</span></a>';
}
?>
<tr><td class="datos" colspan="2"><?php echo $lang_label["comments"] ?>
<tr><td class="datos" colspan="2"><textarea name="comentarios" cols="50" rows="4"><?php echo $comentarios ?></textarea>
<?php
if ($modo == "edicion") { // Solo se visualizan los grupos para usuarios existentes.
// Desplegable para el grupo
echo '<input type="hidden" name="edicion" value="1">';
echo '<input type="hidden" name="id_usuario_antiguo" value="'.$id_usuario_mio.'">';
echo '<tr><td class="datos">'.$lang_label["group_avail"].'<td class="datos"><select name="grupo">';
echo "<option value=''>".$lang_label["none"];
$sql1='SELECT * FROM tgrupo ORDER BY nombre';
$result=mysql_query($sql1);
while ($row=mysql_fetch_array($result)){
echo "<option value='".$row["id_grupo"]."'>".$row["nombre"];
}
echo '</select>';
echo "<tr><td class=datos>".$lang_label["profiles"];
echo "<td class=datos><select name='perfil'>";
$sql1='SELECT * FROM tperfil order by name';
$result=mysql_query($sql1);
while ($row=mysql_fetch_array($result)){
echo "<option value='".$row["id_perfil"]."'>".$row["name"];
}
echo '</select>';
// Show user profile / groups assigned
$sql1='SELECT * FROM tusuario_perfil WHERE id_usuario = "'.$id_usuario_mio.'"';
$result=mysql_query($sql1);
if (mysql_num_rows($result)){
echo "</table><br><table width='500' cellpadding='3' cellspacing='3' class=fon>";
echo '<tr><td colspan="2"><h3>'.$lang_label["listGroupUser"]."</h3>";
while ($row=mysql_fetch_array($result)){
echo '<tr><td class="datos">';
echo "<b style='margin-left:10px'>".dame_perfil($row["id_perfil"])."</b> / ";
echo "<b>".dame_grupo($row["id_grupo"])."</b>";
echo '<td class="datost"><a href="index.php?sec=gusuarios&sec2=godmode/usuarios/configurar_usuarios&id_usuario_mio='.$id_usuario_mio.'&borrar_grupo='.$row["id_up"].' " onClick="if (!confirm(\' '.$lang_label["are_you_sure"].'\')) return false;"><img border=0 src="images/cancel.gif"></a>';
}
}
else { echo '<tr><td></td></tr><tr><td class="red" colspan="2">'.$lang_label["no_profile"]; }
}
?>
<tr><td></td></tr><tr><td align="right" colspan="3">
<?php if (isset($_GET["alta"])){echo "<input name='crtbutton' type='submit' class='sub' value='".$lang_label["create"]."'>";}
else {echo "<input name='uptbutton' type='submit' class='sub' value='".$lang_label["update"]."'>";} ?>
</form>
</td></tr></table>
<br>
<h3><?php echo $lang_label["definedprofiles"] ?></h3>
<?php
echo "<table class=fon cellpadding=3 cellspacing=3 border=0><tr>
<th class='w180d'><font size=1>".$lang_label["profiles"]."
<th class='w40d'><font size=1>IR<a href='#' class='tip2'>&nbsp;<span>".$help_label["IR"]."</span></a>
<th class='w40d'><font size=1>IW<a href='#' class='tip2'>&nbsp;<span>".$help_label["IW"]."</span></a>
<th class='w40d'><font size=1>IM<a href='#' class='tip2'>&nbsp;<span>".$help_label["IM"]."</span></a>
<th class='w40d'><font size=1>AR<a href='#' class='tip2'>&nbsp;<span>".$help_label["AR"]."</span></a>
<th class='w40d'><font size=1>AW<a href='#' class='tip2'>&nbsp;<span>".$help_label["AW"]."</span></a>
<th class='w40d'><font size=1>LW<a href='#' class='tip2'>&nbsp;<span>".$help_label["LW"]."</span></a>
<th class='w40d'><font size=1>UM<a href='#' class='tip2'>&nbsp;<span>".$help_label["UM"]."</span></a>
<th class='w40d'><font size=1>DM<a href='#' class='tip2'>&nbsp;<span>".$help_label["DM"]."</span></a>
<th class='w40d'><font size=1>LM<a href='#' class='tip2'>&nbsp;<span>".$help_label["LM"]."</span></a>
<th class='w40d'><font size=1>PM<a href='#' class='tip2'>&nbsp;<span>".$help_label["PM"]."</span></a>";
$query_del1="SELECT * FROM tperfil";
$resq1=mysql_query($query_del1);
while ($rowdup=mysql_fetch_array($resq1)){
$id_perfil = $rowdup["id_perfil"];
$nombre=$rowdup["name"];
$incident_view = $rowdup["incident_view"];
$incident_edit = $rowdup["incident_edit"];
$incident_management = $rowdup["incident_management"];
$agent_view = $rowdup["agent_view"];
$agent_edit =$rowdup["agent_edit"];
$alert_edit = $rowdup["alert_edit"];
$user_management = $rowdup["user_management"];
$db_management = $rowdup["db_management"];
$alert_management = $rowdup["alert_management"];
$pandora_management = $rowdup["pandora_management"];
echo "<tr><td class=datos_id>".$nombre;
echo "<td class=datos>";
if ($incident_view == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($incident_edit == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($incident_management == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($agent_view == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($agent_edit == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($alert_edit == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($user_management == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($db_management == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($alert_management == 1) echo "<img src='images/ok.gif' border=0>";
echo "<td class=datos>";
if ($pandora_management == 1) echo "<img src='images/ok.gif' border=0>";
}
?>
<tr><td colspan='11'><div class='raya'></div></td></tr></table><br>
<?php
} // fin comprobacion seguridad pagina
else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access User Management");
require ("general/noaccess.php");
}
?>