Pull merge.
[yaffs-website] / web / core / modules / workspaces / src / Negotiator / QueryParameterWorkspaceNegotiator.php
1 <?php
2
3 namespace Drupal\workspaces\Negotiator;
4
5 use Symfony\Component\HttpFoundation\Request;
6
7 /**
8  * Defines the query parameter workspace negotiator.
9  */
10 class QueryParameterWorkspaceNegotiator extends SessionWorkspaceNegotiator {
11
12   /**
13    * {@inheritdoc}
14    */
15   public function applies(Request $request) {
16     return is_string($request->query->get('workspace')) && parent::applies($request);
17   }
18
19   /**
20    * {@inheritdoc}
21    */
22   public function getActiveWorkspace(Request $request) {
23     $workspace_id = $request->query->get('workspace');
24
25     if ($workspace_id && ($workspace = $this->workspaceStorage->load($workspace_id))) {
26       $this->setActiveWorkspace($workspace);
27       return $workspace;
28     }
29
30     return NULL;
31   }
32
33 }