diff --git a/include/Webservices/VtigerModuleOperation.php b/include/Webservices/VtigerModuleOperation.php index 493e21449a00b5b5b03ca3f679db26cbe3583572..f6e1ceee182b78be11bb28374c19aff83ea88f95 100644 --- a/include/Webservices/VtigerModuleOperation.php +++ b/include/Webservices/VtigerModuleOperation.php @@ -174,6 +174,7 @@ class VtigerModuleOperation extends WebserviceEntityOperation { $meta = $parser->getObjectMetaData(); $this->pearDB->startTransaction(); $result = $this->pearDB->pquery($mysql_query, array()); + $tableIdColumn = $meta->getIdColumn(); $error = $this->pearDB->hasFailedTransaction(); $this->pearDB->completeTransaction(); @@ -187,10 +188,13 @@ class VtigerModuleOperation extends WebserviceEntityOperation { $output = array(); for($i=0; $i<$noofrows; $i++){ $row = $this->pearDB->fetchByAssoc($result,$i); - if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row["crmid"])){ + //NOTE : this permission check is not needed. If module does not have view permission + // then vtws_query API is restriction it. Module private check is added in the query itself, + // so this looks like additional overhead which can be removed. + /*if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row[$tableIdColumn])){ continue; - } - $output[$row["crmid"]] = DataTransform::sanitizeDataWithColumn($row,$meta); + }*/ + $output[$row[$tableIdColumn]] = DataTransform::sanitizeDataWithColumn($row,$meta); } $newOutput = array(); @@ -200,7 +204,7 @@ class VtigerModuleOperation extends WebserviceEntityOperation { foreach($output as $id => $row1) { if(!empty($tags[$id])) $output[$id]['tags'] = $tags[$id]; $newOutput[] = $output[$id]; - } + } } return $newOutput; }