예제 #1
0
 /**
  *  Método responsável por verificar e e enviar os Hashes ao Agente CACIC
  *  @param Symfony\Component\HttpFoundation\Request $request
  */
 public function updateAction(Request $request)
 {
     $logger = $this->get('logger');
     OldCacicHelper::autenticaAgente($request);
     $strNetworkAdapterConfiguration = OldCacicHelper::deCrypt($request, $request->get('NetworkAdapterConfiguration'));
     $te_node_address = TagValueHelper::getValueFromTags('MACAddress', $strNetworkAdapterConfiguration);
     $netmask = TagValueHelper::getValueFromTags('IPSubnet', $strNetworkAdapterConfiguration);
     $ip_computador = $request->get('te_ip_computador');
     if (empty($ip_computador)) {
         $ip_computador = TagValueHelper::getValueFromTags('IPAddress', $strNetworkAdapterConfiguration);
     }
     if (empty($ip_computador) or $ip_computador == '127.0.0.1') {
         $ip_computador = $request->getClientIp();
     }
     /**
      * Caso não tenha encontrado, tenta pegar a variável da requisição
      */
     if (empty($te_node_address)) {
         $te_node_address = $request->get('te_node_address');
     }
     if (empty($netmask)) {
         $netmask = $request->get('netmask');
     }
     /**
      * Executa atualização forçada se algum dos parâmetros obrigatórios estiver vazio
      */
     $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta($ip_computador, $netmask);
     $local = $rede->getIdLocal();
     $configs = $this->getDoctrine()->getRepository('CacicCommonBundle:ConfiguracaoLocal')->listarPorLocal($local->getIdLocal());
     $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta($ip_computador, $netmask);
     $redes_versoes_modulos = $this->getDoctrine()->getRepository('CacicCommonBundle:RedeVersaoModulo')->findBy(array('idRede' => $rede->getIdRede()));
     $nm_user_login_updates = OldCacicHelper::enCrypt($request, $rede->getNmUsuarioLoginServUpdates());
     $senha_serv_updates = OldCacicHelper::enCrypt($request, $rede->getTeSenhaLoginServUpdates());
     $logger->debug("Teste de Conexão GET-UPDATE! Ip do computador: {$ip_computador} Máscara da rede: {$netmask} MAC Address: {$te_node_address}");
     $response = new Response();
     $response->headers->set('Content-Type', 'xml');
     return $this->render('CacicWSBundle:Default:update.xml.twig', array('configs' => $configs, 'rede' => $rede, 'redes_versoes_modulos' => $redes_versoes_modulos, 'main_program' => OldCacicHelper::CACIC_MAIN_PROGRAM_NAME . '.exe', 'folder_name' => OldCacicHelper::CACIC_LOCAL_FOLDER_NAME, 'nm_user_login_updates' => $nm_user_login_updates, 'senha_serv_updates' => $senha_serv_updates, 'cs_compress' => $request->get('cs_compress'), 'cs_cipher' => $request->get('cs_cipher'), 'ws_folder' => OldCacicHelper::CACIC_WEB_SERVICES_FOLDER_NAME), $response);
 }
