From 8dc2b92d667f1401ab9f1315a36add61658f899c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 6 May 2021 10:26:09 +0200 Subject: Moderize Database handling * Auto-convert to utf8mb4_unicode_520_ci * Use foreach instead of while to loop over results * Drop useless statement caching * Keep emulated prepares, as we sometimes loop over nested queries --- modules-available/permissionmanager/inc/getpermissiondata.inc.php | 8 ++++---- modules-available/permissionmanager/inc/permissionutil.inc.php | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'modules-available/permissionmanager') diff --git a/modules-available/permissionmanager/inc/getpermissiondata.inc.php b/modules-available/permissionmanager/inc/getpermissiondata.inc.php index 4dfb09ec..ead1e020 100644 --- a/modules-available/permissionmanager/inc/getpermissiondata.inc.php +++ b/modules-available/permissionmanager/inc/getpermissiondata.inc.php @@ -19,7 +19,7 @@ class GetPermissionData LEFT JOIN role ON role_x_user.roleid = role.roleid "); $userdata = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $userdata[$row['userid'] . ' ' . $row['login']][] = array( 'roleid' => $row['roleid'], 'rolename' => $row['rolename'] @@ -47,7 +47,7 @@ class GetPermissionData $res = Database::simpleQuery("SELECT role.roleid AS roleid, rolename, GROUP_CONCAT(COALESCE(locationid, 0)) AS locationids FROM role INNER JOIN role_x_location ON role.roleid = role_x_location.roleid GROUP BY roleid ORDER BY rolename ASC"); $locations = Location::getLocations(0, 0, false, true); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $locationids = explode(",", $row['locationids']); if (in_array("0", $locationids)) { $locationids = array_map("intval", Location::extractIds(Location::getTree())); @@ -103,13 +103,13 @@ class GetPermissionData if ($res === false) return false; $data["locations"] = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $data["locations"][] = $row['locationid']; } $res = Database::simpleQuery("SELECT roleid, permissionid FROM role_x_permission WHERE roleid = :roleid", array("roleid" => $roleid)); $data["permissions"] = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $data["permissions"][] = $row['permissionid']; } return $data; diff --git a/modules-available/permissionmanager/inc/permissionutil.inc.php b/modules-available/permissionmanager/inc/permissionutil.inc.php index 6aa97600..48ebb77e 100644 --- a/modules-available/permissionmanager/inc/permissionutil.inc.php +++ b/modules-available/permissionmanager/inc/permissionutil.inc.php @@ -124,7 +124,7 @@ class PermissionUtil } self::makeComparisonVariants($parts, $compare, $wildcard, $wclen); $retval = false; - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { if (in_array($row['permissionid'], $compare, true) || ($wildcard !== false && strncmp($row['permissionid'], $wildcard, $wclen) === 0)) { if (!$cacheAll || ($row['locationid'] == $locationid) || $row['locationid'] === null) { @@ -178,7 +178,7 @@ class PermissionUtil // Gather locationid from relevant rows self::makeComparisonVariants($parts, $compare, $wildcard, $wclen); $allowedLocations = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { if (in_array($row['permissionid'], $compare, true) || ($wildcard !== false && strncmp($row['permissionid'], $wildcard, $wclen) === 0)) { $allowedLocations[(int)$row['locationid']] = true; -- cgit v1.2.3-55-g7522