On this page
function user_build_filter_query
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.
File
- modules/user/user.module, line 3504
- Enables the user registration and login system.
Code
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;
}
$users_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
$permission_alias = $query->join('role_permission', 'p', $users_roles_alias . '.rid = %alias.rid');
$query->condition($permission_alias . '.permission', $value);
}
elseif ($key == 'role') {
$users_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
$query->condition($users_roles_alias . '.rid', $value);
}
else {
$query->condition($filters[$key]['field'], $value);
}
}
}
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!user!user.module/function/user_build_filter_query/7.x