user_build_filter_query

5 user.module user_build_filter_query()
6 user.module user_build_filter_query()
7 user.module user_build_filter_query(SelectQuery $query)
8 user.module user_build_filter_query(SelectInterface $query)

Build query for user administration filters based on session.

1 call to user_build_filter_query()

File

modules/user/user.module, line 2049
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,
  );
}
Login or register to post comments