/**
  * 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;
     }
 }
Exemple #4
0
 private function checkWorkspaceAccessForHomeTab(HomeTab $homeTab, Workspace $workspace)
 {
     $homeTabWorkspace = $homeTab->getWorkspace();
     if (is_null($homeTabWorkspace) || $homeTabWorkspace->getId() !== $workspace->getId()) {
         throw new AccessDeniedException();
     }
 }