Пример #1
0
 /**
  * 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
 }
Пример #2
0
 /**
  * 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;
 }