/**
  * 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);
 }
示例#3
0
 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();
     }
 }
示例#7
0
 /**
  * @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);
 }