Roles en Angular

04 Enero 2020 »
angular

Usar ngx-permissions para validar roles usuarios https://github.com/AlexKhymenko/ngx-permissions

Instalar

npm install ngx-permissions  --save

Agregar al app.module

import { NgxPermissionsModule } from 'ngx-permissions';
...
@NgModule({
  imports: [
    NgxPermissionsModule.forRoot(),
  ]
  ..

En método login


import { NgxRolesService } from 'ngx-permissions';

constructor(private rolesService: NgxRolesService){}

login() {
  this.servicioAuthenticar(user).subscribe((credencialesDelUsuario) => {
    this.rolesService.addRole(credencialesDelUsuario.rol, []);
  })
}

para validar rutas para que accedan según usuario NgxPermissionsGuard fuente: rutas

// permite a differente de tipo rol Externo
{
      path: 'ciudad',
      component: 'CiudadComponent',
      canLoad: [NgxPermissionsGuard],
      data: {
        permissions: {
          except: 'Externo' // Externo es el rol que viene de la base de datos
        }
      }
    },

para validar en la vista *ngxPermissionsOnly fuente: controlling-access-in-views

<ng-container *ngxPermissionsOnly="['Administrador']">
  <button
    type="button"
    (click)="obtenerNombre()"
  >
    Obtener nombre
  </button>
</ng-container>