Skip to main content

Roles y Permisos (RBAC)

Tres módulos trabajan en conjunto para implementar control de acceso basado en roles:

  • src/app/modules/module/ — define agrupaciones de permisos (secciones del sistema)
  • src/app/modules/role/ — define roles asignables a usuarios
  • src/app/modules/permission/ — define permisos individuales, asociados a módulos
  • src/app/modules/role-permission/ — tabla de unión entre roles y permisos

Módulo (System Module)

Representa una sección del sistema (ej: "Contactos", "Mensajería"). Los permisos se agrupan bajo un módulo.

Modelo:

CampoTipoDescripción
codestringIdentificador único (CONTACTS, MESSAGES, etc.)
namestringNombre legible
descriptionstringDescripción
isActiveboolean
tenantIdObjectId → Tenant

Role

Agrupación de permisos asignable a un usuario.

Modelo:

CampoTipoDescripción
namestringNombre del rol (Admin, Agent, etc.)
descriptionstring
isActiveboolean
tenantIdObjectId → Tenant

Permission

Permiso individual.

Modelo:

CampoTipoDescripción
codestringIdentificador (CREATE_CONTACT, VIEW_MESSAGES, etc.)
descriptionstring
moduleObjectId → ModuleMódulo al que pertenece
isActiveboolean
tenantIdObjectId → Tenant

RolePermission

Tabla de unión.

Modelo:

CampoTipoDescripción
roleIdObjectId → Role
permissionIdObjectId → Permission

Endpoints (los 4 módulos)

Todos siguen el mismo patrón CRUD: GET /, GET /:id, POST /, PATCH /:id, DELETE /:id

Ruta baseMódulo
/api/v1/modulesSystem Modules
/api/v1/rolesRoles
/api/v1/permissionsPermissions
/api/v1/role-permissionsAsignación rol-permiso

Flujo de asignación

1. Crear módulos del sistema (secciones)
2. Crear permisos asociados a cada módulo
3. Crear roles
4. Asignar permisos a roles via role-permissions
5. Asignar rol a usuario en User.roleId