[Vtigercrm-developers] getRecordOwnerId() in utils.php

Adam Heinz amh at metricwise.net
Wed Jan 23 12:24:15 PST 2013


I'm mucking around with an aftersave handler for the Quotes module today
and I started seeing some warnings getting logged.  It looks like the
product stock email is causing them, but when I trace into the code [1] my
jaw hit the floor.  Am I reading this right?  This function seems to think
that you can get back more than one user for a given id, which is
impossible, since id is the primary key for vtiger_users.  So then it
passes the array('Users' => ID) to getOwnerName to getOwnerNameList and
eventually blows up because it tries to use an array for an array key.  To
keep the blast radius small, I patched around the error [2], but I think
the moral of the story is that getRecordOwnerId() should be rewritten or
removed and all uses of it changed.

[1]
http://trac.vtiger.com/cgi-bin/trac.cgi/browser/vtigercrm/branches/5.4.0/include/utils/utils.php#L1303
[2]
Index: include/utils/InventoryUtils.php
===================================================================
--- include/utils/InventoryUtils.php (revision 3777)
+++ include/utils/InventoryUtils.php (working copy)
@@ -110,7 +110,7 @@
  if($upd_qty < $reorderlevel)
  {
  //send mail to the handler
- $handler = getRecordOwnerId($product_id);
+ $handler = $adb->database->GetOne("SELECT smownerid FROM vtiger_crmentity
WHERE crmid = ?", array($product_id));
  $handler_name = getOwnerName($handler);
  if(vtws_isRecordOwnerUser($handler)) {
  $to_address = getUserEmail($handler);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20130123/d3e48efc/attachment.html 


More information about the vtigercrm-developers mailing list