From 6ba17a3a6fd37225c105f7c448c9324fe257d3af Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Fri, 17 Jul 2026 13:59:31 +0530 Subject: [PATCH] role api issue --- src/docs/completed-routes.yaml | 3 +++ src/modules/roles/roles.service.js | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/docs/completed-routes.yaml b/src/docs/completed-routes.yaml index 3b748ab..d113ae7 100644 --- a/src/docs/completed-routes.yaml +++ b/src/docs/completed-routes.yaml @@ -2034,6 +2034,9 @@ paths: put: tags: [Roles] summary: Save permission matrix for role + description: > + Grants only actions that exist for each module. Sparse modules (e.g. SETTINGS view/edit, + REPORTS/AUDIT_LOGS view/export) ignore true flags for actions that have no permission row. requestBody: required: true content: diff --git a/src/modules/roles/roles.service.js b/src/modules/roles/roles.service.js index f8a1c35..72b1ee4 100644 --- a/src/modules/roles/roles.service.js +++ b/src/modules/roles/roles.service.js @@ -406,8 +406,9 @@ const savePermissionMatrix = async (id, matrix, userId, requestId) => { const perm = catalog.find( (p) => p.module_id.toString() === String(row.module_id) && p.action === action ); - if (!perm) - throw new ApiError(422, `Permission not found for module ${row.module_id}:${action}`); + // Sparse modules (e.g. SETTINGS view/edit only, REPORTS view/export) have no row for + // every action — ignore grants for actions that do not exist in the catalog. + if (!perm) continue; permissionIds.push(perm.id); } }