Carlos Cifuentes
Migración de librerías AngularJS · autorización

Migrar angular-permission a Angular moderno

angular-permission definía permisos y roles, protegía los estados de ui-router mediante data.permissions y ocultaba elementos con directivas. Está atada a AngularJS y a sus routers.

Qué la reemplaza

OpciónCuándo elegirla
Route guards + your own directiveGuards funcionales (canActivate, canMatch) para las rutas y una directiva estructural pequeña para mostrar u ocultar elementos.
ngx-permissionsConceptos parecidos a angular-permission: permisos, roles, un guard y directivas.
CASL (@casl/angular)Cuando las reglas dependen de la acción y del registro, no solo de un rol.

Cómo migrarla

  1. Exporta la lista de permisos y roles, y dónde se revisa cada uno: estados, templates y controladores.
  2. Crea un PermissionService que cargue una sola vez los permisos del usuario y que compartan ambos frameworks.
  3. Reemplaza los permisos de los estados por guards de ruta, y las directivas de los templates por tu propia directiva, a medida que se mueve cada pantalla.

Cuidado con. Carga los permisos antes de la primera navegación, o al refrescar la página los usuarios con sesión terminan en la pantalla de acceso denegado. Y ocultar un botón no es seguridad: la API debe aplicar las mismas reglas.

Otras librerías

¿Planeas una migración o una plataforma de microfrontends?

En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.

Escríbeme por LinkedIn