/** * Do the magic. * * @param InteractiveLoginEvent $event */ public function onSecurityInteractiveLogin(InteractiveLoginEvent $event) { if ($this->securityContext->isGranted('IS_AUTHENTICATED_FULLY')) { // user has just logged in } if ($this->securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED')) { // user has logged in using remember_me cookie } // do some other magic here $session = $event->getRequest()->getSession(); $referrer = $session->get('referrer'); if (empty($referrer)) { $referrer = $event->getRequest()->getUri(); } $user = $event->getAuthenticationToken()->getUser(); $log = new Log(); $log->setIdUsuario($user); $log->setDtAcao(new \DateTime()); $log->setNmTabela('acesso'); $log->setCsAcao('ACE'); $log->setTeIpOrigem($event->getRequest()->getClientIp()); $log->setNmScript($referrer); // Registra login $this->em->persist($log); $this->em->flush(); // TODO: Redireciona para útima página visitada }
/** * Excluir softwares cadastrados * * @param Request $request * @return JsonResponse */ public function excluirCadastradosAction(Request $request) { $em = $this->getDoctrine()->getManager(); if (!$request->isXmlHttpRequest()) { throw $this->createNotFoundException('Página não encontrada'); } $relatorio = $em->getRepository('CacicCommonBundle:SoftwareRelatorio')->find($request->get('id')); if (empty($relatorio)) { throw $this->createNotFoundException('Relatório não encontrado'); } // Usuário só pode editar seus próprios relatórios if (!$this->get('security.context')->isGranted('ROLE_ADMIN')) { if ($this->getUser()->getIdUsuario() != $relatorio->getIdUsuario()->getIdUsuario()) { throw $this->createAccessDeniedException("Usuário só pode editar seus próprios relatórios"); } } $em->remove($relatorio); // Registra no log de atividades $log = new Log(); $log->setIdUsuario($this->getUser()); $log->setCsAcao("DEL"); $log->setDtAcao(new \DateTime()); $log->setNmScript("Cadastro de relatórios"); $log->setNmTabela("software_relatorio"); $log->setTeIpOrigem($request->getClientIp()); $em->persist($log); $em->flush(); $this->get('session')->getFlashBag()->add('success', 'Relatório removido com sucesso!'); $response = new JsonResponse(); $response->setContent(json_encode(array('status' => 'ok'))); $response->setStatusCode(200); return $response; }