Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
project
drupal
Commits
100ec14f
Commit
100ec14f
authored
Jan 12, 2010
by
webchick
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#604304
by JeremyFrench: Fixed bad query and broken paging on admin/people.
parent
e1812b33
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
5 deletions
+16
-5
modules/user/user.admin.inc
modules/user/user.admin.inc
+1
-2
modules/user/user.module
modules/user/user.module
+15
-3
No files found.
modules/user/user.admin.inc
View file @
100ec14f
...
...
@@ -151,12 +151,11 @@ function user_admin_account() {
);
$query
=
db_select
(
'users'
,
'u'
);
$query
->
leftJoin
(
'users_roles'
,
'ur'
,
'u.uid = ur.uid'
);
$query
->
condition
(
'u.uid'
,
0
,
'<>'
);
user_build_filter_query
(
$query
);
$count_query
=
clone
$query
;
$count_query
->
addExpression
(
'COUNT(
DISTINCT
u.uid)'
);
$count_query
->
addExpression
(
'COUNT(u.uid)'
);
$query
=
$query
->
extend
(
'PagerDefault'
)
->
extend
(
'TableSort'
);
$query
...
...
modules/user/user.module
View file @
100ec14f
...
...
@@ -2829,7 +2829,8 @@ function user_filters() {
*/
function
user_build_filter_query
(
SelectQuery
$query
)
{
$filters
=
user_filters
();
$role_count
=
0
;
$permission_count
=
0
;
// Extend Query with filter conditions.
foreach
(
isset
(
$_SESSION
[
'user_overview_filter'
])
?
$_SESSION
[
'user_overview_filter'
]
:
array
()
as
$filter
)
{
list
(
$key
,
$value
)
=
$filter
;
...
...
@@ -2843,8 +2844,19 @@ function user_build_filter_query(SelectQuery $query) {
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
));
$user_role_alias
=
'ur'
.
$role_count
;
$permission_alias
=
'p'
.
$permission_count
;
$query
->
innerJoin
(
'users_roles'
,
$user_role_alias
,
$user_role_alias
.
'.uid = u.uid'
);
$query
->
innerJoin
(
'role_permission'
,
$permission_alias
,
$user_role_alias
.
'.rid = '
.
$permission_alias
.
'.rid'
);
$query
->
condition
(
$permission_alias
.
'.permission'
,
$value
);
$role_count
++
;
$permission_count
++
;
}
else
if
(
$key
==
'role'
)
{
$user_role_alias
=
'ur'
.
$role_count
;
$query
->
innerJoin
(
'users_roles'
,
$user_role_alias
,
$user_role_alias
.
'.uid = u.uid'
);
$query
->
condition
(
$user_role_alias
.
'.rid'
,
$value
);
$role_count
++
;
}
else
{
$query
->
condition
(
$filters
[
$key
][
'field'
],
$value
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment