function ginvite_by_mail_form_validate in Group 7
Validate handler for ginvite_by_mail_form().
See also
group_form_ginvite_by_mail_form_alter()
File
- modules/
ginvite/ forms/ ginvite.inc, line 121  - Group member invite UI.
 
Code
function ginvite_by_mail_form_validate($form, &$form_state) {
  $group = $form_state['build_info']['args'][0];
  $mail = $form_state['values']['mail'];
  if (!valid_email_address($mail)) {
    form_set_error('mail', t('Invalid e-mail address.'));
  }
  // Validation if the e-mail address is already registered.
  if ($account = user_load_by_mail($mail)) {
    // First check for invite by user access.
    if (!group_access('invite members by user', $group)) {
      $message = '%email is already registered on the website. ';
      $message .= 'You do not, however, have the permission to invite existing users.';
      form_set_error('mail', t($message, array(
        '%email' => $mail,
      )));
    }
    elseif ($group
      ->getMember($account->uid)) {
      $message = '%email is already registered to a member of this group.';
      form_set_error('mail', t($message, array(
        '%email' => $mail,
      )));
    }
    else {
      $form_state['values']['uid'] = $account->uid;
      $form_state['values']['user'] = format_username($account);
    }
  }
  else {
    // Get all invites for the e-mail address.
    $invites = ginvite_get_invites($mail);
    // Check for an existing invite for this group.
    if (!empty($invites[$group->gid])) {
      $message = 'There is already an invite pending for %email.';
      form_set_error('mail', t($message, array(
        '%email' => $mail,
      )));
    }
  }
}