feat: drill-down en pestaña nueva, rol Vendedor y scripts demo

This commit is contained in:
Horux Dev
2026-06-22 20:45:42 +00:00
parent 7df27ce66d
commit 3c7758a599
10 changed files with 705 additions and 16 deletions

View File

@@ -9,10 +9,10 @@ export async function createInvitation(req: Request, res: Response, next: NextFu
return res.status(400).json({ message: 'El email es requerido' });
}
// Solo platform_admin puede crear invitaciones
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin');
// Admin y Vendedor (platform_sales) pueden crear invitaciones
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin', 'platform_sales');
if (!isAdmin) {
return res.status(403).json({ message: 'Solo administradores pueden crear invitaciones' });
return res.status(403).json({ message: 'Solo administradores o vendedores pueden crear invitaciones' });
}
const invitation = await clientInvitationService.createInvitation({
@@ -70,7 +70,7 @@ export async function registerFromInvitation(req: Request, res: Response, next:
export async function resendInvitation(req: Request, res: Response, next: NextFunction) {
try {
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin');
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin', 'platform_sales');
if (!isAdmin) {
return res.status(403).json({ message: 'No autorizado' });
}
@@ -88,7 +88,7 @@ export async function resendInvitation(req: Request, res: Response, next: NextFu
export async function listInvitations(req: Request, res: Response, next: NextFunction) {
try {
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin');
const isAdmin = await hasAnyPlatformRole(req.user!.userId, 'platform_admin', 'platform_sales');
if (!isAdmin) {
return res.status(403).json({ message: 'No autorizado' });
}