function QueryParameterWorkspaceNegotiator::getActiveWorkspaceId

Same name in other branches
  1. 11.x core/modules/workspaces/src/Negotiator/QueryParameterWorkspaceNegotiator.php \Drupal\workspaces\Negotiator\QueryParameterWorkspaceNegotiator::getActiveWorkspaceId()

Overrides SessionWorkspaceNegotiator::getActiveWorkspaceId

File

core/modules/workspaces/src/Negotiator/QueryParameterWorkspaceNegotiator.php, line 26

Class

QueryParameterWorkspaceNegotiator
Defines the query parameter workspace negotiator.

Namespace

Drupal\workspaces\Negotiator

Code

public function getActiveWorkspaceId(Request $request) : ?string {
    $workspace_id = (string) $request->query
        ->get('workspace');
    $token = (string) $request->query
        ->get('token');
    $is_valid_token = hash_equals($this->getQueryToken($workspace_id), $token);
    // This negotiator receives a workspace ID from user input, so a minimal
    // validation is needed to ensure that we protect against fake input before
    // the workspace manager fully validates the negotiated workspace ID.
    // @see \Drupal\workspaces\WorkspaceManager::getActiveWorkspace()
    return $is_valid_token ? $workspace_id : NULL;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.