fix(auth): agregar buildUserSession con can_manage y roles para evitar error 500 en dashboard de docente, bedelia y alumno

This commit is contained in:
2026-09-23 17:03:50 -03:00
parent 7be57aeeb2
commit 223a129a2e
2 changed files with 81 additions and 58 deletions
+6 -24
View File
@@ -161,36 +161,18 @@ env.addFilter('_', translateHelper);
app.set('view engine', 'html');
const { buildUserSession } = require('./middlewares/authMiddleware');
// Helper para extraer usuario de cookie si existe
app.use((req, res, next) => {
const token = req.cookies.auth_token;
let user = {
name: 'System',
first_name: 'System',
email: 'admin@edu-space.com',
role: 'admin',
is_authenticated: Boolean(token),
is_admin: () => true,
has_permission: () => true,
has_role: () => true,
can_edit_reservation: () => true,
can_delete_reservation: () => true,
get_institutional_role: () => 'admin',
role_badge_display: { class: 'bg-primary text-white', icon: 'bi-shield-check', label: 'Administrador' }
};
let user = buildUserSession({ role: 'admin', name: 'System', email: 'admin@edu-space.com' });
user.is_authenticated = Boolean(token);
if (token) {
try {
const decoded = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString('utf8'));
const roleStr = (decoded.role || 'Admin').toLowerCase();
user = {
...user,
id: decoded.sub,
name: decoded.name || 'System',
first_name: (decoded.name || 'System').split(' ')[0],
email: decoded.email || 'admin@edu-space.com',
role: roleStr,
is_admin: () => roleStr === 'admin' || decoded.is_admin === true
};
user = buildUserSession(decoded);
} catch (e) {}
}
let isImpersonating = false;