You are here

public function SocialEventEnrollService::isEnabled in Open Social 10.3.x

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  2. 8.5 modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  3. 8.6 modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  4. 8.7 modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  5. 8.8 modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  6. 10.0.x modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  7. 10.1.x modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()
  8. 10.2.x modules/social_features/social_event/src/Service/SocialEventEnrollService.php \Drupal\social_event\Service\SocialEventEnrollService::isEnabled()

Check if enrollment is allowed for given event.

Parameters

\Drupal\node\NodeInterface $node: A node.

Return value

bool TRUE if enrollment is allowed.

Overrides SocialEventEnrollServiceInterface::isEnabled

File

modules/social_features/social_event/src/Service/SocialEventEnrollService.php, line 36

Class

SocialEventEnrollService
Class SocialEventEnrollService.

Namespace

Drupal\social_event\Service

Code

public function isEnabled(NodeInterface $node) {
  if ($this->eventSettings
    ->get('disable_event_enroll') || !$node
    ->hasField('field_event_enable_enrollment') || $node
    ->get('field_event_enable_enrollment')
    ->isEmpty() || !(bool) $node
    ->get('field_event_enable_enrollment')
    ->first()
    ->getValue()['value']) {
    return FALSE;
  }
  if ($node
    ->bundle() === 'event' && $node
    ->hasField('field_event_enroll')) {
    $was_not_changed = $node
      ->get('field_event_enroll')
      ->isEmpty();
    $is_enabled = $node
      ->get('field_event_enroll')
      ->first()
      ->getValue()['value'];

    // Make an exception for the invite enroll method.
    // This doesn't allow people to enroll themselves, but get invited.
    if (!$node
      ->get('field_enroll_method')
      ->isEmpty() && (int) $node
      ->get('field_enroll_method')
      ->first()
      ->getValue()['value'] === EventEnrollmentInterface::ENROLL_METHOD_INVITE) {
      $is_enabled = TRUE;
    }
    return $was_not_changed || $is_enabled;
  }
  return FALSE;
}