From 29c714c9c0d1c51943f4b053dd94851afbddfebc Mon Sep 17 00:00:00 2001 From: Amit <amit.r@vtiger.com> Date: Wed, 26 Jul 2023 15:10:33 +0530 Subject: [PATCH] V-156500377::Amit::chart Reports Permission check in group by field --- modules/Reports/actions/Save.php | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/Reports/actions/Save.php b/modules/Reports/actions/Save.php index 197182bb3..d76a13b10 100644 --- a/modules/Reports/actions/Save.php +++ b/modules/Reports/actions/Save.php @@ -26,21 +26,23 @@ class Reports_Save_Action extends Vtiger_Save_Action { throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); } } - $selectedFields = $request->get('selected_fields'); - if (count($selectedFields) > 0) { - foreach ($selectedFields as $field) { - list($tablename, $colname, $module_field, $fieldname, $single) = split(":", $field); - list($module, $fieldName) = split("_", $module_field, 2); - $moduleModel = Vtiger_Module_Model::getInstance($module); - $fieldModel = Vtiger_Field_Model::getInstance($fieldname, $moduleModel); - - if ($fieldModel->table !== $tablename) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } elseif ($fieldModel->column !== $colname) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } - } - } + + $selectedFields = $request->get('selected_fields'); + $groupbyfields = $request->get('groupbyfield'); + $fieldsData = array($selectedFields, $groupbyfields); + + foreach ($fieldsData as $selectedField){ + foreach ($selectedField as $field) { + list($tablename, $colname, $module_field, $fieldname, $single) = split(":", $field); + list($module, $fieldName) = split("_", $module_field, 2); + $moduleModel = Vtiger_Module_Model::getInstance($module); + $fieldModel = Vtiger_Field_Model::getInstance($fieldname, $moduleModel); + + if (($fieldModel->table !== $tablename) || ($fieldModel->column !== $colname)) { + throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); + } + } + } return true; } -- GitLab