@@ -15,11 +15,6 @@ include_once 'dosomething_user.theme.inc';
1515 */
1616function dosomething_user_preprocess_page(&$vars) {
1717 $school_api_endpoint = variable_get('dosomething_user_school_api_endpoint', 'http://lofischools.herokuapp.com/search');
18- if (isset($_SESSION['dosomething_user_log_login'])) {
19- dosomething_helpers_add_analytics_event("login", $_SESSION['dosomething_user_log_login']);
20- unset($_SESSION['dosomething_user_log_login']);
21- }
22-
2318 $date_format = (dosomething_settings_get_geo_country_code() === 'US') ? 'MM/DD/YYYY' : 'DD/MM/YYYY';
2419 drupal_add_js(
2520 array('dosomethingUser' =>
@@ -102,7 +97,7 @@ function dosomething_user_menu() {
10297 $items['admin/users/clean-slate'] = array(
10398 'title' => 'Clean Slate',
10499 'access callback' => 'user_access',
105- 'access arguments' => array('access administration menu '),
100+ 'access arguments' => array('edit campaign overrides '),
106101 'page callback' => 'drupal_get_form',
107102 'page arguments' => array('dosomething_user_clean_slate_form'),
108103 'file' => 'dosomething_user.admin.inc',
@@ -223,8 +218,6 @@ function dosomething_user_is_staff($user = NULL) {
223218 * Implements hook_form_alter().
224219 */
225220function dosomething_user_form_alter(&$form, $form_state, $form_id) {
226- global $user;
227- $account = $user;
228221 // If UPS is set to validate, and the user is from the US, validate address.
229222 $validate_address = (variable_get('dosomething_user_validate_address') && dosomething_settings_get_geo_country_code() === 'US');
230223
@@ -237,7 +230,6 @@ function dosomething_user_form_alter(&$form, $form_state, $form_id) {
237230 // Helper text & additional data.
238231 _dosomething_user_add_signup_data($form);
239232 $form['#submit'][] = 'dosomething_user_login_submit';
240- $_SESSION['dosomething_user_log_login'] = "login";
241233 break;
242234
243235 case 'user_profile_form':
@@ -447,16 +439,17 @@ function dosomething_user_user_pass_submit($form, &$form_state) {
447439 $account = user_load_by_mail($form_state['input']['name']);
448440 if (isset($account->mail)) {
449441 if (module_exists('dosomething_global')) {
450- $user_country_code = dosomething_global_convert_language_to_country($account->language);
442+ $user_language = dosomething_global_get_user_language($account);
443+ $user_country_code = dosomething_global_convert_language_to_country($user_language);
451444 }
452445 // Send external message request
453446 $params = array(
454447 'email' => $account->mail,
455448 'uid' => $account->uid,
456449 'first_name' => dosomething_user_get_field('field_first_name', $account),
457450 'reset_link' => user_pass_reset_url($account),
458- 'user_language' => $account->language ,
459- 'user_country' => isset($user_country_code) ? $user_country_code : 'US'
451+ 'user_language' => isset($user_language) ? $user_language : 'en' ,
452+ 'user_country' => isset($user_country_code) ? $user_country_code : 'US',
460453 );
461454 if (module_exists('dosomething_mbp')) {
462455 dosomething_mbp_request('user_password', $params);
@@ -480,29 +473,49 @@ function dosomething_user_update_user($form, &$form_state) {
480473 * Does actions after a new user has registered via the web.
481474 * Sign user up for emails/texts.
482475 */
483- function dosomething_user_new_user($form, &$form_state) {
484- $_SESSION['dosomething_user_log_login'] = "register";
476+ function dosomething_user_new_user($form, &$form_state)
477+ {
478+ // Trigger an analytics event on registration
479+ // @NOTE: The 'Authentication - Login' event will *also* be triggered here,
480+ // since registered users are subsequently logged in to their new accounts.
481+ dosomething_helpers_add_analytics_event('Authentication', 'Register');
482+
483+ // Sign the user up for transactional messaging
484+ _dosomething_user_send_to_message_broker();
485+ }
486+
487+ /**
488+ * Sign the authenticated user up for transactional messaging through Message Broker
489+ * if the required modules are enabled and the user meets relevant criteria.
490+ *
491+ * @see dosomething_user_new_user
492+ */
493+ function _dosomething_user_send_to_message_broker() {
485494 if (!module_exists('dosomething_mbp') || !module_exists('dosomething_signup')) {
486495 return;
487496 }
488497
489- global $user;
490- $account = $user;
491-
492498 // Should we sign this kid up for messages?
493499 if (dosomething_user_is_under_thirteen()) {
494500 return;
495501 }
496502
503+ global $user;
504+ $account = $user;
505+ if (module_exists('dosomething_global')) {
506+ $user_language = dosomething_global_get_user_language($account);
507+ $user_country_code = dosomething_global_convert_language_to_country($user_language);
508+ }
509+
497510 // Send external message request.
498511 $params = array(
499512 'mailchimp_list_id' => dosomething_signup_get_mailchimp_list_id(),
500513 'email' => $account->mail,
501514 'uid' => $account->uid,
502515 'first_name' => dosomething_user_get_field('field_first_name', $account),
503516 'birthdate' => dosomething_user_get_field('field_birthdate', $account),
504- 'user_language' => $account->language ,
505- 'user_country' => isset($user_country_code) ? $user_country_code : 'US'
517+ 'user_language' => isset($user_language) ? $user_language : 'en' ,
518+ 'user_country' => isset($user_country_code) ? $user_country_code : 'US',
506519 );
507520
508521 // 26+ Club: Override Mobile Commons.
@@ -684,6 +697,16 @@ function dosomething_user_login_submit($form, &$form_state) {
684697 }
685698}
686699
700+ /**
701+ * Implements hook_user_login().
702+ */
703+ function dosomething_user_user_login(&$edit, $account) {
704+ // Trigger an analytics event on login
705+ // @NOTE: This will *also* be triggered on registration, since registered
706+ // users are subsequently logged in to their new accounts.
707+ dosomething_helpers_add_analytics_event('Authentication', 'Login');
708+ }
709+
687710/**
688711 * Implements hook_user_insert().
689712 */
0 commit comments