ReviewsAccessCheck.php in Reviews 1.0.x
Namespace
Drupal\reviews\AccessFile
src/Access/ReviewsAccessCheck.phpView source
<?php
namespace Drupal\reviews\Access;
use Drupal\Core\Routing\Access\AccessInterface;
use Drupal\node\NodeInterface;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Entity\EntityTypeManager;
/**
* Checks access for displaying reviews pages.
*/
class ReviewsAccessCheck implements AccessInterface {
/**
* Drupal EntityTypeManager.
*
* @var \Drupal\Core\Entity\EntityTypeManager
*/
protected $entityTypeManager;
/**
* ReviewsAccessCheck constructor.
*
* @param \Drupal\Core\Entity\EntityTypeManager
* Entity Type Manager.
*/
public function __construct(EntityTypeManager $entity_type_manager) {
$this->entityTypeManager = $entity_type_manager;
}
/**
* Access check to determine if reviews are enabled and accessible.
*
* @param \Drupal\node\Interface $account
* Run access checks for this node.
*
* @return \Drupal\Core\Access\AccessResultInterface
* The access result.
*/
public function access(NodeInterface $node) {
$config = \Drupal::config('reviews.settings');
$reviews_enabled = $config
->get('reviews.enabled');
$reviewable_types = $config
->get('reviews.review_types');
// Return access alowed only if reviews are enabled and
// the type (bundle) of the node being viewed is included
// in the reviewable node types.
return AccessResult::allowedif($reviews_enabled && $reviewable_types[$node
->bundle()] === $node
->bundle());
}
}
Classes
Name![]() |
Description |
---|---|
ReviewsAccessCheck | Checks access for displaying reviews pages. |