feat: completar fases 3 y 4 del roadmap mvp (gradebook, drag-and-drop, impersonacion) y actualizar README
This commit is contained in:
@@ -189,10 +189,27 @@ app.use((req, res, next) => {
|
||||
};
|
||||
} catch (e) {}
|
||||
}
|
||||
let isImpersonating = false;
|
||||
let impersonatedUser = null;
|
||||
if (user.is_admin() && req.cookies.impersonate_user_id) {
|
||||
isImpersonating = true;
|
||||
const targetId = req.cookies.impersonate_user_id;
|
||||
try {
|
||||
if (req.cookies.impersonate_user_data) {
|
||||
impersonatedUser = JSON.parse(req.cookies.impersonate_user_data);
|
||||
}
|
||||
} catch (e) {}
|
||||
if (!impersonatedUser) {
|
||||
impersonatedUser = { id: targetId, name: `Usuario #${targetId}`, role: 'usuario' };
|
||||
}
|
||||
}
|
||||
|
||||
req.user = user;
|
||||
res.locals.user = user;
|
||||
res.locals.current_user = user;
|
||||
res.locals.role = user.role;
|
||||
res.locals.is_impersonating = isImpersonating;
|
||||
res.locals.impersonated_user = impersonatedUser;
|
||||
res.locals.session = { get: (k, d) => d };
|
||||
res.locals.occupancy_metrics = { get: (k, d) => d };
|
||||
next();
|
||||
@@ -259,6 +276,9 @@ app.use('/api', async (req, res) => {
|
||||
if (token) {
|
||||
headers['Authorization'] = `Bearer ${token}`;
|
||||
}
|
||||
if (req.cookies.impersonate_user_id) {
|
||||
headers['X-Impersonate-User'] = req.cookies.impersonate_user_id;
|
||||
}
|
||||
const flaskUrl = `http://127.0.0.1:5000/api${req.url}`;
|
||||
const response = await axios({
|
||||
method: req.method,
|
||||
|
||||
Reference in New Issue
Block a user