108 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
704acf4cc3 Fix HTTP 500 in comedor and proyectos: remove duplicate safe_filename declarations and fix api/comedor.php require paths
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 21:06:54 +00:00
Naiel
a0a304e8ec Fix icon assignment to use null coalescing operator 2026-03-07 21:53:16 +01:00
Naiel
556ec6b838 Change Sf to Ssql for name input sanitization 2026-03-07 21:49:25 +01:00
copilot-swe-agent[bot]
3398bee812 Add aulario photo upload in SysAdmin; hide icon URL field
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 20:45:08 +00:00
copilot-swe-agent[bot]
ce120cbd4f Add delete account button with confirmation in sysadmin/users.php?action=edit
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 19:53:33 +00:00
copilot-swe-agent[bot]
6f0ada0713 Replace auth_user+auth_pass_b64 cookies with secure opaque remember token
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 19:40:33 +00:00
copilot-swe-agent[bot]
868b8477e0 Add Dispositivos conectados (connected devices) session tracking
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 19:37:23 +00:00
copilot-swe-agent[bot]
c21dfad437 Add proper session management (CSRF, secure cookies, session tracking)
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-07 19:33:13 +00:00
Naiel
7b226b4bb2 Modify username generation to include unique ID 2026-03-07 20:27:14 +01:00
Naiel
378515d28a Enhance db_get_user to find user by email or username
Updated db_get_user function to allow searching by email in addition to username.
2026-03-07 20:25:13 +01:00
naielv
f1ac55f359 update pre-body.php 2026-03-07 20:04:41 +01:00
naielv
51437cca18 update 2026-03-07 20:00:56 +01:00
naielv
b2c1314c69 update 2026-03-07 19:51:48 +01:00
Naiel
f7d60a3c2a fix: corregir texto de descripción y limpiar código en la página principal 2026-03-07 12:34:22 +00:00
Naiel
a8936e55a2 Add organization management functionality and logo image
- Implemented organization creation, editing, and activity management in orgs.php.
- Added safe path segment function to sanitize input.
- Included file upload handling for activity photos.
- Created a new logo image for the application.
2026-03-07 12:30:08 +00:00
copilot-swe-agent[bot]
6aaee59b3d fix: address code review feedback (DB filename, migration query, error handling)
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-06 22:02:32 +00:00
copilot-swe-agent[bot]
0c362fd40b feat: SQLite DB with migrations replaces all JSON file storage
- Add db.php with PDO singleton, migration runner, and all helper functions
- Add migrations/001_initial_schema.sql (full schema)
- Add migrations/002_import_json.php (one-time JSON → DB importer)
- Add _incl/switch_tenant.php POST endpoint for tenant/centro switching
- Update tools.auth.php: DB-backed login, cookie auth, session reload, init_active_centro()
- Update all sysadmin pages (users, centros, aularios, invitations, reset_password) to use DB
- Update aulatek/index.php, aulario.php, supercafe.php, supercafe_edit.php to use DB
- Update aulatek/comedor.php and api/comedor.php to use DB
- Update aulatek/paneldiario.php: aulario config + comedor data from DB
- Update aulatek/proyectos.php: aulario config + sharing metadata from DB
- Update club/cal.php, index.php, edit_data.php, upload/upload.php to use DB
- Update account/index.php: rich profile, tenant list, aula list, session info, permissions
- Update pre-body.php account dropdown: shows active org + inline tenant switcher
- Update DATA_STRUCTURE.md to document DB approach and migration system

Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-06 22:00:48 +00:00
copilot-swe-agent[bot]
937a0f4083 Plan: real SQLite DB with migrations system
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-06 21:37:34 +00:00
copilot-swe-agent[bot]
c0a93ce109 Redesign UI to match Google Workspace integrated feel
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-03-06 20:50:53 +00:00
Naiel
b6cc385092 Mejorar estilo de entrada en el generador de letras A4: ajustar propiedades de color y contorno 2026-03-05 14:10:26 +00:00
Naiel
dc198f16ea Add A4 Letter Generator with customizable fonts and styles for printing 2026-03-05 14:07:25 +00:00
Naiel
8694d5a470 Agregar botón "Abrir" en la lista de archivos y cambiar altura mínima del contenedor en la página principal 2026-03-05 13:55:58 +00:00
Naiel
a881d90398 Remove entreaulas in favor of TeleSec. 2026-03-05 13:44:21 +00:00
naielv
1b3f4b619f Refactor seguridad: agregar funciones de sanitización y reestructurar código en varios archivos 2026-02-26 23:27:44 +01:00
Naiel
da9c495769 Merge pull request #13 from Axia4/copilot/add-supercafe-module
Add SuperCafe module inside EntreAulas
2026-02-21 22:09:37 +01:00
copilot-swe-agent[bot]
6e4496b050 SuperCafe: use Alumnos for persons, fix sysadmin add-user form
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-21 21:07:46 +00:00
Naiel
4e9c9bcf96 Update filename sanitization method
Sanitize the filename by removing path information.
2026-02-21 21:57:14 +01:00
copilot-swe-agent[bot]
69d7e46dc8 Add SuperCafe module inside EntreAulas based on TeleSec supercafe.js
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-21 19:12:26 +00:00
copilot-swe-agent[bot]
56918315ea Security: improve login auth check to use if/elseif structure for clarity
Remove the intermediate variable pattern that could potentially allow
authentication without a valid password_hash, using an if/elseif pattern instead.

Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-21 18:56:35 +00:00
copilot-swe-agent[bot]
ffb6b6ce45 Security: fix auth bypass, open redirects, cookie security, OAuth CSRF, and Sf() misuse
- Fix critical inverted authentication logic in tools.auth.php (password_verify was inverted)
- Fix broken Sf() misuse for username lookups (was always returning empty string)
- Add safe_username_to_filename() to tools.security.php for proper username handling
- Fix open redirect vulnerability in _login.php for all redirect targets
- Add HttpOnly, Secure, SameSite cookie flags to all setcookie() calls
- Add CSRF nonce to OAuth state parameter and verify it on callback
- Add session_regenerate_id(true) after successful login
- Remove redundant session_regenerate_id() from tools.session.php (was called on every request)
- Add authentication check to entreaulas/_filefetch.php
- Fix broken Sf() usage in entreaulas pages (aulario.php, comedor.php, diario.php, paneldiario.php, proyectos.php, api/comedor.php)
- Fix broken Sf() usage in sysadmin/users.php and sysadmin/reset_password.php

Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-21 18:55:06 +00:00
naielv
57ec8e57fc Refactor: update path for tools.security.php inclusion across multiple files 2026-02-19 22:45:15 +01:00
copilot-swe-agent[bot]
a095c91f5e Security: comprehensive filename sanitization, MIME validation, atomic file writes, and path deduplication
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-19 14:55:12 +00:00
Naiel
192002880a Refactor input sanitization functions and improve file path handling across multiple files
- Introduced `safe_id_segment`, `safe_centro_id`, and `safe_aulario_config_path` functions to sanitize input and construct file paths securely.
- Updated `index.php`, `paneldiario.php`, `proyectos.php`, `aularios.php`, `centros.php`, `club_mkthumb.php`, `reset_password.php`, and `users.php` to utilize new sanitization functions.
- Enhanced error handling for file existence checks and directory traversal prevention.
- Ensured consistent use of safe path handling in user input across the application.
2026-02-19 14:45:51 +00:00
copilot-swe-agent[bot]
ffb74751a3 Sync safe_filename implementation across files for consistency
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-19 09:33:47 +00:00
copilot-swe-agent[bot]
1c5533c13d Address code review findings - add username validation and fix edge cases
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-19 09:32:46 +00:00
copilot-swe-agent[bot]
c9b5a1058f Apply security fixes for path validation and file handling
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-19 09:31:25 +00:00
naielv
98f430188c Enhance security and input sanitization across multiple files
- Added a new tools.security.php file containing functions for sanitizing filenames, paths, and user inputs to prevent directory traversal and XSS attacks.
- Updated various files to utilize the new sanitization functions (Sf, Si) for user inputs and file operations, ensuring safer handling of data.
- Improved HTML output safety by applying htmlspecialchars to user-generated content in pre-body.php, cal.php, and other relevant files.
- Refactored user authentication and data retrieval processes in tools.auth.php and _login.php to enhance security and maintainability.
- Ensured consistent use of sanitization functions in API endpoints and admin functionalities to mitigate potential security vulnerabilities.
2026-02-18 23:22:58 +01:00
Naiel
a6ebede883 update 2026-02-18 14:01:42 +00:00
Naiel
ce318a7322 Agregar API del Comedor para gestionar menús y tipos de menú 2026-02-18 13:45:37 +00:00
Naiel
1e6f6be18f Add diario.php for student diary management and update images
- Created a new file `diario.php` to manage and display student diaries.
- Implemented user permission checks to restrict access to docentes.
- Added functionality to list students and their diary entries based on selected aulario.
- Included validation for directory paths and error handling for missing data.
- Updated images `alumnos.png` and `yo.png` in the static assets.
2026-02-18 11:38:48 +00:00
naielv
51fd926065 Actualizar la configuración de autenticación y mejorar la gestión de sesiones 2026-02-17 14:33:51 +01:00
naielv
8f45eac632 Actualizar la acción del formulario de búsqueda a un nuevo endpoint 2026-02-16 01:12:16 +01:00
Naiel
12add1cd3f Agregar variable PAGE_TITLE para personalizar títulos en las páginas del club 2026-02-15 20:14:31 +00:00
Naiel
5e3bbe45ba Fix JavaScript function call and update onclick handler 2026-02-14 15:08:04 +01:00
Naiel
618fc6679b Escape special characters in alumno name 2026-02-14 15:02:02 +01:00
Naiel
c8e6c617e2 Fix student selection announcement and data structure 2026-02-14 14:52:20 +01:00
Naiel
73687ef617 Change link from javascript:void(0) to # 2026-02-14 14:41:38 +01:00
copilot-swe-agent[bot]
b8b605cff0 Improve accessibility and file handling in CRUD
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-14 13:30:42 +00:00
copilot-swe-agent[bot]
f13c0725ec Fix security issues in alumnos.php CRUD page
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-14 13:28:57 +00:00
copilot-swe-agent[bot]
53b11caea1 Add CRUD page for student management (alumnos.php)
Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
2026-02-14 13:27:14 +00:00