Acceder a gestión de usuarios
Desde el menú lateral, navega a Configuración (visible únicamente para administradores) y luego haz clic en el botón Gestionar de la sección Gestión de Usuarios. Esto cargagestion_usuarios.php.
Lista de usuarios
Al abrir la página, la funciónobtenerUsuarios() consulta la tabla usuarios y muestra todos los registros en una tabla con las siguientes columnas:
| Columna | Campo en BD | Notas |
|---|---|---|
| Cédula | cedula | Clave primaria, varchar(20) |
| Nombre completo | nombres + apellidos | Concatenados con espacio |
email | varchar(100) | |
| Rol | rol | enum('Administrador','Usuario') |
| Estado | activo | Muestra badge verde Activo o rojo Inactivo |
| Acción | — | Enlace a edición del registro |
El código detecta automáticamente los nombres de columna reales con
SHOW COLUMNS FROM usuarios antes de ejecutar cualquier consulta. Esto hace que la página tolere variaciones de esquema.Estructura de la tabla usuarios
Crear un nuevo usuario
Haz clic en Crear Nuevo Usuario para cargar el formulario (?accion=crear). El formulario envía POST con accion=crear.
Completa los campos requeridos
Todos los campos marcados con asterisco son obligatorios.
Cédula
Campo
cedula. Entre 7 y 8 dígitos. Debe ser único — el sistema ejecuta un SELECT previo y lanza una excepción si ya existe.Nombre(s)
Campo
nombre del formulario, guardado en la columna nombres. Obligatorio.Apellido(s)
Campo
apellido del formulario, guardado en apellidos. Opcional pero recomendado.Correo electrónico
Campo
email. Validado con filter_var($email, FILTER_VALIDATE_EMAIL). Obligatorio.Rol
Selector entre
Administrador y Usuario. Obligatorio. Corresponde al enum de la BD.Contraseña
Campo
clave. Mínimo 8 caracteres. Nunca se almacena en texto plano — se aplica password_hash($clave, PASSWORD_DEFAULT) antes del INSERT.Estado del usuario
El checkbox Activo (
name="activo") viene marcado por defecto. Si se deja marcado, el valor insertado en activo es 1; si se desmarca, es 0.Validaciones del servidor al crear
Editar un usuario existente
Haz clic en Editar en la fila correspondiente. El sistema carga?accion=editar&cedula={cedula} y recupera el registro mediante una consulta preparada.
Campos editables
nombres— Nombre(s)apellidos— Apellido(s)email— Correo electrónicorol— Administrador / Usuarioactivo— Estado activo/inactivo
Campos no editables
Cédula — El campo se renderiza como
readonly y el valor real se pasa en un input oculto cedula_actual. La cédula nunca puede modificarse desde esta interfaz.POST con accion=actualizar. El servidor ejecuta:
El cambio de contraseña no está disponible en el formulario de edición de
gestion_usuarios.php. Solo el propio usuario puede cambiar su contraseña desde Perfil (perfil.php).Roles del sistema
Administrador
Acceso completo al sistema. Puede gestionar usuarios, ver la auditoría, exportar la base de datos y acceder a todas las funciones de configuración. La variable
$es_superusuario queda en true.Usuario
Acceso a las funciones operativas del inventario (registrar bienes, movimientos, reportes). No puede acceder a
gestion_usuarios.php, auditoria_sistema.php ni a las secciones administrativas de configuracion.php.Preguntas frecuentes
¿Se puede eliminar un usuario?
¿Se puede eliminar un usuario?
El formulario de gestión de usuarios no incluye un botón de eliminación. La práctica recomendada es desactivar el usuario estableciendo
activo = 0 mediante el checkbox de estado en el formulario de edición.¿Por qué la cédula no se puede editar?
¿Por qué la cédula no se puede editar?
La cédula es la clave primaria (
PRIMARY KEY) de la tabla usuarios y es referenciada como clave foránea en otras tablas (por ejemplo, movimientos.usuario_registro y auditoria.usuario_cedula). Cambiarla rompería la integridad referencial.¿Qué pasa si un usuario inactivo intenta iniciar sesión?
¿Qué pasa si un usuario inactivo intenta iniciar sesión?
El proceso de login verifica el campo
activo. Un usuario con activo = 0 no puede autenticarse y el intento queda registrado en la tabla auditoria.¿Cómo establece el administrador la contraseña inicial?
¿Cómo establece el administrador la contraseña inicial?
Al crear el usuario, el administrador define la contraseña en el campo
clave. El sistema la hashea con password_hash($clave, PASSWORD_DEFAULT) y la guarda en password_hash. El usuario debe cambiarla desde su perfil en el primer acceso.