/** * @param Subject $subject */ public function __construct(Subject $subject) { $details = array('subject' => array('id' => $subject->getId(), 'title' => $subject->getTitle()), 'category' => array('id' => $subject->getCategory()->getId()), 'forum' => array('id' => $subject->getCategory()->getForum()->getId())); parent::__construct($subject->getCategory()->getForum()->getResourceNode(), $details); }
/** * @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()); }