/**
  * 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);
 }
 private function checkAdminHomeTabConfig(HomeTabConfig $homeTabConfig, $homeTabType)
 {
     if (!is_null($homeTabConfig->getUser()) || !is_null($homeTabConfig->getWorkspace()) || $homeTabConfig->getType() !== 'admin_' . $homeTabType) {
         throw new AccessDeniedException();
     }
 }
 /**
  * @EXT\Route(
  *     "/api/workspace/home/tab/{homeTabConfig}/next/{nextHomeTabConfigId}/reorder",
  *     name="api_post_workspace_home_tab_config_reorder",
  *     options = {"expose"=true}
  * )
  * @EXT\Method("POST")
  *
  * Update workspace HomeTabConfig order
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function postAdminHomeTabConfigReorderAction(HomeTabConfig $homeTabConfig, $nextHomeTabConfigId)
 {
     $workspace = $homeTabConfig->getWorkspace();
     $this->checkToolEditionAccess($workspace);
     $homeTab = $homeTabConfig->getHomeTab();
     $this->checkWorkspaceHomeTab($workspace, $homeTab);
     $this->homeTabManager->reorderWorkspaceHomeTabConfigs($workspace, $homeTabConfig, $nextHomeTabConfigId);
     return new JsonResponse('success', 200);
 }