1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
<?php
namespace MuBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use MuBundle\Entity\Historique;
/**
* Historique controller.
*
* @Route("/historique")
*/
class HistoriqueController extends Controller
{
/**
* Lists all Historique entities.
*
* @Route("/", name="historique")
* @Method("GET")
* @Template()
*/
public function indexAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('MuBundle:Historique')->listByAsc();
return array(
'entities' => $entities,
);
}
/**
* Finds and displays a Historique entity.
*
* @Route("/{id}", name="historique_show")
* @Method("GET")
* @Template()
*/
public function showAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MuBundle:Historique')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Historique entity.');
}
return array(
'entity' => $entity,
);
}
/**
* recupère les informations de l'application/evenement/serveur pour les afficher dans l'historique
* @param $entity, l'entité concerné par l'action
* @param $old_entity, les anciennes données de l'entité avant modification
* @return string
*/
public function addDetailHisto($entity, $old_entity)
{
$info = '';
if($old_entity->getNom() != $entity->getNom())
{
$info .=" modification du nom (ancien nom : \r\n".$old_entity->getNom()." )";
}
if($old_entity->getDescription() != $entity->getDescription())
{
$info .= ' modification description';
}
if ($old_entity->getUrlAcces() != $entity->getUrlAcces())
{
$info .= " modification urlAcces (ancienne : \r\n".$old_entity->getUrlAcces().')';
}
if ($old_entity->getEtat() != $entity->getEtat())
{
$info .=" modification de l'etat (ancien : \r\n".$old_entity->getEtat().")";
}
if ($old_entity->getDocs()!= $entity->getDocs())
{
$info .=' ajout documentation '.$entity->getDocs();
}
if ($old_entity->getResponsables() != $entity->getResponsables())
{
$info .=' ajout d\un responsable';
}
return $info;
}
/**
* ajout des informations dans la table historique et récupération des données de l'utilisateur courant pour l'affichage
* et stockage dans la table responsable s'il n'existe pas
* @param $entity, l'entité concernée par l'action
* @param Request $request
* @param $old, les anciennes données à afficher dans le détail en pop-up si l'action est une modification
* @param $app, le nom de la classe concernée (application, serveur ou evenement)
*/
public function addHistorique($entity, Request $request,$old, $app, $Uid)
{
$histo = new Historique();
$histo->setNom($entity->getNom());
if($request->isMethod('POST')){
$histo->setDescription("ajout $app");
}
if($request->isMethod('PUT')){
$histo->setDescription("modification $app");
$histo->setDetail($this->addDetailHisto($entity, $old));
}
if ($request->isMethod('DELETE')){
$histo->setDescription("suppression $app");
}
$em = $this->getDoctrine()->getEntityManager();
echo 'dump '.dump($em);exit;
$entities = $em->getRepository('MuBundle:Responsable')->findByUid($Uid);
// si le responsable est déja enregistré dans la BDD, on affiche juste son nom et prénom dans l'historique
if (!empty($entities)) {
// bout de code ici pour remplir une table
}
// sinon on enregistre ses informations récupérées grâce au LDAP dans la BDD
else {
$resp = new Responsable();
//bout de code ici pour remplir la BDD
}
$em->persist($histo);
$em->persist($resp);
$em->flush();
}
} |