public static function MediaDirectoriesLibraryState::fromRequest in Media Directories 3.x
Get the media library state from a request.
Parameters
\Symfony\Component\HttpFoundation\Request $request: The request.
Return value
static A state object.
Throws
\Symfony\Component\HttpKernel\Exception\BadRequestHttpException Thrown when the hash query parameter is invalid.
Overrides MediaLibraryState::fromRequest
4 calls to MediaDirectoriesLibraryState::fromRequest()
- MediaDirectoriesController::mediaAdd in modules/
media_directories_ui/ src/ Controller/ MediaDirectoriesController.php - New media entity add form.
- MediaDirectoriesLibraryUiBuilder::buildUi in modules/
media_directories_ui/ src/ MediaDirectoriesLibraryUiBuilder.php - Build the media library UI.
- MediaDirectoriesLibraryUiBuilder::checkAccess in modules/
media_directories_ui/ src/ MediaDirectoriesLibraryUiBuilder.php - Check access to the media library.
- media_directories_ui_preprocess_views_view__media_directories_library in modules/
media_directories_ui/ media_directories_ui.module - Implements hook_preprocess_HOOK().
File
- modules/
media_directories_ui/ src/ MediaDirectoriesLibraryState.php, line 96
Class
- MediaDirectoriesLibraryState
- A value object for the media library state.
Namespace
Drupal\media_directories_uiCode
public static function fromRequest(Request $request) {
$query = $request->query;
// Create a MediaLibraryState object through the create method to make sure
// all validation runs.
$state = static::create($query
->get('media_library_opener_id'), $query
->get('media_library_allowed_types', []), $query
->get('media_library_selected_type'), $query
->get('media_library_remaining'), $query
->get('media_library_opener_parameters', []), $query
->get('directory', ''));
// The request parameters need to contain a valid hash to prevent a
// malicious user modifying the query string to attempt to access
// inaccessible information.
if (!$state
->isValidHash($query
->get('hash'))) {
throw new BadRequestHttpException("Invalid media library parameters specified.");
}
// Once we have validated the required parameters, we restore the parameters
// from the request since there might be additional values.
$state
->replace($query
->all());
return $state;
}