public static function get($logFile, $name = 'default.claroline.logger') { $fileLogger = new FileLogger($name); $fileLogger->pushHandler(new StreamHandler($logFile)); return $fileLogger; }
/** * Creates a workspace from a form sent by POST. * * @EXT\Route( * "/", * name="claro_workspace_create" * ) * @EXT\Method("POST") * * @EXT\Template("ClarolineCoreBundle:Workspace:creationForm.html.twig") * * @return RedirectResponse | array */ public function createAction() { $this->assertIsGranted('ROLE_WS_CREATOR'); $user = $this->tokenStorage->getToken()->getUser(); $workspaceType = new WorkspaceType($user); $form = $this->formFactory->create($workspaceType, new Workspace()); $form->handleRequest($this->request); $modelLog = $this->container->getParameter('kernel.root_dir') . '/logs/models.log'; $logger = FileLogger::get($modelLog); $this->workspaceManager->setLogger($logger); if ($form->isValid()) { $model = $form->get('model')->getData(); if (!is_null($model)) { $this->createWorkspaceFromModel($model, $form); } else { $workspace = $form->getData(); $template = new File($this->templateArchive); $user = $this->tokenStorage->getToken()->getUser(); $workspace->setCreator($user); $workspace = $this->workspaceManager->create($workspace, $template); } $this->tokenUpdater->update($this->tokenStorage->getToken()); $route = $this->router->generate('claro_workspace_by_user'); $msg = $this->get('translator')->trans('successfull_workspace_creation', ['%name%' => $form->get('name')->getData()], 'platform'); $this->get('request')->getSession()->getFlashBag()->add('success', $msg); return new RedirectResponse($route); } return ['form' => $form->createView()]; }
/** * @EXT\Route( * "/{node}/rights/edit", * name="claro_resource_rights_edit", * options={"expose"=true} * ) * * Handles the submission of the resource multiple rights form. Expects an array of permissions * by role to be passed by POST method. Permissions are set to false when not passed * in the request. * * @param ResourceNode $node the resource * * @return Response * * @throws AccessDeniedException if the current user is not allowed to edit the resource */ public function editPermsAction(ResourceNode $node) { $rightsLog = $this->container->getParameter('kernel.root_dir') . '/logs/rights.log'; $logger = FileLogger::get($rightsLog); $this->rightsManager->setLogger($logger); $collection = new ResourceCollection(array($node)); $this->checkAccess('ADMINISTRATE', $collection); $datas = $this->getPermissionsFromRequest($node->getResourceType()); $isRecursive = $this->request->getCurrentRequest()->request->get('isRecursive'); $perms = array(); foreach ($datas as $data) { $perms[] = $this->rightsManager->editPerms($data['permissions'], $data['role'], $node, $isRecursive); } return new JsonResponse($datas, 200); }
/** * Creates a workspace from a form sent by POST. * * @EXT\Route( * "/", * name="claro_workspace_create" * ) * @EXT\Method("POST") * * @EXT\Template("ClarolineCoreBundle:Workspace:creationForm.html.twig") * * @return RedirectResponse | array */ public function createAction() { $this->assertIsGranted('ROLE_WS_CREATOR'); $user = $this->tokenStorage->getToken()->getUser(); $form = $this->formFactory->create(FormFactory::TYPE_WORKSPACE, array($user)); $form->handleRequest($this->request); $ds = DIRECTORY_SEPARATOR; $modelLog = $this->container->getParameter('kernel.root_dir') . '/logs/models.log'; $logger = FileLogger::get($modelLog); $this->workspaceManager->setLogger($logger); if ($form->isValid()) { $model = $form->get('model')->getData(); if (!is_null($model)) { $this->createWorkspaceFromModel($model, $form); } else { $config = Configuration::fromTemplate($this->templateDir . $ds . 'default.zip'); $config->setWorkspaceName($form->get('name')->getData()); $config->setWorkspaceCode($form->get('code')->getData()); $config->setDisplayable($form->get('displayable')->getData()); $config->setSelfRegistration($form->get('selfRegistration')->getData()); $config->setRegistrationValidation($form->get('registrationValidation')->getData()); $config->setSelfUnregistration($form->get('selfUnregistration')->getData()); $config->setWorkspaceDescription($form->get('description')->getData()); $user = $this->tokenStorage->getToken()->getUser(); $this->workspaceManager->create($config, $user); } $this->tokenUpdater->update($this->tokenStorage->getToken()); $route = $this->router->generate('claro_workspace_by_user'); $msg = $this->get('translator')->trans('successfull_workspace_creation', array('%name%' => $form->get('name')->getData()), 'platform'); $this->get('request')->getSession()->getFlashBag()->add('success', $msg); return new RedirectResponse($route); } return array('form' => $form->createView()); }