diff --git a/modules/user/user.module b/modules/user/user.module index 5892786f82967500621e10a34d650f1814b6923a..015facca24d3c82dfd2813bd1e364586b786050a 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -572,10 +572,10 @@ function user_role_permissions($roles = array(), $reset = FALSE) { if ($fetch) { // Get from the database permissions that were not in the static variable. // Only role IDs with at least one permission assigned will return rows. - $result = db_query("SELECT r.rid, p.permission FROM {role} r INNER JOIN {role_permission} p ON p.rid = r.rid WHERE r.rid IN (:fetch)", array(':fetch' => $fetch)); + $result = db_query("SELECT rid, permission FROM {role_permission} WHERE rid IN (:fetch)", array(':fetch' => $fetch)); - while ($row = db_fetch_array($result)) { - $stored_permissions[$row['rid']][$row['permission']] = TRUE; + foreach ($result as $row) { + $stored_permissions[$row->rid][$row->permission] = TRUE; } foreach ($fetch as $rid) { // For every rid, we know we at least assigned an empty array.