Exemplo n.º 1
0
 public function render(CantigaController $controller, Request $request, Workspace $workspace, Project $project = null)
 {
     $text = $this->textRepository->getTextOrFalse('cantiga:dashboard:' . $workspace->getKey(), $request, $project);
     if (false === $text) {
         return '';
     }
     return $this->templating->render('CantigaCoreBundle:AppText:dashboard-element.html.twig', ['text' => $text]);
 }
Exemplo n.º 2
0
 public function onControllerSelected(FilterControllerEvent $event)
 {
     if (null !== $this->workspace) {
         return;
     }
     $ctrl = $event->getController();
     if (is_array($ctrl)) {
         $ctrl = $ctrl[0];
     }
     if ($ctrl instanceof WorkspaceAwareInterface) {
         $this->workspaceController = $ctrl;
         $this->workspace = $ctrl->createWorkspace();
         $membershipLoader = $this->workspace->getMembershipLoader();
         $membership = null;
         if (null !== $membershipLoader) {
             try {
                 $user = $this->tokenStorage->getToken()->getUser();
                 $membership = $membershipLoader->findMembership($event->getRequest()->get('slug'), $user);
                 if (!$membership instanceof Membership) {
                     throw new LogicException('The membership loader did not return \'Membership\' instance.');
                 }
                 $project = $membershipLoader->findProjectForEntity($membership->getItem());
                 $user->addRole($membership->getRole()->getAuthRole());
                 User::installMembershipInformation($user, $membership);
                 $this->projectSettings->setProject($project);
                 $this->tokenStorage->setToken(new MembershipToken($this->tokenStorage->getToken(), $membership, $project));
             } catch (ItemNotFoundException $exception) {
                 throw new AccessDeniedHttpException($exception->getMessage(), $exception);
             }
         } else {
             $oldToken = $this->tokenStorage->getToken();
             $this->tokenStorage->setToken(new UsernamePasswordToken($oldToken->getUser(), $oldToken->getCredentials(), $oldToken->getProviderKey(), $oldToken->getUser()->getRoles()));
             User::installMembershipInformation($this->tokenStorage->getToken()->getUser(), $membership = new Membership());
         }
         $this->workspace->onWorkspaceLoaded($membership);
     }
 }
Exemplo n.º 3
0
 public function fetch(Workspace $workspace)
 {
     $bc = array();
     foreach ($this->links as $link) {
         switch ($link['type']) {
             case self::STATIC_ITEM:
                 $bc[] = ['text' => $link['text'], 'link' => ''];
                 break;
             case self::CLICKABLE:
                 if (isset($link['url'])) {
                     $bc[] = ['text' => $link['text'], 'link' => $link['url']];
                 } else {
                     $bc[] = ['text' => $link['text'], 'link' => $this->router->generate($link['route'], $link['args'])];
                 }
                 break;
             case self::WORKGROUP:
                 $bc[] = ['text' => $this->translator->trans($workspace->getWorkgroup($link['wg'])->getName(), [], 'pages'), 'link' => ''];
         }
     }
     return $bc;
 }