From a7f2c2df314ba91779dc2ac0257a5d29974ca0e6 Mon Sep 17 00:00:00 2001 From: Benn Oshrin Date: Wed, 7 May 2025 16:12:56 -0400 Subject: [PATCH] Fix PermissionsTable for Cake 4.6 (NOJIRA) --- app/src/Model/Table/PermissionsTable.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/Model/Table/PermissionsTable.php b/app/src/Model/Table/PermissionsTable.php index 39931da9d..53c6b73e5 100644 --- a/app/src/Model/Table/PermissionsTable.php +++ b/app/src/Model/Table/PermissionsTable.php @@ -99,9 +99,20 @@ public function buildRules(RulesChecker $rules): RulesChecker { */ public function findForUser(string $username) { - return $this->find('list', ['keyField' => 'matchgrid_id', 'valueField' => 'permission']) - ->where(['username' => $username]) - ->toArray(); + // As of Cake 4.6 (or maybe 4.5) find('list') keyField can't have null values, + // so we manually assemble the result to an array and assign the platform a pseudo + // identifier of -1. + $perms = $this->find() + ->where(['username' => $username]) + ->all(); + + $ret = []; + + foreach($perms as $p) { + $ret[ $p->matchgrid_id ?? -1 ] = $p->permission; + } + + return $ret; } /**