class LeaveReviewAccessCheck in Reviews 1.0.x
Checks access for displaying reviews pages.
Hierarchy
- class \Drupal\reviews\Access\LeaveReviewAccessCheck implements AccessInterface
Expanded class hierarchy of LeaveReviewAccessCheck
1 string reference to 'LeaveReviewAccessCheck'
1 service uses LeaveReviewAccessCheck
File
- src/
Access/ LeaveReviewAccessCheck.php, line 12
Namespace
Drupal\reviews\AccessView source
class LeaveReviewAccessCheck implements AccessInterface {
/**
* Drupal EntityTypeManager.
*
* @var \Drupal\Core\Entity\EntityTypeManager
*/
protected $entityTypeManager;
/**
* ReviewsAccessCheck constructor.
*
* @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
* 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.
*
* @return \Drupal\Core\Access\AccessResultInterface
* The access result.
*/
public function access() {
// Get the node ID being viewed.
$node = \Drupal::routeMatch()
->getParameter('node');
$config = \Drupal::config('reviews.settings');
$reviews_enabled = $config
->get('reviews.enabled');
// Check if multiple reviews are allowed and if not
// check if the user has already reviewed this node.
$previous_review = FALSE;
if (!$config
->get('reviews.multiple') && $node instanceof \Drupal\node\NodeInterface) {
$query = \Drupal::entityQuery('review')
->condition('node_id', $node
->id(), '=')
->condition('user_id', \Drupal::currentUser()
->id(), '=')
->execute();
$previous_review = (bool) count($query);
}
// Return access allowed 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 && !$previous_review);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LeaveReviewAccessCheck:: |
protected | property | Drupal EntityTypeManager. | |
LeaveReviewAccessCheck:: |
public | function | Access check to determine if reviews are enabled and accessible. | |
LeaveReviewAccessCheck:: |
public | function | ReviewsAccessCheck constructor. |