# 👥 Usuarios y Roles del Sistema AAT

**Fecha**: 12 de Noviembre 2025  
**Estado**: ✅ Configurado

---

## 📊 Usuarios Actuales

| Email | Nombre | Rol Asignado | Estado |
|-------|--------|--------------|--------|
| `nesfab2007@gmail.com` | NESTOR FABIAN MEJIA REYES | **Super_Admin** | ✅ ACTIVO |
| `admin@aat.com` | Administrador AAT | **Super_Admin** | ⚠️ Contraseña desconocida |
| `evaluador@aat.com` | Evaluador de Desempeño | Sin roles | ⏸️ Inactivo |
| `empleado@aat.com` | Juan Pérez | Sin roles | ⏸️ Inactivo |
| `supervisor@aat.com` | María González | Sin roles | ⏸️ Inactivo |
| `fabian.mejia@utp.edu.co` | NESTOR FABIAN MEJIA REYES | Sin roles | ⏸️ Inactivo |

---

## 🔐 Usuario Principal

```
Email:    nesfab2007@gmail.com
Rol:      Super_Admin
Acceso:   Todos los módulos ✅
```

Este usuario tiene acceso completo a:
- ✅ Gestión de Usuarios, Roles y Permisos
- ✅ Formularios Dinámicos
- ✅ Empleados y RRHH
- ✅ Inventario y Activos
- ✅ Mantenimiento y SGI
- ✅ PQRSD y Reportes ORAC
- ✅ Todos los demás módulos

---

## 🛠️ Gestión de Roles

### Asignar roles a otros usuarios

```bash
php artisan tinker

# Asignar rol Admin_Formularios a evaluador
$user = User::where('email', 'evaluador@aat.com')->first();
$user->syncRoles(['Admin_Formularios']);

# Asignar rol Admin_RRHH a supervisor
$user = User::where('email', 'supervisor@aat.com')->first();
$user->syncRoles(['Admin_RRHH']);

# Asignar múltiples roles
$user = User::where('email', 'empleado@aat.com')->first();
$user->syncRoles(['Admin_Inventario', 'Operador_Inventario']);

exit
```

### Remover roles

```bash
php artisan tinker

$user = User::where('email', 'fabian.mejia@utp.edu.co')->first();
$user->syncRoles([]); // Sin roles

exit
```

### Ver roles de un usuario

```bash
php artisan tinker

$user = User::where('email', 'nesfab2007@gmail.com')->first();
echo $user->roles->pluck('name')->join(', ');

exit
```

---

## 📋 Roles Disponibles

| Rol | Descripción | Acceso |
|-----|-------------|--------|
| `Super_Admin` | Administrador supremo | Todo el sistema |
| `Admin` | Administrador general | Todo el sistema |
| `Admin_Sistema` | Admin de usuarios y permisos | Usuarios, Roles, Permisos |
| `Admin_Formularios` | Admin de formularios | Formularios Dinámicos |
| `Admin_Capacitaciones` | Admin de capacitaciones | Módulo de capacitaciones |
| `Admin_RRHH` | Admin de RRHH | Empleados, Permisos, Asistencia |
| `Admin_Inventario` | Admin de inventario | Activos, Categorías, Productos |
| `Admin_Mantenimiento` | Admin de mantenimiento | Mantenimiento, SGI, Anomalías |
| `Admin_Seguridad` | Admin de seguridad | Visitantes, Asistencia, Dispositivos |
| `Director_HSEQ` | Director HSEQ | PQRSD, Reportes ORAC |
| `Supervisor_RRHH` | Supervisor RRHH | Consulta empleados |
| `Operador_Inventario` | Operador inventario | Operación de inventario |
| `Tecnico_Mantenimiento` | Técnico mantenimiento | Registros de mantenimiento |
| `Responsable_ORAC` | Responsable ORAC | Gestión ORAC |
| `Usuario_PQRSD` | Usuario PQRSD | Crear/ver PQRSD |
| `Observador_Entrenamientos` | Observador | Solo lectura capacitaciones |
| `Observador` | Observador general | Solo lectura |
| `Empleado` | Empleado base | Asistencia propia |

---

## 🔄 Comandos Útiles

### Listar todos los usuarios con sus roles

```bash
php artisan tinker

User::with('roles')->get()->each(function($u) {
    $roles = $u->roles->pluck('name')->join(', ') ?: 'Sin roles';
    echo "{$u->email} → {$roles}\n";
});

exit
```

### Verificar si un usuario tiene un rol específico

```bash
php artisan tinker

$user = User::where('email', 'nesfab2007@gmail.com')->first();
echo $user->hasRole('Super_Admin') ? 'SI' : 'NO';

exit
```

### Reparar roles (si hay errores)

```bash
php artisan roles:reparar
```

---

## ⚠️ Notas Importantes

1. **Siempre usar strings**: `$user->syncRoles(['Admin'])` ✅
2. **NO usar objetos**: `$user->syncRoles([$roleObject])` ❌
3. **Cambios inmediatos**: Los roles se aplican de inmediato (sin cache)
4. **Logout/Login**: No es necesario salir y entrar tras asignar roles

---

## 🎯 Estado Actual del Sistema

```
✅ Middlewares activos
✅ Roles configurados
✅ Usuario principal con Super_Admin
✅ Sistema listo para usar
```

---

**Última actualización**: 12 de Noviembre 2025

