feat(multi-tenant): configurar las 3 empresas oficiales (Telcotronics, XSYSTEM, DOMUS) y selector rapido de entorno
This commit is contained in:
@@ -69,4 +69,32 @@ router.post('/companies/update/:id', isSuperAdmin, async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/switch/:id', isSuperAdmin, async (req, res) => {
|
||||
try {
|
||||
const targetId = parseInt(req.params.id);
|
||||
const company = await Company.findById(targetId);
|
||||
if (!company) {
|
||||
req.flash('error_msg', 'Empresa no encontrada');
|
||||
return res.redirect('/saas/companies');
|
||||
}
|
||||
|
||||
req.session.user.company_id = company.id;
|
||||
if (req.session.user.id) {
|
||||
await User.update(req.session.user.id, { company_id: company.id });
|
||||
}
|
||||
|
||||
req.flash('success_msg', `Cambiaste de entorno a: ${company.name}`);
|
||||
const referrer = req.get('Referrer');
|
||||
// Redirigir de forma segura al referrer o al dashboard
|
||||
if (referrer && !referrer.includes('/login') && !referrer.includes('/logout')) {
|
||||
return res.redirect(referrer);
|
||||
}
|
||||
res.redirect('/admin/dashboard');
|
||||
} catch (error) {
|
||||
console.error('Error switching company:', error);
|
||||
req.flash('error_msg', 'Error al cambiar de empresa');
|
||||
res.redirect('/saas/companies');
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user