/** * 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')); }
public function createDeleteForm(Log $log, Employee $employee) { return $this->createFormBuilder()->setAction($this->generateUrl('log_delete', ['log' => $log->getId(), 'employee' => $employee->getId()]))->setMethod('DELETE')->getForm(); }