예제 #2
0
 /**
  *  Método responsável por enviar as configurações de Patrimônio necessarias ao Agente CACIC
  *  @param Symfony\Component\HttpFoundation\Request $request
  */
 public function mapaAction(Request $request)
 {
     $logger = $this->get('logger');
     $em = $this->getDoctrine()->getManager();
     OldCacicHelper::autenticaAgente($request);
     $strNetworkAdapterConfiguration = OldCacicHelper::deCrypt($request, $request->get('NetworkAdapterConfiguration'));
     $strComputerSystem = OldCacicHelper::deCrypt($request, $request->get('ComputerSystem'));
     $strOperatingSystem = OldCacicHelper::deCrypt($request, $request->request->get('OperatingSystem'));
     $te_node_address = TagValueHelper::getValueFromTags('MACAddress', $strNetworkAdapterConfiguration);
     $netmask = TagValueHelper::getValueFromTags('IPSubnet', $strNetworkAdapterConfiguration);
     $te_so = $request->get('te_so');
     $ultimo_login = TagValueHelper::getValueFromTags('UserName', $strComputerSystem);
     $ip_computador = $request->get('te_ip_computador');
     $versaoAgente = $request->get('te_versao_cacic');
     if (empty($ip_computador)) {
         $ip_computador = TagValueHelper::getValueFromTags('IPAddress', $strNetworkAdapterConfiguration);
     }
     if (empty($ip_computador)) {
         $ip_computador = $request->getClientIp();
     }
     // Caso não tenha encontrado, tenta pegar a variável da requisição
     if (empty($te_node_address)) {
         $te_node_address = $request->get('te_node_address');
     }
     if (empty($netmask)) {
         $netmask = $request->get('netmask');
     }
     //vefifica se existe SO coletado se não, insere novo SO
     $so = $em->getRepository('CacicCommonBundle:So')->createIfNotExist($te_so);
     $rede = $em->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta($ip_computador, $netmask);
     // Retorna falso por padrão
     $modPatrimonio = "false";
     if (empty($te_node_address) || empty($so)) {
         $this->get('logger')->error("Erro na operação de getMapa. IP = {$ip_computador} Máscara = {$netmask}. MAC = {$te_node_address}. SO = {$te_so}");
         $response = new Response();
         $response->headers->set('Content-Type', 'xml');
         return $this->render('CacicWSBundle:Default:mapa.xml.twig', array('mensagem' => "", 'modPatrimonio' => "false"), $response);
     }
     $computador = $em->getRepository('CacicCommonBundle:Computador')->getComputadorPreCole($request, $te_so, $te_node_address, $rede, $so, $ip_computador);
     $idComputador = $computador->getIdComputador();
     $logger->debug("Teste de Conexão GET-MAPA ! Ip do computador: {$ip_computador} Máscara da rede: {$netmask} MAC Address: {$te_node_address} ID Computador: {$idComputador}");
     $patr = $em->getRepository('CacicCommonBundle:AcaoRede')->findOneBy(array('rede' => $rede->getIdRede(), 'acao' => 'col_patr'));
     /**
      * Se o módulo estiver habilitado, verifica se existe coleta de patrimônio
      */
     if (!empty($patr)) {
         $result = $em->getRepository('CacicCommonBundle:ComputadorColeta')->getDadosColetaComputador($computador, 'Patrimonio');
         /**
          * Caso não exista nenhuma coleta, envia "true" para o agente.
          */
         if (empty($result)) {
             $logger->debug("COLETA DE PATRIMÔNIO INEXISTENTE!!! COLETANDO...");
             $modPatrimonio = "true";
         }
     }
     /**
      * Força coleta do patrimônio
      */
     $forcaPatrimonio = $computador->getForcaPatrimonio();
     if ($forcaPatrimonio == "S") {
         $logger->debug("COLETA FORÇADA DE PATRIMÔNIO: {$forcaPatrimonio}");
         $modPatrimonio = "true";
         $computador->setForcaPatrimonio('N');
         $em->persist($computador);
     }
     $em->flush();
     /**
      * Mensagem a ser exibida na tela de Pop-Up do patrimônio
      */
     $mensagem = $em->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->findOneBy(array('idConfiguracao' => 'msg_popup_patrimonio'));
     if (!empty($mensagem)) {
         $mensagem = $mensagem->getVlConfiguracao();
     } else {
         $mensagem = "Pop-up de patrimônio";
     }
     //$mensagem = implode('',$mensagem);
     $logger->debug("RESULTADO DO PATRIMÔNIO: {$modPatrimonio}");
     // Retorna patrimônio
     $response = new Response();
     $response->headers->set('Content-Type', 'xml');
     return $this->render('CacicWSBundle:Default:mapa.xml.twig', array('mensagem' => $mensagem, 'modPatrimonio' => $modPatrimonio), $response);
 }
