You are here

function _role_watchdog_get_notification_list in Role Watchdog 7

Same name and namespace in other branches
  1. 5 role_watchdog.module \_role_watchdog_get_notification_list()
  2. 6.2 role_watchdog.module \_role_watchdog_get_notification_list()
  3. 6 role_watchdog.module \_role_watchdog_get_notification_list()
  4. 7.2 role_watchdog.module \_role_watchdog_get_notification_list()

Internal function

Handles building notification list

1 call to _role_watchdog_get_notification_list()
_role_watchdog_notification in ./role_watchdog.module
Internal function

File

./role_watchdog.module, line 325
Logs changes to user roles.

Code

function _role_watchdog_get_notification_list() {
  static $role_watchdog_notification_list;
  if (!isset($role_watchdog_notification_list)) {
    $role_watchdog_notification_list = array();
    $notification_roles = variable_get('role_watchdog_notify_roles', array());
    if (count($notification_roles)) {
      $result = db_query('SELECT DISTINCT u.mail FROM {users} u INNER JOIN {users_roles} r ON u.uid = r.uid WHERE r.rid IN (:roles)', array(
        ':roles' => $notification_roles,
      ));
      while ($account = $result
        ->fetchObject()) {
        $role_watchdog_notification_list[] = $account->mail;
      }

      // Special case: superuser.
      if (in_array(ROLE_WATCHDOG_SUPERUSER_RID, $notification_roles)) {
        $result = db_query('SELECT mail FROM {users} WHERE uid = :uid', array(
          ':uid' => 1,
        ))
          ->fetchField();
        if (!in_array($result, $role_watchdog_notification_list)) {
          $role_watchdog_notification_list[] = $result;
        }
      }
    }
  }
  return $role_watchdog_notification_list;
}