Пример #1
0
 public function deleteWidgetHomeTabConfig(WidgetHomeTabConfig $widgetHomeTabConfig)
 {
     $widgetOrder = $widgetHomeTabConfig->getWidgetOrder();
     $homeTab = $widgetHomeTabConfig->getHomeTab();
     $user = $widgetHomeTabConfig->getUser();
     $workspace = $widgetHomeTabConfig->getWorkspace();
     if (is_null($user) && is_null($workspace)) {
         $this->widgetHomeTabConfigRepo->updateAdminWidgetHomeTabConfig($homeTab, $widgetOrder);
     } elseif (is_null($workspace)) {
         $this->widgetHomeTabConfigRepo->updateWidgetHomeTabConfigByUser($homeTab, $widgetOrder, $user);
     } else {
         $this->widgetHomeTabConfigRepo->updateWidgetHomeTabConfigByWorkspace($homeTab, $widgetOrder, $workspace);
     }
     $this->om->remove($widgetHomeTabConfig);
     $this->om->flush();
 }
 /**
  * @EXT\Route(
  *     "/api/workspace/home/tab/widget/{widgetHomeTabConfig}/delete",
  *     name="api_delete_workspace_widget_home_tab_config",
  *     options = {"expose"=true}
  * )
  *
  * Deletes a widget
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function deleteAdminWidgetHomeTabConfigAction(WidgetHomeTabConfig $widgetHomeTabConfig)
 {
     $workspace = $widgetHomeTabConfig->getWorkspace();
     $this->checkToolEditionAccess($workspace);
     $widgetInstance = $widgetHomeTabConfig->getWidgetInstance();
     $datas = $this->serializer->serialize($widgetInstance, 'json', SerializationContext::create()->setGroups(['api_widget']));
     $this->homeTabManager->deleteWidgetHomeTabConfig($widgetHomeTabConfig);
     $this->widgetManager->removeInstance($widgetInstance);
     $event = new LogWidgetWorkspaceDeleteEvent($workspace, json_decode($datas, true));
     $this->eventDispatcher->dispatch('log', $event);
     return new JsonResponse($datas, 200);
 }
Пример #3
0
 private function checkAdminAccessForWidgetHomeTabConfig(WidgetHomeTabConfig $whtc)
 {
     if ($whtc->getType() !== 'admin' || !is_null($whtc->getUser()) || !is_null($whtc->getWorkspace())) {
         throw new AccessDeniedException();
     }
 }
Пример #4
0
 private function checkWorkspaceAccessForWidgetHomeTabConfig(WidgetHomeTabConfig $widgetHomeTabConfig, Workspace $workspace)
 {
     $widgetHomeTabConfigWorkspace = $widgetHomeTabConfig->getWorkspace();
     if ($widgetHomeTabConfig->getType() !== 'workspace' || is_null($widgetHomeTabConfigWorkspace) || $widgetHomeTabConfigWorkspace->getId() !== $workspace->getId()) {
         throw new AccessDeniedException();
     }
 }