/**
  *
  * @param string $attribute
  * @param \Tracker\Entity\Project $project
  * @param \Tracker\Entity\User $user
  * @return boolean
  * @throws \LogicException
  */
 protected function isGranted($attribute, $project, $user = null)
 {
     // make sure there is a user object (i.e. that the user is logged in)
     if (!$user instanceof UserInterface) {
         return false;
     }
     // double-check that the User object is the expected entity.
     // It always will be, unless there is some misconfiguration of the
     // security system.
     if (!$user instanceof User) {
         throw new \LogicException('The user is somehow not our User class!');
     }
     // If the current user have administrator rights, we should return true
     if ($user->getIsAdmin()) {
         return true;
     }
     switch ($attribute) {
         case self::VIEW:
             foreach ($project->getMembers() as $item) {
                 if ($item->getMember()->getId() === $user->getId()) {
                     return true;
                 }
             }
             break;
         case self::EDIT:
             break;
     }
     return false;
 }
 /**
  * 
  * @param Request $request
  */
 public function createAction(Request $request)
 {
     $this->get('breadcrumbs')->add('Home', 'homepage')->add('Projects', 'projects_list')->add('Manage project');
     $project = new Project();
     $project->setCreatedBy($this->getUser());
     $form = $this->get('form.factory')->create(new ProjectType(), $project);
     if ($form->handleRequest($request)->isValid()) {
         $entity = $form->getData();
         $this->persistAndFlush($entity);
         $this->addFlash('success', 'Project created successfuly!');
         return $this->redirectToRoute('projects_list');
     }
     return $this->render('projects/form.twig', array('title' => $this->trans('title.page.projects.create'), 'form' => $form->createView(), 'project' => null));
 }
 /**
  * Create new project
  *
  * @return void
  */
 private function addProject()
 {
     $entity = new Entity\Project();
     $createdBy = $this->entityManager->getReference('Tracker\\Entity\\User', 1);
     $entity->setTitle('Hello world');
     $entity->setIsPublic(true);
     $entity->setDescription('First project for demo purpose only');
     $entity->setCreatedBy($createdBy);
     $this->entityManager->persist($entity);
 }