/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package ec.gob.mcds.seguridades.servicio; import ec.gob.mcds.seguridades.comparator.EntityMenuComparator; import ec.gob.mcds.seguridades.dao.MenuDao; import ec.gob.mcds.seguridades.dto.EntityMenu; import ec.gob.mcds.seguridades.model.Aplicacion; import ec.gob.mcds.seguridades.model.Menu; import ec.gob.mcds.seguridades.model.Rol; import ec.gob.mcds.seguridades.model.UsuarioRol; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.ejb.EJB; import javax.ejb.LocalBean; import javax.ejb.Stateless; /** * * @author ishmael */ @LocalBean @Stateless public class MenuServicio { @EJB private MenuDao menuDao; /** * método que guarda un menú. * * @param menu * @throws Exception */ public void guardarMenu(Menu menu) throws Exception { this.menuDao.create(menu); } /** * método que actualiza un menú. * * @param menu * @throws Exception */ public void actualizarMenu(Menu menu) throws Exception { this.menuDao.edit(menu); } /** * @see MenuDao.listarPorAplicacion(aplicacion) * @param aplicacion * @throws Exception * @return List */ public List<Menu> listarPorAplicacion(Aplicacion aplicacion) throws Exception { return this.menuDao.listarPorAplicacion(aplicacion); } /** * @see MenuDao.listarPorMenuPadre(menu) * @param menu * @throws Exception * @return List */ public List<Menu> listarPorMenuPadre(Menu menu) throws Exception { return this.menuDao.listarPorMenuPadre(menu); } /** * @see MenuDao.listarPorMenuPadre(menu,nodoFinal) * @param menu * @param nodoFinal * @throws Exception * @return List */ public List<Menu> listarPorMenuPadreNodoFinal(Menu menu, boolean nodoFinal) throws Exception { return this.menuDao.listarPorMenuPadre(menu); } /** * método que devuelve Menus procesados por lista de usuarios roles de seguridades. * * @param listaUsuarioRol * @throws Exception * @return List */ public List<EntityMenu> listarPorUsuarioRol(List<UsuarioRol> listaUsuarioRol) throws Exception { List<EntityMenu> listaDatos = new ArrayList<EntityMenu>(); Long estadoUsuario = null; Long idUsuario = null; Long padre = null; List<Rol> listaRoles = new ArrayList<Rol>(); for (UsuarioRol u : listaUsuarioRol) { idUsuario = 0l; estadoUsuario = 0l; listaRoles.add(u.getRol()); } List<Menu> listaAcceso = menuDao.listarPorRol(listaRoles); for (Menu ac : listaAcceso) { padre = ac.getPadreMenu(); listaDatos.add(new EntityMenu(ac.getMenId(), ac.getNombre(), ac.getActionPagina(), padre, estadoUsuario, idUsuario, ac.getNodoFinal(), ac.getOrden())); } Set<EntityMenu> listaNoRepetidos = new HashSet<EntityMenu>(listaDatos); List<EntityMenu> listaDatosRetorno = new ArrayList<EntityMenu>(listaNoRepetidos); Collections.sort(listaDatosRetorno, new EntityMenuComparator()); return listaDatosRetorno; } /** * método que devuelve Menu por nemonico de seguridades. * * @param nemonico * @return Menu */ public Menu obtenerPorNemonico(String nemonico) { return menuDao.obtenerPorNemonico(nemonico); } }