Hola chicos,
necesito hacer la siguiente lógica:
Usuarios:
-admin : puede ver todos los clientes
-emisor : puede ver solo sus clientes y los de sus subemisores
-subemisor: solo puede ver sus clientes
actualmente mi BD tabla usuario guarda el tipo de usuario, pero nose como puedo hacer la logica, que campo necesito crear y llevarme para despues con php mediante una consulta , al ver los certificados traiga para el emisor los suyos y los de sus sub-emisores .....
Contexto actual:
Cada usuario crea clientes, solo el usuario tipo administrador puede ver todos los clientes creados... los demas tipos de usuarios solo pueden ver los usuarios creados por ellos mismos....
BD usuario : idcli (id del cliente) usuario (nombre del usuario)
BD cliente : idusu (id del usuario) id_usuario_creador (id del usuario que creo el cliente) nombre_usuario (nombre del usuario que lo creo)
este es mi index actual (el cual hasta ahora solo muestra al administrador todos los clientes, y a los demas tipos de usuarios sus propios clientes)
<?php
// Iniciar sesión
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// Incluir archivos necesarios
include("../seguridad.php");
include("../central/header.php");
include_once("../conexion/clsConexion.php");
// Obtener el nombre de usuario desde la sesión
$nombre_usuario = isset($_SESSION['usuario']) ? $_SESSION['usuario'] : '';
// Obtener el tipo de usuario de la sesión
$tipo_usuario = isset($_SESSION['tipo']) ? $_SESSION['tipo'] : '';
// Verificar si el nombre de usuario está definido
if (!empty($nombre_usuario)) {
$obj = new clsConexion();
$result = $obj->consultar("SELECT idusu FROM usuario WHERE usuario = '" . $obj->real_escape_string($nombre_usuario) . "'");
$id_usuario_creador = !empty($result) ? $result[0]['idusu'] : 0; // Obtener el ID del usuario, si existe
} else {
$id_usuario_creador = 0; // Valor por defecto si no hay usuario en sesión
}
// Asegúrate de que la conexión a la base de datos esté correctamente inicializada
$objcliente = new clsConexion();
// Escapar ID de usuario
$id_usuario_creador = $objcliente->real_escape_string($id_usuario_creador);
// Consulta SQL para obtener los clientes según el tipo de usuario
$query = "
SELECT cliente.idcli, cliente.nombre, cliente.num_docucli, cliente.direccion, cliente.telefono
FROM cliente
WHERE id_usuario_creador = '$id_usuario_creador'
";
// Imprimir la consulta para depuración
echo "Consulta SQL: " . $query . "<br>";
// Ejecutar la consulta
$result = $objcliente->consultar($query);
// Verificar si hay un error en la consulta
if (!$result) {
die("Error en la consulta: " . $objcliente->conexion->error);
}
?>
<div class="content-wrapper">
<section class="content">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title"><b>CLIENTES</b></h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
<button class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-header">
<a href="insertar.php" class="btn btn-primary btn-flat"><i class="fa fa-user-plus"></i> Registrar Nuevo Cliente</a>
</div>
<div class="box-body">
<table id="example1" class="table table-striped table-bordered table-hover">
<thead>
<tr class="tableheader">
<th>Nombres</th>
<th>Num-Documento</th>
<th>Dirección</th>
<th>Teléfono</th>
<?php if ($tipo_usuario == 'administrador') { ?>
<th>Usuario Creador</th>
<th>Editar</th>
<th>Eliminar</th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
if (empty($result)) {
echo "<tr><td colspan='" . ($tipo_usuario == 'administrador' ? 7 : 4) . "'>No se encontraron clientes.</td></tr>";
} else {
foreach ($result as $row) { ?>
<tr>
<td><?php echo htmlspecialchars($row['nombre'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['num_docucli'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['direccion'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['telefono'], ENT_QUOTES, 'UTF-8'); ?></td>
<?php if ($tipo_usuario == 'administrador') { ?>
<td><?php echo htmlspecialchars($row['creador'], ENT_QUOTES, 'UTF-8'); ?></td>
<td>
<a href='actualizar.php?idcli=<?php echo $row['idcli']; ?>' class='btn btn-default btn-sm btn-icon icon-left'>
<i class="fa fa-pencil-square-o"></i> Editar
</a>
</td>
<td>
<button type="button" name="eliminar" id="<?php echo $row['idcli']; ?>" class='btn btn-danger btn-sm btn-icon icon-left eliminar'>
<i class="fa fa-trash"></i> Eliminar
</button>
</td>
<?php } ?>
</tr>
<?php }
} ?>
</tbody>
</table>
<!-- /.box-body -->
</div>
</div>
<!-- /.box -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<?php include("../central/footer.php"); ?>
<script>
$(document).on('click', '.eliminar', function(){
var id = $(this).attr("id");
bootbox.confirm('¿Realmente desea eliminar?', function(result){
if(result) {
$.ajax({
url: "eliminar.php",
method: "POST",
data: {id: id},
success: function(data) {
location.reload(true);
}
});
}
});
});
$(function () {
$('#example1').DataTable({
responsive: true,
autoWidth: false,
"order": [[ 0, "desc" ]] // Ordenar (columna,orden)
});
});
</script>
</body>
</html>