You are here

function saml_sp_drupal_login__request_access_submit in SAML Service Provider 7.3

Same name and namespace in other branches
  1. 7.8 modules/saml_sp_drupal_login/saml_sp_drupal_login.pages.inc \saml_sp_drupal_login__request_access_submit()
  2. 7.2 modules/saml_sp_drupal_login/saml_sp_drupal_login.pages.inc \saml_sp_drupal_login__request_access_submit()

File

modules/saml_sp_drupal_login/saml_sp_drupal_login.pages.inc, line 55

Code

function saml_sp_drupal_login__request_access_submit($form, &$form_state) {
  $params = array(
    'mail' => $form_state['values']['email'],
    'explanation' => $form_state['values']['explanation'],
    'name' => $form_state['values']['name'],
  );
  $emails = array();
  if (variable_get('saml_sp_drupal_login__account_request_site_mail', FALSE)) {

    // send the email to the site_mail
    $site_mail = variable_get('site_mail', '');
    if (!empty($site_mail) && valid_email_address($site_mail)) {
      $emails[] = variable_get('site_mail', '');
    }
  }
  $admin_uids = array();
  foreach (variable_get('saml_sp_drupal_login__account_request_site_administrators') as $uid) {
    if ($uid) {
      $admin_uids[] = $uid;
    }
  }
  $admin_role = variable_get('user_admin_role', 3);
  $query = db_select('users', 'u');
  $query
    ->fields('u', array(
    'uid',
    'mail',
  ));
  $query
    ->join('users_roles', 'ur', 'ur.uid=u.uid');
  $query
    ->condition('u.uid', $admin_uids, 'IN');
  $query
    ->condition('ur.rid', $admin_role);
  $query
    ->condition('u.status', 1);
  $result = $query
    ->execute();
  foreach ($result
    ->fetchAllAssoc('uid') as $u) {
    if ($u->mail && valid_email_address($u->mail)) {
      $emails[] = $u->mail;
    }
  }

  // we now have a list of the email addresses to send the message to
  foreach ($emails as $mail) {
    drupal_mail('saml_sp_drupal_login', 'account_request', $mail, language_default(), $params);
  }
  drupal_set_message(t('Your account creation request has been submitted to site administrators. They will inform you of the results.'));
  drupal_goto('user');
}