user_build_filter_query

Versions
5 – 6
user_build_filter_query()
7
user_build_filter_query(SelectQuery $query)

Extends a query object for user administration filters based on session.

Parameters

$query Query object that should be filtered.

Code

modules/user/user.module, line 2836

<?php
function user_build_filter_query(SelectQuery $query) {
  $filters = user_filters();

  // Extend Query with filter conditions.
  foreach (isset($_SESSION['user_overview_filter']) ? $_SESSION['user_overview_filter'] : array() 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;
      }
      $query->leftJoin('role_permission', 'p', 'ur.rid = p.rid');
      $query->condition(db_or()->condition('u.uid', 1)->condition('p.permission', $value));
    }
    else {
      $query->condition($filters[$key]['field'], $value);
    }
  }
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.