/** * Constructor. */ public function __construct(HomeTab $homeTab, WidgetHomeTabConfig $whtc, WidgetDisplayConfig $wdc = null) { $workspace = $homeTab->getWorkspace(); $widgetInstance = $whtc->getWidgetInstance(); $widget = $widgetInstance->getWidget(); $details = []; $details['tabId'] = $homeTab->getId(); $details['tabName'] = $homeTab->getName(); $details['tabType'] = $homeTab->getType(); $details['tabIcon'] = $homeTab->getIcon(); $details['widgetId'] = $widget->getId(); $details['widgetName'] = $widget->getName(); $details['widgetIsConfigurable'] = $widget->isConfigurable(); $details['widgetIsExportable'] = $widget->isExportable(); $details['widgetIsDisplayableInWorkspace'] = $widget->isDisplayableInWorkspace(); $details['widgetIsDisplayableInDesktop'] = $widget->isDisplayableInDesktop(); $details['id'] = $widgetInstance->getId(); $details['name'] = $widgetInstance->getName(); $details['icon'] = $widgetInstance->getIcon(); $details['isAdmin'] = $widgetInstance->isAdmin(); $details['isDesktop'] = $widgetInstance->isDesktop(); $details['widgetHomeTabConfigId'] = $whtc->getId(); $details['order'] = $whtc->getWidgetOrder(); $details['type'] = $whtc->getType(); $details['visible'] = $whtc->isVisible(); $details['locked'] = $whtc->isLocked(); $details['workspaceId'] = $workspace->getId(); $details['workspaceCode'] = $workspace->getCode(); $details['workspaceName'] = $workspace->getName(); $details['workspaceGuid'] = $workspace->getGuid(); if (!is_null($wdc)) { $details['widgetDisplayConfigId'] = $wdc->getId(); $details['row'] = $wdc->getRow(); $details['column'] = $wdc->getColumn(); $details['width'] = $wdc->getWidth(); $details['height'] = $wdc->getHeight(); $details['color'] = $wdc->getColor(); } parent::__construct(self::ACTION, $details, null, null, null, null, $workspace); }
private function checkAdminHomeTab(HomeTab $homeTab, $homeTabType) { if (!is_null($homeTab->getUser()) || !is_null($homeTab->getWorkspace()) || $homeTab->getType() !== 'admin_' . $homeTabType) { throw new AccessDeniedException(); } }
private function checkRoleAccessToHomeTab(HomeTab $homeTab) { $workspace = $homeTab->getWorkspace(); $this->checkToolAccess($workspace); $canEdit = $this->hasWorkspaceEditionAccess($workspace); $homeTabRoles = $homeTab->getRoles(); $hasAccess = $canEdit || count($homeTabRoles) === 0; if (!$hasAccess) { $userRoleNames = $this->utils->getRoles($this->tokenStorage->getToken()); foreach ($homeTabRoles as $role) { $homeTabRoleName = $role->getName(); if (in_array($homeTabRoleName, $userRoleNames)) { $hasAccess = true; break; } } } if (!$hasAccess) { $exception = new WorkspaceAccessDeniedException(); $exception->setWorkspace($workspace); throw $exception; } }
private function checkWorkspaceAccessForHomeTab(HomeTab $homeTab, Workspace $workspace) { $homeTabWorkspace = $homeTab->getWorkspace(); if (is_null($homeTabWorkspace) || $homeTabWorkspace->getId() !== $workspace->getId()) { throw new AccessDeniedException(); } }