summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/user/user.module8
-rw-r--r--modules/user/user.test19
2 files changed, 18 insertions, 9 deletions
diff --git a/modules/user/user.module b/modules/user/user.module
index 03dce06c9..4dea81761 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -3209,13 +3209,13 @@ function user_build_filter_query(SelectQuery $query) {
if (user_access($value, $account)) {
continue;
}
- $user_role_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
- $permission_alias = $query->join('role_permission', 'p', $user_role_alias . '.rid = %alias.rid');
+ $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') {
- $user_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
- $query->condition($user_role_alias . '.rid' , $value);
+ $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);
diff --git a/modules/user/user.test b/modules/user/user.test
index ad6020fa4..0fa3749af 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -1062,19 +1062,28 @@ class UserAdminTestCase extends DrupalWebTestCase {
$this->drupalPost('admin/people', $edit, t('Filter'));
// Check if the correct users show up.
- $this->assertNoText($user_a->name, t('User A not on filtered by perm admin users page'));
+ $this->assertNoText($user_a->name, t('User A not on filtered by perm admin users page'));
$this->assertText($user_b->name, t('Found user B on filtered by perm admin users page'));
$this->assertText($user_c->name, t('Found user C on filtered by perm admin users page'));
+ // Filter the users by role. Grab the system-generated role name for User C.
+ $edit['role'] = max(array_flip($user_c->roles));
+ $this->drupalPost('admin/people', $edit, t('Refine'));
+
+ // Check if the correct users show up when filtered by role.
+ $this->assertNoText($user_a->name, t('User A not on filtered by role on admin users page'));
+ $this->assertNoText($user_b->name, t('User B not on filtered by role on admin users page'));
+ $this->assertText($user_c->name, t('User C on filtered by role on admin users page'));
+
// Test blocking of a user.
- $account = user_load($user_b->uid);
- $this->assertEqual($account->status, 1, 'User B not blocked');
+ $account = user_load($user_c->uid);
+ $this->assertEqual($account->status, 1, 'User C not blocked');
$edit = array();
$edit['operation'] = 'block';
$edit['accounts[' . $account->uid . ']'] = TRUE;
$this->drupalPost('admin/people', $edit, t('Update'));
- $account = user_load($user_b->uid, TRUE);
- $this->assertEqual($account->status, 0, 'User B blocked');
+ $account = user_load($user_c->uid, TRUE);
+ $this->assertEqual($account->status, 0, 'User C blocked');
}
}