v1.9.0
Added
- Perfil de usuario — nueva sección
/profileaccesible para cualquier usuario autenticado (sin requisito de admin):- Vista unificada
views/profile/index.phpcon dos formularios independientes, cada uno con su propio token CSRF - Form 1 (
POST /profile): editafirst_name,last_name,email,username; valida unicidad excluyendo el propio ID; actualiza$_SESSION['name']si cambia el nombre - Form 2 (
POST /profile/password): requiere contraseña actual conpassword_verify(); valida coincidencia y mínimo 8 caracteres User::updateProfile()— UPDATE limitado a info básica; sin acceso apasswordniis_admin(previene escalada de privilegios vía IDOR)User::getPasswordById()— SELECT solo del hash para verificar la contraseña actualUser::updatePasswordProfile()— UPDATE de contraseña porid, independiente deupdatePassword()que sigue siendo exclusivo del flujo de reset por email- Nombre de usuario en el nav convertido en enlace a
/profile(visible para todos los usuarios autenticados) - Ambas operaciones invalidan la caché
users.all
- Vista unificada
Full Changelog
https://github.com/Jandres25/Encriptacion_PHP/blob/master/CHANGELOG.md