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]); }
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); } }
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; }