/** * Constructor. */ public function __construct(HomeTab $homeTab, WidgetHomeTabConfig $whtc, WidgetDisplayConfig $wdc = null) { $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(); 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); }
private function checkAdminHomeTab(HomeTab $homeTab, $homeTabType) { if (!is_null($homeTab->getUser()) || !is_null($homeTab->getWorkspace()) || $homeTab->getType() !== 'admin_' . $homeTabType) { throw new AccessDeniedException(); } }
private function checkHomeTabEdition(HomeTab $homeTab, User $user) { $homeTabUser = $homeTab->getUser(); $homeTabType = $homeTab->getType(); if ($homeTabType !== 'desktop' || $user !== $homeTabUser) { throw new AccessDeniedException(); } }
private function checkUserAccessForAdminHomeTab(HomeTab $homeTab, User $user) { $isAdminUser = false; $isUser = false; if ($homeTab->getType() === 'admin_desktop') { $homeTabConfig = $this->homeTabManager->getAdminDesktopHomeTabConfigByHomeTab($homeTab); $isAdminUser = !(is_null($homeTabConfig) || $homeTabConfig->isLocked()); } else { $homeTabConfig = $this->homeTabManager->getHomeTabConfigByHomeTabAndUser($homeTab, $user); $homeTabUser = is_null($homeTabConfig) ? null : $homeTabConfig->getUser(); $isUser = !is_null($homeTabUser) && $homeTabUser->getId() === $user->getId(); } if (!($isAdminUser || $isUser)) { throw new AccessDeniedException(); } }