/** * update account record * @param f array account record * @return objResponse object xajax response object */ function update($f) { global $locate, $db; $objResponse = new xajaxResponse(); $f['extension'] = strtolower($f['extension']); $f['agent'] = strtolower($f['agent']); $f['channel'] = strtolower($f['channel']); if (trim($f['username']) == '' || trim($f['password']) == '' || trim($f['extension']) == '' || trim($f['usertype']) == '' || trim($f['firstname']) == '' || trim($f['lastname']) == '') { $objResponse->addAlert($locate->Translate("obligatory_fields")); return $objResponse->getXML(); } if (trim($f['usertype']) != 'admin' && trim($f['groupid']) == '') { $objResponse->addAlert($locate->Translate("please add group first")); return $objResponse->getXML(); } $username = $f['username']; $userid = astercrm::checkValues("astercrm_account", "username", $username); if ($userid != '' && $userid != $f['id']) { $objResponse->addAlert($locate->Translate("username_repeat")); return $objResponse->getXML(); } if ($f['extensions'] == $locate->translate('extensions_input_tip')) { $f['extensions'] = ''; } if ($f['extensions'] != "") { $f['extensions'] = astercrm::dbcToSbc($f['extensions']); $myExtensions = split(",", $f['extensions']); if ($f['extensType'] != "username") { foreach ($myExtensions as $exten) { $sqlStr .= "OR extension = '{$exten}'"; } $sqlStr = ltrim($sqlStr, "OR"); $query = "SELECT username From astercrm_account WHERE {$sqlStr}"; astercrm::events($query); $res =& $db->query($query); $myExtensions = array(); while ($res->fetchInto($row)) { $myExtensions[] = $row['username']; $newextensions .= "," . $row['username']; } $f['extensions'] = ltrim($newextensions, ','); } // check the assign username if belong to this group if ($_SESSION['curuser']['usertype'] != 'admin') { $myusernames = $myExtensions; $newextensions = ""; $groupList = astercrm::getGroupMemberListByID($_SESSION['curuser']['groupid']); while ($groupList->fetchInto($groupRow)) { $memberNames[] = $groupRow['username']; } foreach ($myusernames as $myusername) { if (in_array($myusername, $memberNames)) { $newextensions .= ",{$myusername}"; } } $f['extensions'] = ltrim($newextensions, ','); } } if ($f['usertype'] == 'admin') { $f['groupid'] = 0; } // check over $respOk = Customer::updateAccountRecord($f); if ($respOk) { $html = createGrid(0, ROWSXPAGE); $objResponse->addAssign("grid", "innerHTML", $html); $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("update_rec")); $objResponse->addAssign("formDiv", "style.visibility", "hidden"); } else { $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("rec_cannot_update")); } return $objResponse->getXML(); }