/**
  * Show Calendar
  */
 public function showAction(Employee $employee, $year, $month, $day)
 {
     $sc = $this->get('security.context');
     $user = $sc->getToken()->getUser();
     $userId = $user->getId();
     if ($employee->getId() != $userId && !$sc->isGranted('ROLE_ADMIN') && !$sc->isGranted('ROLE_MDBOSS')) {
         throw new AccessDeniedException("Unauthorized Access");
     } else {
         if ($sc->isGranted('ROLE_MDBOSS') && $employee->getId() != $userId) {
             $allRoles = $employee->getRoles();
             $show = 0;
             foreach ($allRoles as $role) {
                 if ($role->getRole() == 'ROLE_MEDIADESIGNER') {
                     $show = 1;
                 }
             }
             if ($show == 0) {
                 throw new AccessDeniedException("Unauthorized Access");
             }
         }
     }
     $calendar = $this->get('calendar');
     $calendar->personalize($employee);
     return $this->render('TimetrackerBundle:Calendar:show.html.twig', compact('calendar', 'employee'));
 }
 /**
  * Just to quickly seed the DB
  */
 public function storeLogfileAction(Request $request)
 {
     // Truncate tables
     $em = $this->getDoctrine()->getManager();
     $connection = $em->getConnection();
     $tables = ['Note', 'Log', 'Card', 'Employee'];
     $query = 'SET foreign_key_checks = 0;';
     foreach ($tables as $table) {
         $query .= 'TRUNCATE TABLE ' . $table . ';';
     }
     $connection->executeQuery($query);
     $em->flush();
     // Seed Tables
     $faker = Faker::create();
     $csvLog = $request->files->get('log');
     $csvLog = file_get_contents($csvLog->getPathName());
     $csvLog = explode("\n", $csvLog);
     $cards = [];
     $logs = [];
     foreach ($csvLog as $line) {
         $entry = str_getcsv($line, ';');
         $logs[] = $entry;
         if (!in_array($entry[1], $cards)) {
             $cards[] = $entry[1];
         }
     }
     foreach ($cards as $cardSignature) {
         $employee = new Employee();
         $employee->setFirstName($faker->firstName);
         $employee->setLastName($faker->lastName);
         $em->persist($employee);
         $card = new Card();
         $card->setSignature($cardSignature);
         $card->setEmployee($employee);
         $card->setIsActive(true);
         $em->persist($card);
         foreach ($logs as $log) {
             if ($log[1] == $cardSignature) {
                 $date = DateTime::createFromFormat('d.m.Y H:i', $log[2]);
                 $newLog = new Log();
                 $newLog->setCardSignature($cardSignature);
                 $newLog->setTime($date);
                 $newLog->setIsEdited(false);
                 $newLog->setCard($card);
                 $em->persist($newLog);
             }
         }
     }
     $em->flush();
     return $this->redirect($this->generateUrl('employee'));
 }
Exemple #3
0
 public function createDeleteForm(Log $log, Employee $employee)
 {
     return $this->createFormBuilder()->setAction($this->generateUrl('log_delete', ['log' => $log->getId(), 'employee' => $employee->getId()]))->setMethod('DELETE')->getForm();
 }