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:
+6
-24
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user