function _user_external_invite_add_invite in User External Invite 1.0.x
Same name and namespace in other branches
- 7.2 user_external_invite.module \_user_external_invite_add_invite()
- 7 user_external_invite.module \_user_external_invite_add_invite()
Adds invite to database and sends email.
3 calls to _user_external_invite_add_invite()
- drush_user_external_invite_send_invite in ./
user_external_invite.drush.inc - Drush user-external-invite-send [mail] [role].
- user_external_invite_form_submit in ./
user_external_invite.admin.inc - Submit handler for invite_form.
- user_external_invite_resend_invites in ./
user_external_invite.module - Callback to resend invites.
File
- ./
user_external_invite.module, line 369 - Invites a user to site when connecting via external protocol e.g. LDAP.
Code
function _user_external_invite_add_invite($rid, $emails, $uid, $message = NULL, $resend = FALSE) {
$now = REQUEST_TIME;
$days = variable_get('user_external_invite_days_valid_for', 5);
// Expire in X days.
$expire = $now + $days * 24 * 60 * 60;
// All invites start out as pending.
$status = 'Pending';
// Add or update invite in db.
foreach ($emails as $mail) {
// Check and see if invite is supposed to be resent rather than added.
if ($resend == TRUE) {
db_update('user_external_invite')
->fields(array(
'expire' => $expire,
'status' => $status,
'message' => $message,
))
->condition('mail', $mail, '=')
->execute();
}
else {
db_insert('user_external_invite')
->fields(array(
'mail' => $mail,
'rid' => $rid,
'expire' => $expire,
'status' => $status,
'uid' => $uid,
'message' => $message,
))
->execute();
}
// Now send the email.
_user_external_invite_send_invite($rid, $mail, $expire, $uid);
}
// After all emails are sent, send confirmation to submitter.
global $user;
$site_name = _user_external_invite_site_name();
$from = _user_external_invite_from_email();
$params = array(
'subject' => t('Access request for the !site_name website', array(
'!site_name' => $site_name,
)),
'rid' => $rid,
'role_name' => _user_external_invite_role_name_from_rid($rid),
'body' => token_replace(variable_get('user_external_invite_confirmation_template'), array(
'ext-invite' => _user_external_invite_load_entity($emails[0]),
)),
'site_name' => $site_name,
);
// @TODO: use universal email?
drupal_mail('user_external_invite', 'user_external_invite_sent', $user->mail, language_default(), $params, $from, TRUE);
}