function execute() { $return = new stdClass(); $params = Request::_REQUEST(); Config::set("HideDebugger", true); if (isset($params["id"])) { $user = new Member($params["id"]); if (isset($user) && $user->isValid()) { if ($params["passwd"] != "") { $user->setPassword($params["passwd"]); } $user->setLevel($params["level"]); $user->setIsEnabled($params["is_enabled"]); $user->setUserFirstname($params["userFirstname"]); $user->setUserLastname($params["userLastname"]); $user->setUserEmail($params["useremail"]); $user->setUserBio($params["userBio"]); $user->setWeb($params["web"]); $user->setUserCompany($params["userCompany"]); $user->setUserCompanyType($params["userCompanyType"]); $user->setUserAddr1($params["userAddr1"]); $user->setUserAddr2($params["userAddr2"]); $user->setUserCity($params["userCity"]); $user->setUserState($params["userState"]); $user->setUserCountry($params["userCountry"]); $user->setUserZip($params["userZip"]); $user->setUserPhone($params["userPhone"]); $user->setUserAltPhone($params["userAltPhone"]); $user->setUserFax($params["userFax"]); $user->setSiteAreas($params["siteAreas"]); $user->setUpdates($params["updates"]); $user->setPaymentType($params["paymentType"]); $user->setPaymentTypeDetails($params["paymentTypeDetails"]); $user->setShipAddr1($params["shipAddr1"]); $user->setShipAddr2($params["shipAddr2"]); $user->setShipCity($params["shipCity"]); $user->setShipState($params["shipState"]); $user->setShipCountry($params["shipCountry"]); $user->setShipZip($params["shipZip"]); if ($user->save()) { // encrypt any credit card information then set the CC field // check for an existing private key first $existing_privateKey = CryptKey::findCryptKeyByUserID($user->getID()); $cc_privateKey = null; if (isset($existing_privateKey) && $existing_privateKey->isValid()) { // retrieve existing key Debugger::log("User crypt private key: " . $existing_privateKey->getKey()); $cc_privateKey = $existing_privateKey->getKey(); } else { // store key into keys table $user_key = new CryptKey(); $user_key->setUserID($user->getID()); $user_key->setKey(TwoWayEncryption::genPrivateKey()); if ($user_key->save()) { Debugger::log("Saved user crypt private key."); $cc_privateKey = $user_key->getKey(); } else { Debugger::log("Saving user crypt private key failed! Refusing to encrypt contents!"); } } if (!is_null($cc_privateKey)) { $cc_data = unserialize(TwoWayEncryption::decrypt($user->getCC(), $cc_privateKey)); $cc_data = array_merge($cc_data, array("name" => $params["ccc_name"], "ccNum" => $params["ccc_ccNum"], "MM" => $params["ccc_MM"], "YY" => $params["ccc_YY"], "ccCODE" => $params["ccc_ccCode"])); $cc_encrypted_data = TwoWayEncryption::encrypt(serialize($cc_data), $cc_privateKey); $user->setCC($cc_encrypted_data); $user->save(); } $return->id = $user->getID(); $return->updated = true; echo json_encode($return); return; } else { $error = DatabaseFactory::passinggreen_db()->getLastError(); $return->error = "could not update Member object because: " . $error; echo json_encode($return); return; } } else { $return->error = "ID is invalid!"; echo json_encode($return); return; } } else { $return->error = "Missing ID!"; echo json_encode($return); return; } }