コード例 #1
0
ファイル: FileLogger.php プロジェクト: ngydat/CoreBundle
 public static function get($logFile, $name = 'default.claroline.logger')
 {
     $fileLogger = new FileLogger($name);
     $fileLogger->pushHandler(new StreamHandler($logFile));
     return $fileLogger;
 }
コード例 #2
0
 /**
  * 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()];
 }
コード例 #3
0
 /**
  * @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);
 }
コード例 #4
0
 /**
  * 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());
 }