Qué Pueden Ver y Hacer los Empleados
El Portal del Empleado ajusta qué datos, campos y acciones son visibles según el rol del usuario. Esta página detalla exactamente qué ven los empleados en cada página y qué acciones tienen disponibles.
Hojas de Tiempo
Los empleados pueden crear, editar y enviar sus propias hojas de tiempo semanales.
Acciones Disponibles
| Acción | Disponible | Condición |
|---|---|---|
| Registrar Tiempo | Sí | Requiere permiso create timesheets |
| Enviar Hoja de Tiempo | Sí | Solo para hojas en borrador |
| Aprobar / Rechazar | No | Requiere permiso approve timesheets (solo administrador) |
| Editar | Sí | Solo hojas propias en borrador |
| Eliminar | Sí | Solo registros propios, con permiso de eliminación |
Flujo para Empleados
- Crear una hoja de tiempo para un período semanal.
- Registrar entradas de tiempo contra proyectos.
- Enviar la hoja para aprobación.
- Seguir el estado (Enviada -> Aprobada o Rechazada).
- Si es rechazada, revisar el motivo, hacer cambios y reenviar.
Solicitudes de Permiso
Los empleados pueden enviar, rastrear y cancelar sus propias solicitudes de permiso.
Acciones Disponibles
| Acción | Disponible | Condición |
|---|---|---|
| Cancelar Permiso | Sí | Solo para solicitudes propias pendientes o aprobadas |
| Aprobar / Rechazar | No | Requiere permiso approve leave requests |
| Editar | Sí | Solo solicitudes propias pendientes |
| Eliminar | Sí | Solo registros propios, con permiso de eliminación |
Validación
- Detección de superposición: El sistema previene enviar solicitudes que se superpongan con solicitudes aprobadas o pendientes existentes.
- Validación de días: El número de días debe coincidir con el rango de fechas (días completos o medios días).
Asistencia
Los empleados pueden registrar su propia asistencia diaria.
Acciones Disponibles
| Acción | Disponible | Condición |
|---|---|---|
| Crear Asistencia | Sí | Requiere permiso create attendance |
| Editar | Sí | Solo registros propios |
| Eliminar | Sí | Solo registros propios, con permiso de eliminación |
Saldos de Permisos
Los empleados pueden ver sus asignaciones y uso de permisos. Esta es una vista de solo lectura para empleados.
Acciones Disponibles
| Acción | Disponible |
|---|---|
| Crear | No — solo administradores pueden asignar saldos de permisos |
| Editar | No |
| Eliminar | No |
Recibos de Nómina
Los empleados pueden ver y descargar sus propios recibos.
Acciones Disponibles
| Acción | Disponible | Condición |
|---|---|---|
| Ver Recibo | Sí | Abre el recibo en el navegador |
| Descargar Recibo | Sí | Descarga el recibo como PDF |
| Finalizar / Enviar | No | Acciones solo de administrador |
Resumen de Alcance de Datos
Todos los datos se filtran automáticamente, para que los empleados solo vean sus propios registros:
| Recurso | Método de Alcance |
|---|---|
| Solicitudes de Permiso | Filtrado por employee_id mediante alcance global |
| Saldos de Permisos | Filtrado por employee_id mediante alcance global |
| Asistencia | Filtrado por employee_id mediante alcance global |
| Hojas de Tiempo | Filtrado por employee_id mediante alcance global |
| Recibos de Nómina | Filtrado mediante payroll_entry.employee_id con alcance global |
| Estructuras Salariales | Filtrado por employee_id mediante alcance global |
| Entradas de Nómina | Filtrado por employee_id mediante alcance global |
Recursos no filtrados (visibles para todos):
- Leave Types — los empleados necesitan ver todos los tipos de permiso al crear solicitudes
- Employee — el modelo en sí no tiene alcance (el registro propio del empleado es accesible mediante política)
Configurar el Rol de Empleado
El rol Employee es la piedra angular de la experiencia del portal. Determina qué usuarios obtienen la interfaz del portal, a qu é datos pueden acceder y qué acciones pueden realizar. El rol se crea automáticamente cuando se activa el módulo HRM, con un conjunto predeterminado de permisos.
Permisos Predeterminados
Cuando el módulo se habilita, el rol Employee se crea con los siguientes permisos:
Perfil del Empleado
| Permiso | Descripción |
|---|---|
view own employees | Ver su propio registro de empleado |
edit own employees | Editar su propio perfil (nombre, teléfono, dirección) |
Solicitudes de Permiso
| Permiso | Descripción |
|---|---|
view own leave-requests | Ver sus propias solicitudes de permiso |
create leave-requests | Enviar nuevas solicitudes |
edit own leave-requests | Editar solicitudes propias pendientes |
cancel leave requests | Cancelar solicitudes propias pendientes o aprobadas |
Saldos de Permisos
| Permiso | Descripción |
|---|---|
view own leave-balances | Ver sus propias asignaciones y uso de permisos |
Hojas de Tiempo
| Permiso | Descripción |
|---|---|
view own timesheets | Ver sus propias hojas de tiempo |
create timesheets | Crear nuevas hojas de tiempo |
edit own timesheets | Editar hojas propias en borrador |
submit timesheets | Enviar borradores para aprobación |
Asistencia
| Permiso | Descripción |
|---|---|
view own attendance | Ver sus propios registros de asistencia |
create attendance | Registrar asistencia diaria |
edit own attendance | Editar entradas propias de asistencia |
Recibos de Nómina
| Permiso | Descripción |
|---|---|
view own payslips | Ver y descargar sus propios recibos |
Estructuras Salariales
| Permiso | Descripción |
|---|---|
view own employee-salary-structures | Ver su propio desglose salarial |
Permisos NO Otorgados a Empleados
Los siguientes permisos están excluidos intencionalmente del rol Employee:
| Categoría | Permisos Excluidos |
|---|---|
| Ver Todos / Equipo | view all *, view team * — los empleados solo ven datos propios |
| Editar Todos / Equipo | edit all *, edit team * — los empleados solo editan registros propios |
| Eliminar | Todos los permisos de eliminación y eliminación masiva |
| Crear (restringido) | create employees, create leave-balances, create payslips, create payroll-*, create employee-salary-structures |
| Aprobar / Rechazar | approve leave requests, approve timesheets, approve payroll |
| Operaciones de Nómina | process payroll, finalize payslips, send payslips, generate payslips |
| Exportación | Todos los permisos de exportación |
Personalizar el Rol
Agregar Permisos
Para otorgar permisos adicionales a los empleados, navegue a Settings > Roles & Permissions, encuentre el rol Employee y active los permisos deseados.
Por ejemplo, para permitir que los empleados eliminen sus propias solicitudes:
- Vaya a Settings > Roles & Permissions.
- Edite el rol Employee.
- Habilite
delete own leave-requests. - Guarde.
Quitar Permisos
De manera similar, puede restringir más a los empleados quitando permisos. Por ejemplo, para evitar que editen su propia asistencia:
- Edite el rol Employee.
- Deshabilite
edit own attendance. - Guarde.
Cambiar el Nombre del Rol
El nombre del rol por defecto es "Employee" pero puede cambiarse mediante configuración:
// modules/HRM/config/employee-portal.php
'employee_role_name' => env('EMPLOYEE_ROLE_NAME', 'Employee'),
O mediante variable de entorno:
EMPLOYEE_ROLE_NAME=Staff
Si cambia el nombre del rol, la activación del módulo (o re-ejecutar el seeder) creará un rol con el nuevo nombre. Los usuarios existentes con el nombre de rol anterior necesitarán ser reasignados manualmente.
Re-Sincronizar Permisos
Si necesita restablecer los permisos del rol Employee a sus valores predeterminados (ej., después de una actualización), puede re-ejecutar el seeder:
php artisan db:seed --class="Modules\HRM\Database\Seeders\EmployeeRoleSeeder"
Esto recreará el rol (si no existe) y lo sincronizará con el conjunto de permisos predeterminado. Cualquier modificación personalizada que haya hecho será sobrescrita.
Alternativamente, deshabilitar y re-habilitar el módulo HRM desde Settings > HRM Configuration > Activation también re-sincronizará los permisos del rol Employee.
Cómo los Permisos Interactúan con el Portal
El Portal del Empleado usa un sistema de control de acceso por capas:
Capa 1: Filtrado de Menú
-- Oculta elementos de la barra lateral no en allowed_menu_items config
Capa 2: Protección de Rutas
-- Guardián frontend bloquea navegación a rutas no autorizadas
Capa 3: Alcance de Datos
-- Alcance global filtra consultas a registros propios del empleado
Capa 4: Visibilidad de Campos
-- Campos de recursos ocultos mediante verificaciones isEmployeeUser()
Capa 5: Permisos y Políticas
-- Permisos Spatie controlan acceso CRUD y de acciones
Capa 6: Bypass de Super Admin
-- Gate::before retorna true para super-admins, omitiendo todas las capas
Cada capa proporciona defensa en profundidad. Incluso si un empleado de alguna manera elude el filtrado de menú, el alcance de datos asegura que solo pueda ver sus propios registros, y el sistema de permisos previene acciones no autorizadas.