/**
  * @EXT\Route(
  *     "/edit/subject/{subjectId}/submit",
  *     name="claro_forum_edit_subject"
  * )
  * @EXT\ParamConverter(
  *      "subject",
  *      class="ClarolineForumBundle:Subject",
  *      options={"id" = "subjectId", "strictId" = true}
  * )
  * @EXT\Template("ClarolineForumBundle:Forum:editSubjectForm.html.twig")
  *
  * @param Subject $subject
  */
 public function editSubjectAction(Subject $subject)
 {
     $forum = $subject->getCategory()->getForum();
     $isModerator = $this->authorization->isGranted('moderate', new ResourceCollection(array($forum->getResourceNode())));
     if (!$isModerator && $this->tokenStorage->getToken()->getUser() !== $subject->getCreator()) {
         throw new AccessDeniedException();
     }
     $oldTitle = $subject->getTitle();
     $form = $this->container->get('form.factory')->create(new EditTitleType(), $subject);
     $form->handleRequest($this->get('request'));
     if ($form->isValid()) {
         $newTitle = $form->get('title')->getData();
         $this->forumManager->editSubject($subject, $oldTitle, $newTitle);
         return new RedirectResponse($this->generateUrl('claro_forum_subjects', array('category' => $subject->getCategory()->getId())));
     }
     return array('form' => $form->createView(), 'subjectId' => $subject->getId(), 'forumId' => $forum->getId(), '_resource' => $forum, 'workspace' => $forum->getResourceNode()->getWorkspace());
 }