Same name and namespace in other branches
  1. 5.x modules/user/user.module \user_build_filter_query()
  2. 7.x modules/user/user.module \user_build_filter_query()

Build query for user administration filters based on session.

1 call to user_build_filter_query()
user_admin_account in modules/user/user.admin.inc
Form builder; User administration page.

File

modules/user/user.module, line 2089
Enables the user registration and login system.

Code

function user_build_filter_query() {
  $filters = user_filters();

  // Build query
  $where = $args = $join = array();
  foreach ($_SESSION['user_overview_filter'] as $filter) {
    list($key, $value) = $filter;

    // This checks to see if this permission filter is an enabled permission for
    // the authenticated role. If so, then all users would be listed, and we can
    // skip adding it to the filter query.
    if ($key == 'permission') {
      $account = new stdClass();
      $account->uid = 'user_filter';
      $account->roles = array(
        DRUPAL_AUTHENTICATED_RID => 1,
      );
      if (user_access($value, $account)) {
        continue;
      }
    }
    $where[] = $filters[$key]['where'];
    $args[] = $value;
    $join[] = $filters[$key]['join'];
  }
  $where = !empty($where) ? 'AND ' . implode(' AND ', $where) : '';
  $join = !empty($join) ? ' ' . implode(' ', array_unique($join)) : '';
  return array(
    'where' => $where,
    'join' => $join,
    'args' => $args,
  );
}