package br.com.centralit.citsmart.rest.service; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citsmart.rest.bean.RestOperationDTO; import br.com.centralit.citsmart.rest.bean.RestPermissionDTO; import br.com.centralit.citsmart.rest.bean.RestSessionDTO; import br.com.centralit.citsmart.rest.dao.RestPermissionDao; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.CrudServiceImpl; public class RestPermissionServiceEjb extends CrudServiceImpl implements RestPermissionService { private RestPermissionDao dao; @Override protected RestPermissionDao getDao() { if (dao == null) { dao = new RestPermissionDao(); } return dao; } @Override public Collection<RestPermissionDTO> findByIdOperation(final Integer parm) throws Exception { try { return this.getDao().findByIdOperation(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdOperation(final Integer parm) throws Exception { try { this.getDao().deleteByIdOperation(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<RestPermissionDTO> findByIdGroup(final Integer parm) throws Exception { try { return this.getDao().findByIdGroup(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdGroup(final Integer parm) throws Exception { try { this.getDao().deleteByIdGroup(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public boolean allowedAccess(final RestSessionDTO restSessionDto, final RestOperationDTO restOperationDto) { final UsuarioDTO usuarioDto = restSessionDto.getUser(); if (usuarioDto == null || usuarioDto.getColGrupos() == null) { return false; } boolean result = false; for (final GrupoDTO grupoDto : usuarioDto.getColGrupos()) { final RestPermissionDTO restPermissionDto = new RestPermissionDTO(); restPermissionDto.setIdRestOperation(restOperationDto.getIdRestOperation()); restPermissionDto.setIdGroup(grupoDto.getIdGrupo()); List<RestPermissionDTO> list = null; try { list = (List<RestPermissionDTO>) this.find(restPermissionDto); } catch (final Exception e) { e.printStackTrace(); } if (list != null && !list.isEmpty() && list.get(0).getStatus().trim().equals("A")) { result = true; break; } } return result; } }