You are here

function contact_storage_maximum_submissions_user in Contact Storage 8

Returns the number of times the current user has submitted the specified form.

Parameters

Drupal\contact\ContactFormInterface $contact_form: The contact_form entity.

Return value

int The number of times the current user has submitted the specified form.

2 calls to contact_storage_maximum_submissions_user()
ConstactStorageMaximumSubmissionsConstraintValidator::validate in src/Plugin/Validation/Constraint/ConstactStorageMaximumSubmissionsConstraintValidator.php
Checks if the passed value is valid.
contact_storage_form_contact_message_form_alter in ./contact_storage.module
Implements hook_form_FORM_ID_alter() for contact_form_form().
1 string reference to 'contact_storage_maximum_submissions_user'
contact_storage_contact_form_form_builder in ./contact_storage.module
Entity builder for the contact form edit form with third party options.

File

./contact_storage.module, line 505
Contains main module logic.

Code

function contact_storage_maximum_submissions_user(ContactFormInterface $contact_form) {
  $account = \Drupal::currentUser();
  if ($account
    ->isAnonymous()) {

    // Anonymous user, limit per submission with the same IP address.
    $ip_address = \Drupal::request()
      ->getClientIp();
    $query = \Drupal::entityQuery('contact_message')
      ->condition('contact_form', $contact_form
      ->id())
      ->condition('ip_address', $ip_address)
      ->condition('uid', $account
      ->id());
    return count($query
      ->execute());
  }
  else {

    // Limit per submission with the same uid.
    $query = \Drupal::entityQuery('contact_message')
      ->condition('contact_form', $contact_form
      ->id())
      ->condition('uid', $account
      ->id());
    return count($query
      ->execute());
  }
}