Commit Graph

130 Commits

Author SHA1 Message Date
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
9fed6f9af9 Merge pull request #16 from Axia4/copilot/make-app-feel-integrated
Redesign UI to match Google Workspace integrated feel + SQLite DB with migrations, multi-tenant account management
2026-03-07 13:34:58 +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
copilot-swe-agent[bot]
7e85c2a1f2 Initial plan 2026-03-06 20:40:10 +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]
322ab38fd1 Initial plan 2026-02-21 19:02:41 +00:00
Naiel
fd3576674c Merge pull request #12 from Axia4/copilot/fix-security-issues
Security: fix auth bypass, open redirects, broken cookie security, OAuth CSRF, and Sf() misuse across EntreAulas
2026-02-21 20:00:31 +01: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
copilot-swe-agent[bot]
35fa27b199 Initial plan 2026-02-21 18:40:16 +00:00
Naiel
5c277ab969 Delete .github/workflows/codacy.yml 2026-02-21 19:36:13 +01:00
naielv
57ec8e57fc Refactor: update path for tools.security.php inclusion across multiple files 2026-02-19 22:45:15 +01:00
Naiel
c5ad2c7cb4 Merge pull request #11 from Axia4/copilot/add-file-sanitization-function
Security: filename sanitization, MIME validation, atomic writes, and path deduplication in file/user management
2026-02-19 21:08:57 +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
copilot-swe-agent[bot]
414f7db7d1 Initial plan 2026-02-19 14:51:43 +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
Naiel
905610717b Add Codacy security scan workflow
This workflow integrates Codacy security scans with GitHub Actions, checking code on push and pull requests to the main branch and scheduling regular scans.
2026-02-19 10:37:11 +01:00
Naiel
2f6721e657 Merge pull request #10 from Axia4/copilot/restrict-safe-filename-characters
Harden path validation and file handling against directory traversal attacks
2026-02-19 10:35:31 +01:00
Naiel
516c9a645d Delete .github/workflows/main.yml 2026-02-19 10:33:56 +01: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
Naiel
c8c9c10293 Add GitHub Actions workflow for PHP security checks 2026-02-19 10:30:46 +01:00
copilot-swe-agent[bot]
99898e8736 Initial plan 2026-02-19 09:28:40 +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