예제 #3
0
 /**
  *  Método responsável por informar e coletar informações sobre dispositivos USB plugados na estação
  *  @param Request $request
  */
 public function gerColsSetUsbDetectAction(Request $request)
 {
     OldCacicHelper::autenticaAgente($request);
     $strNetworkAdapterConfiguration = OldCacicHelper::deCrypt($request, $request->get('NetworkAdapterConfiguration'));
     $data = new \DateTime('NOW');
     $netmask = TagValueHelper::getValueFromTags('IPSubnet', $strNetworkAdapterConfiguration);
     $ip_computador = $request->get('te_ip_computador');
     if (empty($ip_computador)) {
         $ip_computador = TagValueHelper::getValueFromTags('IPAddress', $strNetworkAdapterConfiguration);
     }
     if (empty($ip_computador) or $ip_computador == '127.0.0.1') {
         $ip_computador = $request->getClientIp();
     }
     $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta($ip_computador, $netmask);
     $te_node_address = TagValueHelper::getValueFromTags('MACAddress', $strNetworkAdapterConfiguration);
     $te_so = $request->get('te_so');
     $so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->findOneBy(array('teSo' => $te_so));
     $computador = $this->getDoctrine()->getRepository('CacicCommonBundle:Computador')->getComputadorPreCole($request, $te_so, $te_node_address, $rede, $so, $ip_computador);
     $local = $computador->getIdRede()->getIdLocal();
     $te_usb_info = OldCacicHelper::deCrypt($request, $request->get('te_usb_info'));
     if ($te_usb_info != '') {
         $arrUsbInfo = explode('_', $te_usb_info);
         $arrTeUsbFilter = $this->getDoctrine()->getRepository('CacicCommonBundle:ConfiguracaoLocal')->listarNotificacaoPropertyLocal($local->getIdLocal(), 'te_usb_filter');
         $arrTeNotificarUtilizacaoUSB = $this->getDoctrine()->getRepository('CacicCommonBundle:ConfiguracaoLocal')->listarNotificacaoPropertyLocal($rede->getIdLocal(), 'te_notificar_utilizacao_usb');
         $arrVendorData = $this->getDoctrine()->getRepository('CacicCommonBundle:UsbVendor  ')->findBy(array('idVendor' => $arrUsbInfo[2]));
         if (empty($arrVendorData)) {
             $usb_vendor = new UsbVendor();
             $usb_vendor->setIdUsbVendor($arrUsbInfo[2]);
             $usb_vendor->setNmUsbVendor('Fabricante de Dispositivos USB Desconhecido');
             $arrVendorData = $usb_vendor;
         }
         $arrDeviceData = $this->getDoctrine()->getRepository('CacicCommonBundle:UsbDevice')->findBy(array('idDevice' => $arrUsbInfo[3], 'idVendor' => $arrUsbInfo[2]));
         if (empty($arrDeviceData)) {
             $usb_device = new UsbDevice();
             $usb_device->setIdUsbVendor($arrVendorData);
             $usb_device->setIdDevice($arrUsbInfo[3]);
             $usb_device->setNmUsbDevice('Dispositivo USB Desconhecido');
             $arrDeviceData = $usb_device;
         }
         $usb_log = new UsbLog();
         $usb_log->setIdComputador($computador);
         $usb_log->getCsEvent($arrUsbInfo[0]);
         $usb_log->setDtEvent($arrUsbInfo[1]);
         $usb_log->setIdUsbDevice($arrDeviceData);
         if (trim($arrTeUsbFilter[0]['teUsbFilter']) != '' && trim($arrTeNotificarUtilizacaoUSB[0]['teNotificarUtilizacaoUsb']) != '') {
             $arrUSBfilter = explode('#', $arrTeUsbFilter[0]['te_usb_filter']);
             $strUSBkey = $arrUsbInfo[2] . "." . $arrUsbInfo[3];
             $indexOf = array_search($strUSBkey, $arrUSBfilter);
             if ($indexOf != -1) {
                 $strCorpoMail = '';
                 $strCorpoMail .= " Prezado administrador,\n\n";
                 $strCorpoMail .= " foi " . ($arrUsbInfo[0] == 'I' ? 'inserido' : 'removido') . " o dispositivo '(" . $arrVendorData[0]['id_vendor'] . ")" . $arrVendorData[0]['nm_vendor'] . " / (" . $arrDeviceData[0]['id_device'] . ")" . $arrDeviceData[0]['nm_device'] . ($arrUsbInfo[0] == 'I' ? 'n' : 'd') . "a esta��o de trabalho abaixo:\n\n";
                 $strCorpoMail .= " Nome...........: " . $computador->getNmComputador() . "\n";
                 $strCorpoMail .= " Endereço IP: " . $computador->getTeIpComputador() . "\n";
                 $strCorpoMail .= " Rede............: " . $rede['nmRede'] . " ('" . $rede['teIpRede'] . "')\n";
                 $strCorpoMail .= "\n\nPara visualizar mais informações sobre esse computador, acesse o endereço\nhttp://";
                 $strCorpoMail .= CACIC_PATH . '/relatorios/computador/computador.php?id_computador=' . $computador->getIdComputador();
                 $strCorpoMail .= "\n\n\n________________________________________________\n";
                 $strCorpoMail .= "CACIC - " . date('d/m/Y H:i') . "h \n";
                 // Manda mail para os administradores.
                 //TODO verificar Boas Praticas mail($arrTeNotificarUtilizacaoUSB[0]['te_notificar_utilizacao_usb'], "[Sistema CACIC] ".($arrUsbInfo[0] == 'I'?'Inser��o':'Remo��o')." de Dispositivo USB Detectada", "$strCorpoMail", "From: cacic@{$_SERVER['SERVER_NAME']}");
             }
         }
         $nm_device = OldCacicHelper::enCrypt($request, '(' . $arrVendorData[0]['id_vendor'] . ')' . $arrVendorData[0]['nm_vendor'] . ' - (' . $arrDeviceData[0]['id_device'] . ')' . $arrDeviceData[0]['nm_device']);
     }
     $this->getDoctrine()->getManager()->flush();
     //persistencia dos dados no BD
     $response = new Response();
     $response->headers->set('Content-Type', 'xml');
     $cacic_helper = new OldCacicHelper($this->get('kernel'));
     return $this->render('CacicWSBundle:Coleta:setusb.xml.twig', array('configs' => $cacic_helper->getTest($request), 'computador' => $computador, 'rede' => $rede, 'ws_folder' => OldCacicHelper::CACIC_WEB_SERVICES_FOLDER_NAME, 'cs_cipher' => $request->get('cs_cipher'), 'cs_compress' => $request->get('cs_compress'), 'status' => 'OK', 'nm_device' => $nm_device), $response);
 }