epm-client v1.1.0
EpmClient
Esta librería es un cliente para angular, donde se gestiona el llamado a los servicios del componente de autorización para EPM, así como el manejo de la información del árbol de menú en el localStorage y la validación de rutas por medio de guardianes.
Instalación
Use npm:
$ npm install epm-client
Configuración
import { EpmConfiguracionService } from 'epm-client';
Para configurar los servicios del cliente, se requiere llamar el método configuración el cual se encuentra en “EpmConfiguracionService”. Este requiere la especificación del ambiente, una bandera para traza de log y la key de suscripción a API Management.
- Ejemplo
this.epmConfiguracionService.configuracion(environment.production, !environment.production, environment.subscriptionKey);
Uso
Servicios Menú
Obtener Menú Storage
// *****************************
// Verifica si se encuentra información del menú almacenada en el storage.
// *****************************
this.epmClientService.getStorageMenu()
Eliminar Menú Storage
// *****************************
// Elimina la información del menú almacenada en el storage.
// *****************************
this.epmClientService.deleteStorageMenu();
Almacenar Menú Storage
// *****************************
// Almacena la información obtenida por el servicio en el storage.
// *****************************
this.epmClientService.saveStorageMenu(<Recurso[]>);
Obtener Menú
// *****************************
// Servicio que obtiene la información del menú correspondiente al ClientId suministrado como parámetro, esto determina la visibilidad de acceso a las entidades.
// *****************************
this.epmClientService.getMenu(<"ClientId">)
Consideraciones
Es responsabilidad de cada aplicación eliminar la información almacenada en el storage, cuando se realice el proceso de deslogueo y cuando la aplicación necesite cambiar los privilegios del menú.
Ejemplo
// *****************************
// OBTENER Y ALMACENAR ARBOL DE MENU
// *****************************
import {EpmClientService,Recurso } from 'epm-client';
export class SidebarComponent implements OnInit {
arbolMenu: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
const menu = this.epmClientService.getStorageMenu();
if (!menu) {
this.epmClientService.getMenu(<"ClientId">)
.subscribe(res => {
this.arbolMenu = res;
this.epmClientService.deleteStorageMenu();
this.epmClientService.saveStorageMenu(this.arbolMenu);
},
error => {
console.log('error: ', error);
});
} else {
this.arbolMenu= menu;
}
Respuesta
{}
Guardianes
Servicio que provee la verificación de las rutas a la cuales se tiene acceso dentro de la aplicación.
// *****************************
// Verifica si la url pasada como parámetro tiene permisos de visualización o no por el usuario.
// *****************************
this.epmClientService.validarRuta(<"url">); Result => true or false
Ejemplo
// *****************************
// VALIDANDO RUTAS CON GUARDIANES
// *****************************
import { EpmClientService } from 'epm-client';
permitir = false;
constructor(private epmClientService: EpmClientService,
private router: Router) {
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
this.permitir = this.epmClientService.validarRuta(route['_routerState'].url);
if (!this.permitir) {
this.router.navigate(['/no-autorizado']);
}
return this.permitir;
}
Respuesta
true or false
Servicios Entidades
Obtener Entidad
// *****************************
// Obtiene la información de las entidades, con el fin de que se pueda verificar acciones permitidas en la misma.
// *****************************
this.epmClientService.getEntidad(<"ClientId">)
Obtener Entidad storage
// *****************************
// Obtiene una Lista de las Entidades almacenadas en el storage.
// *****************************
this.epmClientService.getStorageEntidad();
Eliminar Entidad storage
// *****************************
// Elimina la información almacenada de la entidad en el storage.
// *****************************
this.epmClientService.deleteStorageEntidad();
Almacenar Entidad storage
// *****************************
// Almacena la información de la entidad proporcionada por el servicio en el storage.
// *****************************
this.epmClientService.saveStorageEntidad(<Recurso[]>);
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
const result = this.epmClientService.getStorageEntidad();
if(!result) {
this.epmClientService.getEntidad(<"ClientId">).subscribe(res=>{
this.epmClientService.deleteStorageEntidad();
this.epmClientService.saveStorageEntidad(res);
})
}
Respuesta
{}
Validar Entidad
// *****************************
// Verifica los permisos registrados sobre una entidad pasada como parametro el nombre.
// *****************************
this.epmClientService.validarEntidad(<"entidad">); Result => string[]
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
const result = this.epmClientService.validarEntidad(<"boton">); Result => string[]
}
Respuesta
{}
Consideraciones
Es recomendable validar preexistencia del listado de entidades, para evitar llamados innecesarios al servicio y dependiendo de las acciones o permisos que se estén brindando sobre la entidad, eliminarla y sobreescribirla en el storage, esto con la finalidad de tener un listado actualizado con los cambios.
Servicios Botones
Validar Boton
// *****************************
// Verifica los permisos del boton, con su nombre ingresado como parametro.
// *****************************
this.epmClientService.validarBoton(<"boton">) Result => true or false
Obtener Botones storage
// *****************************
// Obtiene un listado de los botones (recursos) almacenado en el storage.
// *****************************
this.epmClientService.getStorageBotones(); Result => Recursos[]
Eliminar Botones storage
// *****************************
// Elimina el listado de botones (recursos) almacenados en el storage.
// *****************************
this.epmClientService.deleteStorageBotones()
Almacenar Botones storage
// *****************************
// Almacena el listado de botones (recursos) en el storage.
// *****************************
this.epmClientService.saveStorageBotones(<Recurso[]>)
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
const result = this.epmClientService.getStorageBotones();
if(result === null){
this.epmClientService.getBotones(<"ClientId">).subscribe(res=>{
this.epmClientService.deleteStorageBotones();
this.epmClientService.saveStorageBotones(res);
})
}
this.botones= result;
}
Respuesta
{}
Servicios Manifiestos
Obtener Manifiesto
// *****************************
// Obtiene el Manifiesto con la información del usuario.
// *****************************
this.epmClientService.getManifiesto(<"ClientId">);
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.getManifiesto(<"ClientId">).subscribe(res=>{
var result = res;
})
}
}
Respuesta
{}
Servicios Permisos
Obtener Listado Codigo Permisos
// *****************************
// Obtiene el listado de codigos de los permisos.
// *****************************
this.epmClientService.getListCodigosPermisos(<"ClientId">);
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.getListCodigosPermisos(<"ClientId">).subscribe(res=>{
var result = res;
})
}
Respuesta
{}
Obtener Permisos por Tipo
// *****************************
// Obtiene un listado de permisos por el tipo.
// *****************************
this.epmClientService.getPermisosPorTipo(<"ClientId">,<"tipoRecurso">); Result => Recurso[]
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.getPermisosPorTipo(<ClientId>,"menu").subscribe(res => {
var result = res;
})
}
Respuesta
{}
Obtener Permisos por Rol
// *****************************
// Obtiene el listado de permisos por Rol.
// *****************************
this.epmClientService.getPermisosPorRol(<"ClientId">,<"rol">,<"tipoRecurso">); Result => Recurso[]
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.getPermisosPorRol(<"ClientId">,<"rol">,<"tipoRecurso">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Validar Permisos por Codigo
// *****************************
// Verifica los permisos actuales por su codigo.
// *****************************
this.epmClientService.validarPermisoCodigo(<"ClientId">,<"Codigo">); Result => RespuestaAutorizacion
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.validarPermisoCodigo(<"ClientId">,<"Codigo">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Validar Permisos por Nombre
// *****************************
// Verifica los permisos actuales por su Nombre.
// *****************************
this.epmClientService.validarPermisoNombre(<"ClientId">,<"tipoRecurso">,<"recurso">); Result => RespuestaAutorizacion
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.validarPermisoNombre(<"ClientId">,<"tipoRecurso">,<"recurso">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Servicios Roles
Obtener Listado de Roles
// *****************************
// Obtiene un listado de Roles.
// *****************************
this.epmClientService.getListRoles(<"ClientId">); Result => Rol[]
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.getListRoles(<"ClientId">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Validar Rol
// *****************************
// Valida los roles por codigo.
// *****************************
this.epmClientService.validarRol(<"ClientId">,<"Codigo">); Result => RespuestaAutorizacion
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.validarRol(<"ClientId">,<"Codigo">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Validar Permisos Url
// *****************************
// Valida los permisos en una Url.
// *****************************
this.epmClientService.validarUrl(<"ClientId">,<"url">); Result => RespuestaAutorizacion
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.validarUrl(<"ClientId">,<"url">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Servicios Generales
Realizar Peticiones POST
// *****************************
// Permite Realizar peticiones POST a un recurso.
// *****************************
this.epmClientService.post(<"url">, body, <"recurso">, <"operacion">); Result => object
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.post(<"url">, body, <"recurso">, <"operacion">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
Realizar Peticiones GET
// *****************************
// Permite Realizar peticiones GET a un recurso.
// *****************************
this.epmClientService.get(<"url">, <"recurso">, <"operacion">); Result => object
Ejemplo
import {EpmClientService } from 'epm-client';
export class SidebarComponent implements OnInit {
botones: Recurso[];
constructor(private epmClientService: EpmClientService) { }
ngOnInit(): void {
this.epmClientService.get(<"url">, <"recurso">, <"operacion">).subscribe(res => {
var result = res;
})
}
Respuesta
{}
API's
Este paquete cuenta con las siguientes API's
// *****************************
// ClientId: Identificador único de cada aplicación cuando se registra en el componente de autorización.
// tipoRecurso: Codigo tipo de recurso a filtrar.
// recurso: Nombre o código del recurso a validar.
// url_recurso: Dirección URL del recurso.
// Codigo: Código del recurso a validar.
// Recurso[]: Listado de recursos.
// *****************************
getStorageMenu()
deleteStorageMenu()
saveStorageMenu(<Recurso[]>)
getMenu("<ClientId>")
validarRuta("url")
getEntidad("<ClientId>")
getStorageEntidad()
deleteStorageEntidad()
saveStorageEntidad(<Recurso[]>)
validarEntidad(<"entidad">)
validarEntidad(<"boton">)
validarBoton(<"boton">)
getStorageBotones()
deleteStorageBotones()
saveStorageBotones(<Recurso[]>)
getManifiesto("<ClientId>")
getListCodigosPermisos("<ClientId>")
getPermisosPorTipo("<ClientId>","tipoRecurso")
getPermisosPorRol("<ClientId>",<"rol">,<"TipoRecurso">)
validarPermisoCodigo("<ClientId>",<"codigo">)
validarPermisoNombre("<ClientId>",<"TipoRecurso">,<"recurso">)
getListRoles("<ClientId>")
validarRol("<ClientId>","codigoRol")
validarUrl("<ClientId>","url")
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago