Files
basic-erp/apps/api/src/permissions/permissions.module.ts
T
GeorgeandClaude Sonnet 5.5 73fffee2f7 feat(api): permisos de menú en SQLite con API de administración
- SQLite (better-sqlite3 + TypeORM, WAL) con tabla menu_permissions
  (usuario web, patrón de ruta); archivo fuera del repo.
- GET /api/user/menu para el frontend; GET/PUT/DELETE /api/permissions
  solo para administradores (acceso "*").
- ADMIN_WEB_USERS garantiza el acceso total al arrancar; no se puede
  quitar el "*" al último administrador (409, dentro de una transacción).
- Patrones validados (`*`, `/modulo/ruta`, `/modulo/*`). A diferencia del
  frontend anterior, `/inventario/*` ya no habilita `/inventario-x`.
- Helper de e2e compartido (SAP simulado, SQLite en memoria).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 18:47:51 -05:00

15 lines
596 B
TypeScript

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AdminGuard } from './admin.guard.js';
import { MenuPermission } from './menu-permission.entity.js';
import { PermissionsController, UserMenuController } from './permissions.controller.js';
import { PermissionsService } from './permissions.service.js';
@Module({
imports: [TypeOrmModule.forFeature([MenuPermission])],
controllers: [UserMenuController, PermissionsController],
providers: [PermissionsService, AdminGuard],
exports: [PermissionsService],
})
export class PermissionsModule {}