currentUser->hasPermission('administer media')) { $query->condition('status', 1); } return $query; } /** * {@inheritdoc} */ public function createNewEntity($entity_type_id, $bundle, $label, $uid) { $media = parent::createNewEntity($entity_type_id, $bundle, $label, $uid); // In order to create a referenceable media, it needs to published. /** @var \Drupal\media\MediaInterface $media */ $media->setPublished(); return $media; } /** * {@inheritdoc} */ public function validateReferenceableNewEntities(array $entities) { $entities = parent::validateReferenceableNewEntities($entities); // Mirror the conditions checked in buildEntityQuery(). if (!$this->currentUser->hasPermission('administer media')) { $entities = array_filter($entities, function ($media) { /** @var \Drupal\media\MediaInterface $media */ return $media->isPublished(); }); } return $entities; } }