diff --git a/services/nginx/app/index.php b/services/nginx/app/index.php index 9303a0c9..fac51085 100644 --- a/services/nginx/app/index.php +++ b/services/nginx/app/index.php @@ -112,6 +112,9 @@ require_once 'modules/goals/classes/goals_criteria_products.php'; require_once 'modules/goals/classes/goals_criteria.php'; require_once 'modules/goals/classes/goals.php'; +// Subusers module (helpers used by objects) +require_once 'modules/subusers/helpers/subusers_permission_node_key.php'; + // Dynamic Images module foreach (glob(WD . '/modules/dynamicimages/interfaces/*.php') as $interface) { require_once $interface; diff --git a/services/nginx/app/routes/subusersRoute.php b/services/nginx/app/routes/subusersRoute.php index e078ec17..20ad6ee3 100644 --- a/services/nginx/app/routes/subusersRoute.php +++ b/services/nginx/app/routes/subusersRoute.php @@ -64,19 +64,20 @@ class subusersRoute if (!$hasFilter) { $response->error('You must provide at least one of: customer_number or subuser_id', 400); } - $rows = (new subuser_grants_o())->getFieldsWhere($filters, [ - 'id', 'billing_customer_number', 'subuser', 'enabled', 'note', 'permissions', 'created_at', 'updated_at', 'deleted_at' - ]); - // Decode permissions JSON - $data = array_map(function ($row) { - $row['id'] = (int)$row['id']; - $row['billing_customer_number'] = (int)$row['billing_customer_number']; - $row['subuser'] = (int)$row['subuser']; - $row['enabled'] = (bool)$row['enabled']; - $row['permissions'] = (!empty($row['permissions'])) ? (json_decode($row['permissions'], true) ?: []) : []; - return $row; - }, $rows); - $response->success(['grants' => $data]); + $paginatedResponse = (new subuser_grants_o())->listObjectsWithPaginationIfSet(function ($o) { + $o = (object)$o; + return [ + 'id' => $o->id, + 'billing_customer_number' => $o->billing_customer_number, + 'subuser' => $o->subuser, + 'enabled' => $o->enabled, + 'note' => $o->note, + 'permissions' => json_decode($o->permissions, true) ?: [], + 'created_at' => $o->created_at, + 'updated_at' => $o->updated_at, + ]; + }, $filters); + $response->success($paginatedResponse); }, []); $this->post('/subusers/grants', function () {