f8a1310c0fa16036070416dad6a8f2db5ab4b73e
Security fixes (27 vulnerabilities across 20 files): CRITICAL: - MediaManager: whitelist mediable types prevents RCE via class instantiation - MediaManager/OfflineSyncController: IDOR fixes, remove Auth::id()??1 fallback - ClientProjects: verify project ownership on all mutations (IDOR) - CompanyManagement: Admin role check on mount() and mutations (auth bypass) - ProjectMap: scope feature/template lookups to current project (IDOR x5) - PhaseList/TemplateManager/LayerManager: scope mutations to owned resources (IDOR) - ProjectEditTabs: Gate::authorize on mount() and updateProject() - routes/web.php: reports routes moved inside can:manage all middleware (auth bypass) MEDIUM: - layer-manager: escapeHtml() on Leaflet popup interpolations (XSS) - MediaManager: server-side MIME validation + 50MB limit - ProjectList/ProjectUsers/ProjectCompanies/PhaseProgress: auth checks added - AdminUsers/ReportsDashboard/ExportController: role/permission checks added LOW: - config/session.php: secure cookie tied to production env - OfflineSyncController: sanitize storage path (path traversal) UI integration: - project-map: Issues tab (4th) with open-count badge - project-map: project navigation bar (Dashboard/Map/Gantt/Report/Issues) - project-dashboard: action buttons for Map/Gantt/Report/Issues - project-form: validation error summary + per-field @error spans - template-manager: validation error display Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Avante
Sistema de gestión de proyectos de construcción con mapas interactivos, control de progreso, inspecciones y soporte offline.
Características
- Mapas interactivos — Visualización de proyectos sobre mapa con capas (GeoJSON/KML) y elementos editables
- Gestión de fases — Proyectos organizados en fases con progreso porcentual y seguimiento histórico
- Capas y elementos — Subida de archivos GeoJSON/KML, capas vacías editables con color personalizado
- Inspecciones — Plantillas de inspección por proyecto, asignables a elementos del mapa
- Progreso — Seguimiento visual del progreso por fase y global del proyecto
- Sincronización offline — Endpoints para trabajadores en campo, sincronización diferida
- Permisos — Roles y permisos granulares (Spatie Permission)
- Dashboard — Estadísticas globales, proyectos recientes, inspecciones
Requisitos
- PHP 8.2+
- MySQL/MariaDB
- Composer
- Node.js + NPM
Instalación
git clone <repo-url> construprogress
cd construprogress
composer install
npm install && npm run build
cp .env.example .env
# Editar .env con credenciales de base de datos
php artisan key:generate
php artisan migrate
php artisan db:seed --class=RolePermissionSeeder # si existe
php artisan serve
Stack técnico
- Framework: Laravel 11
- Frontend: Tailwind CSS + DaisyUI + Leaflet.js
- Mapas: Leaflet + Leaflet Draw (editor gráfico)
- Componentes: Livewire 3
- Base de datos: MySQL/MariaDB
- Autenticación: Laravel Breeze
Description
Languages
Blade
54.9%
PHP
43.7%
JavaScript
1.4%