currentUser = $current_user; $this->session = $session; $this->workspaceStorage = $entity_type_manager->getStorage('workspace'); } /** * {@inheritdoc} */ public function applies(Request $request) { // This negotiator only applies if the current user is authenticated. return $this->currentUser->isAuthenticated(); } /** * {@inheritdoc} */ public function getActiveWorkspace(Request $request) { $workspace_id = $this->session->get('active_workspace_id'); if ($workspace_id && ($workspace = $this->workspaceStorage->load($workspace_id))) { return $workspace; } return NULL; } /** * {@inheritdoc} */ public function setActiveWorkspace(WorkspaceInterface $workspace) { $this->session->set('active_workspace_id', $workspace->id()); } }