/** * Constructor. */ public function __construct(HomeTabConfig $htc) { $homeTab = $htc->getHomeTab(); $details = []; $details['tabId'] = $homeTab->getId(); $details['tabName'] = $homeTab->getName(); $details['tabType'] = $homeTab->getType(); $details['tabIcon'] = $homeTab->getIcon(); $details['configId'] = $htc->getId(); $details['type'] = $htc->getType(); $details['locked'] = $htc->isLocked(); $details['visible'] = $htc->isVisible(); $details['tabOrder'] = $htc->getTabOrder(); $details['details'] = $htc->getDetails(); parent::__construct(self::ACTION, $details); }
/** * Constructor. */ public function __construct(HomeTabConfig $htc) { $workspace = $htc->getWorkspace(); $homeTab = $htc->getHomeTab(); $details = []; $details['tabId'] = $homeTab->getId(); $details['tabName'] = $homeTab->getName(); $details['tabType'] = $homeTab->getType(); $details['tabIcon'] = $homeTab->getIcon(); $details['configId'] = $htc->getId(); $details['type'] = $htc->getType(); $details['locked'] = $htc->isLocked(); $details['visible'] = $htc->isVisible(); $details['tabOrder'] = $htc->getTabOrder(); $details['details'] = $htc->getDetails(); $details['workspaceId'] = $workspace->getId(); $details['workspaceCode'] = $workspace->getCode(); $details['workspaceName'] = $workspace->getName(); $details['workspaceGuid'] = $workspace->getGuid(); parent::__construct(self::ACTION, $details, null, null, null, null, $workspace); }
public function createUserVersion(HomeTabConfig $homeTabConfig, User $user) { $newHomeTabConfig = new HomeTabConfig(); $newHomeTabConfig->setHomeTab($homeTabConfig->getHomeTab()); $newHomeTabConfig->setType($homeTabConfig->getType()); $newHomeTabConfig->setUser($user); $newHomeTabConfig->setVisible($homeTabConfig->isVisible()); $newHomeTabConfig->setLocked($homeTabConfig->isLocked()); $newHomeTabConfig->setTabOrder($homeTabConfig->getTabOrder()); $this->om->persist($newHomeTabConfig); $this->om->flush(); return $newHomeTabConfig; }
/** * @EXT\Route( * "/api/admin/home/tab/{homeTabConfig}/type/{homeTabType}/delete", * name="api_delete_admin_home_tab", * options = {"expose"=true} * ) * @EXT\ParamConverter("user", options={"authenticatedUser" = true}) * * Deletes admin home tab * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function deleteAdminHomeTabAction(HomeTabConfig $homeTabConfig, $homeTabType = 'desktop') { $homeTab = $homeTabConfig->getHomeTab(); $this->checkAdminHomeTab($homeTab, $homeTabType); $this->checkAdminHomeTabConfig($homeTabConfig, $homeTabType); $htcDatas = $this->serializer->serialize($homeTabConfig, 'json', SerializationContext::create()->setGroups(['api_home_tab'])); $this->homeTabManager->deleteHomeTabConfig($homeTabConfig); $this->homeTabManager->deleteHomeTab($homeTab); $event = new LogHomeTabAdminDeleteEvent(json_decode($htcDatas, true)); $this->eventDispatcher->dispatch('log', $event); return new JsonResponse($htcDatas, 200); }
/** * @EXT\Route( * "/api/workspace/home/tab/{homeTabConfig}/bookmark", * name="api_post_workspace_home_tab_bookmark", * options = {"expose"=true} * ) * @EXT\ParamConverter("user", options={"authenticatedUser" = true}) * * Bookmark the given workspace homeTab. * * @return Response */ public function postWorkspaceHomeTabBookmarkAction(User $user, HomeTabConfig $homeTabConfig) { $homeTab = $homeTabConfig->getHomeTab(); $this->checkRoleAccessToHomeTab($homeTab); $userHTC = $this->homeTabManager->getOneVisibleWorkspaceUserHTC($homeTab, $user); if (is_null($userHTC)) { $workspace = $homeTab->getWorkspace(); $userHTC = new HomeTabConfig(); $userHTC->setHomeTab($homeTab); $userHTC->setUser($user); $userHTC->setWorkspace($workspace); $userHTC->setType('workspace_user'); $lastOrder = $this->homeTabManager->getOrderOfLastWorkspaceUserHomeTabByUser($user); if (is_null($lastOrder['order_max'])) { $userHTC->setTabOrder(1); } else { $userHTC->setTabOrder($lastOrder['order_max'] + 1); } $userHTC->setDetails($homeTabConfig->getDetails()); $this->homeTabManager->insertHomeTabConfig($userHTC); $event = new LogHomeTabWorkspacePinEvent($homeTabConfig); $this->eventDispatcher->dispatch('log', $event); } return new JsonResponse('success', 200); }
private function checkWidgetCreation(User $user, HomeTabConfig $htc) { $homeTab = $htc->getHomeTab(); $homeTabUser = $homeTab->getUser(); $type = $homeTab->getType(); $locked = $htc->isLocked(); $visible = $htc->isVisible(); $canCreate = $visible && !$locked && ($type === 'desktop' && $homeTabUser === $user || $type === 'admin_desktop' && $visible && !$locked); if ($user === '.anon' || $this->roleManager->isHomeLocked($user) || !$canCreate) { throw new AccessDeniedException(); } }
/** * @EXT\Route( * "/home_tab/{homeTabConfigId}/visibility/{visible}/update", * name="claro_home_tab_update_visibility", * options = {"expose"=true} * ) * @EXT\ParamConverter("user", options={"authenticatedUser" = true}) * @EXT\ParamConverter( * "homeTabConfig", * class="ClarolineCoreBundle:Home\HomeTabConfig", * options={"id" = "homeTabConfigId", "strictId" = true} * ) * * Configure visibility of an Home tab * * @return Response */ public function homeTabUpdateVisibilityAction(User $user, HomeTabConfig $homeTabConfig, $visible) { $homeTab = $homeTabConfig->getHomeTab(); $this->checkUserAccessForAdminHomeTab($homeTab, $user); $isVisible = $visible === 'visible' ? true : false; $this->homeTabManager->updateVisibility($homeTabConfig, $isVisible); return new Response('success', 204); }