diff --git a/app/src/Model/Table/PermissionsTable.php b/app/src/Model/Table/PermissionsTable.php index 39931da9..53c6b73e 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; } /**