getDoctrine()->getManager(); $user=$this->getUser(); $masterurl=$this->getParameter("masterurl"); $masterapikey=$this->getParameter("masterapikey"); if(stripos($masterurl,"/")===0) $url="https://".$this->getParameter("weburl").$masterurl; else $url=$masterurl; $indomaine = (stripos($url,$this->getParameter("weburl"))!==false); if($user) { // Recherche des élèments de masterIdentify $headers = ['Accept' => 'application/json']; $query = []; /* si hor domaine on utilise le proxy si proxy il y a */ if(!$indomaine) { $PROXYactivate = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYactivate")->getValue(); if($PROXYactivate) { $PROXYserver = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYserver")->getValue(); $PROXYport = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYport")->getValue(); \Unirest\Request::proxy($PROXYserver, $PROXYport, CURLPROXY_HTTP, true); } } // Récupération des informations utilisateurs issus du masteridentity $response = \Unirest\Request::get($url.'/rest/user/'.$masterapikey.'/'.$user->getUsername(),$headers,$query); // Mise à jour du user $user->setAvatar($response->body->user->avatar); $user->setRole($response->body->user->role); $em->persist($user); $em->flush(); // Mise à jour des groupes $groups=$response->body->groups; $mygroup=[]; foreach($groups as $groupexternal) { // Le groupe existe-t-il $group=$em->getRepository("CadolesCoreBundle:Group")->findOneBy(["idexternal"=>$groupexternal->id]); if(!$group) $group = new Group(); $group->setIdexternal($groupexternal->id); $group->setLabel($groupexternal->title); $em->persist($group); $em->flush(); } // Sauvegarde en session des groupes de l'utilisateur $this->get('session')->set("groups",$groups); } // Total servers $servers = $em->getRepository("CadolesCoreBundle:Server")->findAll(); // Total by module $totalmodules = $em->createQueryBuilder() ->select('COUNT(s.module) total','s.module label') ->from('CadolesCoreBundle:Server','s') ->groupBy('s.module'); // Total by version $totalversions = $em->createQueryBuilder() ->select('COUNT(s.version) total','s.version label') ->from('CadolesCoreBundle:Server','s') ->groupBy('s.version'); // Total applications $applications = $em->getRepository("CadolesCoreBundle:ServerApplication")->findAll(); // Total by apps $totalapplications = $em->createQueryBuilder() ->select('COUNT(a.package) total','a.name label') ->from('CadolesCoreBundle:ServerApplication','sa') ->from('CadolesCoreBundle:Application','a') ->where('sa.application=a.id') ->groupBy('a.package') ->orderBy('total','DESC'); return $this->render('CadolesCoreBundle:Core:home.html.twig',[ 'useheader' => true, 'usemenu' => false, 'usesidebar' => false, 'totalserveurs' => count($servers), 'totalbymodules' => $totalmodules->getQuery()->getResult(), 'totalbyversions' => $totalversions->getQuery()->getResult(), 'totalapplications' => count($applications), 'totalbyapplications' => $totalapplications->getQuery()->getResult() ]); } }