You are here

function _role_watchdog_get_notification_list in Role Watchdog 5

Same name and namespace in other branches
  1. 6.2 role_watchdog.module \_role_watchdog_get_notification_list()
  2. 6 role_watchdog.module \_role_watchdog_get_notification_list()
  3. 7.2 role_watchdog.module \_role_watchdog_get_notification_list()
  4. 7 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 226
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', NULL);
    $roles = implode(',', $notification_roles);
    $sql = "\n      SELECT DISTINCT u.mail\n        FROM {users} u\n        INNER JOIN {users_roles} r ON u.uid = r.uid\n        WHERE r.rid IN (%s)\n    ";
    $result = db_query($sql, $roles);
    while ($account = db_fetch_object($result)) {
      $role_watchdog_notification_list[] = $account->mail;
    }

    //special case: superuser
    if (in_array(SUPERUSER_RID, $notification_roles)) {
      $sql = "\n        SELECT u.mail\n          FROM {users} u\n          WHERE u.uid = %d\n      ";
      $result = db_result(db_query($sql, 1));
      if (!in_array($result, $role_watchdog_notification_list)) {
        $role_watchdog_notification_list[] = $result;
      }
    }
  }
  return $role_watchdog_notification_list;
}