get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['email']]); if ($row) { if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit(); // Ok we update the credits if (JAK_BILLING_MODE == 1 && isset($jkp["credits"]) && !empty($jkp["credits"]) && $jkp["credits"] != 0) { $jakdb->update($jaktable, ["credits[+]" => $jkp["credits"]], ["id" => $row["id"]]); } // We update the membership access if (JAK_BILLING_MODE == 2 && isset($jkp["valid"]) && !empty($jkp["valid"])) { // Get the new date if (strtotime($row["paid_until"]) > time()) { $paidunix = strtotime($jkp["valid"], strtotime($row["paid_until"])); } else { $paidunix = strtotime($jkp["valid"]); } $paidtill = date('Y-m-d', $paidunix); $jakdb->update($jaktable, ["paid_until" => $paidtill], ["id" => $row["id"]]); } // Update the password if (isset($jkp["pass"]) && !empty($jkp["pass"])) { $jakdb->update($jaktable, ["password" => $jkp['pass']], ["id" => $row["id"]]); } // Update the chat departments if set so if (isset($jkp["chatdep"]) && !empty($jkp["chatdep"])) { $jakdb->update($jaktable, ["chat_dep" => $jkp['chatdep']], ["id" => $row["id"]]); } // Update the support departments if set so if (isset($jkp["supportdep"]) && !empty($jkp["supportdep"])) { $jakdb->update($jaktable, ["support_dep" => $jkp['supportdep']], ["id" => $row["id"]]); } // Update the faq categories if set so if (isset($jkp["faqcat"]) && !empty($jkp["faqcat"])) { $jakdb->update($jaktable, ["faq_cat" => $jkp['faqcat']], ["id" => $row["id"]]); } // Finally we update the rest $jakdb->update($jaktable, ["name" => $jkp['name'], "email" => $jkp['email']], ["id" => $row["id"]]); } else { if (empty($jkp['name'])) { $errors['e'] = $jkl['e']; } if (JAK_EMAIL_BLOCK) { $blockede = explode(',', JAK_EMAIL_BLOCK); if (in_array($jkp['email'], $blockede) || in_array(strrchr($jkp['email'], "@"), $blockede)) { $errors['e1'] = $jkl['e10']; } } if ($jkp['email'] == '' || !filter_var($jkp['email'], FILTER_VALIDATE_EMAIL)) { $errors['e2'] = $jkl['e1']; } if (jak_field_not_exist(strtolower($jkp['email']),$jaktable,$jakfield)) { $errors['e3'] = $jkl['hd35']; } if (count($errors) == 0) { // We have no errors we insert the user // create new password if ($jkp["pass"]) { $password = $jkl['hd58']; $passcrypt = $jkp["pass"]; } else { $password = jak_password_creator(); $passcrypt = hash_hmac('sha256', $password, DB_PASS_HASH); } $result = $jakdb->insert($jaktable, [ "opid" => filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT), "chat_dep" => ($jkp["chatdep"] ? $jkp["chatdep"] : JAK_STANDARD_CHAT_DEP), "support_dep" => ($jkp["supportdep"] ? $jkp["supportdep"] : JAK_STANDARD_SUPPORT_DEP), "faq_cat" => ($jkp["faqcat"] ? $jkp["faqcat"] : JAK_STANDARD_FAQ_CAT), "name" => filter_var($jkp["name"], FILTER_SANITIZE_FULL_SPECIAL_CHARS), "email" => filter_var($jkp["email"], FILTER_SANITIZE_EMAIL), "password" => $passcrypt, "credits" => ($jkp["credits"] ? $jkp["credits"] : 0), "paid_until" => ($jkp["valid"] ? $jkp["valid"] : "1980-05-06"), "canupload" => 1, "access" => 1, "time" => $jakdb->raw("NOW()")]); $uid = $jakdb->id(); // Get the email template $nlhtml = file_get_contents(APP_PATH.'template/'.JAK_FRONT_TEMPLATE.'/email/index.html'); if (!$result) { // We will need to inform the operator if set so if (JAK_TICKET_INFORM_R) { // Change fake vars into real ones. $cssAtt = array('{emailcontent}', '{weburl}', '{title}', '{emailtpllogo}', '{emailtplcopy}'); $cssUrl = array("There has been an error when creating following user: ".$jkp['email'], BASE_URL, JAK_TITLE, JAK_EMAILTPLLOGO, JAK_EMAILTPLCOPY); $nlcontent = str_replace($cssAtt, $cssUrl, $nlhtml); $body = str_ireplace("[\]", "", $nlcontent); // We need the reply to the department $emailreply = ""; if (isset($HD_SUPPORT_DEPARTMENTS) && is_array($HD_SUPPORT_DEPARTMENTS)) foreach ($HD_SUPPORT_DEPARTMENTS as $v) { if ($v["id"] == $accounts["depid"]) { if ($v["email"]) $emailreply = $v["email"]; } } // Ok, we send the email // email address, cc email address, reply to, subject, message, attachment jak_send_email($semail, explode(',', JAK_EMAILCC), $emailreply, JAK_TITLE.' - API Error', $body, ""); } } else { $newuserpath = APP_PATH.JAK_FILES_DIRECTORY.'/clients/'.$uid; if (!is_dir($newuserpath)) { mkdir($newuserpath, 0755); copy(APP_PATH.JAK_FILES_DIRECTORY."/index.html", $newuserpath."/index.html"); } // Change fake vars into real ones. if (!empty($HD_ANSWERS) && is_array($HD_ANSWERS)) foreach ($HD_ANSWERS as $v) { if ($v["msgtype"] == 14 && $v["lang"] == JAK_LANG) { $phold = array('{url}', '{title}', '{cname}', '{cemail}', '{cpassword}', '{email}'); $replace = array(BASE_URL, JAK_TITLE, $jkp['name'], $jkp['email'], $password, JAK_EMAIL); $regtext = str_replace($phold, $replace, $v["message"]); break; } } // Change fake vars into real ones. $cssAtt = array('{emailcontent}', '{weburl}', '{title}', '{emailtpllogo}', '{emailtplcopy}'); $cssUrl = array($regtext, BASE_URL, JAK_TITLE, JAK_EMAILTPLLOGO, JAK_EMAILTPLCOPY); $nlcontent = str_replace($cssAtt, $cssUrl, $nlhtml); $body = str_ireplace("[\]", "", $nlcontent); // Ok, we send the email // email address, cc email address, reply to, subject, message, attachment jak_send_email($jkp['email'], "", "", JAK_TITLE.' - '.$jkl['hd33'], $body, ""); } } } exit(); break; case 'update': // Collect the information from the old email address $row = $jakdb->get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['oldemail']]); if ($row) { if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit(); // Ok we update the credits if (JAK_BILLING_MODE == 1 && isset($jkp["credits"]) && !empty($jkp["credits"]) && $jkp["credits"] != 0) { $jakdb->update($jaktable, ["credits[+]" => $jkp["credits"]], ["id" => $row["id"]]); } // We update the membership access if (JAK_BILLING_MODE == 2 && isset($jkp["valid"]) && !empty($jkp["valid"])) { // Get the new date if (strtotime($row["paid_until"]) > time()) { $paidunix = strtotime($jkp["valid"], strtotime($row["paid_until"])); } else { $paidunix = strtotime($jkp["valid"]); } $paidtill = date('Y-m-d', $paidunix); $jakdb->update($jaktable, ["paid_until" => $paidtill], ["id" => $row["id"]]); } // Update the password if (isset($jkp["pass"]) && !empty($jkp["pass"])) { $jakdb->update($jaktable, ["password" => $jkp['pass']], ["id" => $row["id"]]); } // Update the chat departments if set so if (isset($jkp["chatdep"]) && !empty($jkp["chatdep"])) { $jakdb->update($jaktable, ["chat_dep" => $jkp['chatdep']], ["id" => $row["id"]]); } // Update the support departments if set so if (isset($jkp["supportdep"]) && !empty($jkp["supportdep"])) { $jakdb->update($jaktable, ["support_dep" => $jkp['supportdep']], ["id" => $row["id"]]); } // Update the faq categories if set so if (isset($jkp["faqcat"]) && !empty($jkp["faqcat"])) { $jakdb->update($jaktable, ["faq_cat" => $jkp['faqcat']], ["id" => $row["id"]]); } // Finally we update the rest $jakdb->update($jaktable, ["name" => $jkp['name'], "email" => $jkp['email']], ["id" => $row["id"]]); } exit(); break; case 'delete': $row = $jakdb->get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['email']]); if ($row) { if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit(); $jakdb->delete($jaktable, ["id" => $row["id"]]); // Delete Avatar and folder $targetPath = APP_PATH.JAK_FILES_DIRECTORY.'/clients/'.$row["id"].'/'; $removedouble = str_replace("//","/",$targetPath); foreach(glob($removedouble.'*.*') as $jak_unlink) { @unlink($jak_unlink); @unlink($targetPath); } // Find tickets from this user and set to 0 $jakdb->update($jaktable1, ["clientid" => 0], ["clientid" => $row["id"]]); $jakdb->update($jaktable2, ["clientid" => 0], ["clientid" => $row["id"]]); } exit(); break; default: // We could print an error here exit(); } } else { // Wrong api key we can print an error here } } else { // Some access to the api but it failed } ?>