function Contacts_sendCustomerPortalLoginDetails($entityData) { $adb = PearDatabase::getInstance(); $moduleName = $entityData->getModuleName(); $wsId = $entityData->getId(); $parts = explode('x', $wsId); $entityId = $parts[1]; $email = $entityData->get('email'); if ($entityData->get('portal') == 'on' || $entityData->get('portal') == '1') { $sql = "SELECT id, user_name, user_password, isactive FROM vtiger_portalinfo WHERE id=?"; $result = $adb->pquery($sql, array($entityId)); $insert = false; if ($adb->num_rows($result) == 0) { $insert = true; } else { $dbusername = $adb->query_result($result, 0, 'user_name'); $isactive = $adb->query_result($result, 0, 'isactive'); if ($email == $dbusername && $isactive == 1 && !$entityData->isNew()) { $update = false; } else { if ($entityData->get('portal') == 'on' || $entityData->get('portal') == '1') { $sql = "UPDATE vtiger_portalinfo SET user_name=?, isactive=1 WHERE id=?"; $adb->pquery($sql, array($email, $entityId)); $password = $adb->query_result($result, 0, 'user_password'); $update = true; } else { $sql = "UPDATE vtiger_portalinfo SET user_name=?, isactive=? WHERE id=?"; $adb->pquery($sql, array($email, 0, $entityId)); $update = false; } } } if ($insert == true) { $password = makeRandomPassword(); $sql = "INSERT INTO vtiger_portalinfo(id,user_name,user_password,type,isactive) VALUES(?,?,?,?,?)"; $params = array($entityId, $email, $password, 'C', 1); $adb->pquery($sql, $params); } if ($insert == true || $update == true) { require_once "modules/Emails/mail.php"; global $current_user; $emailData = Contacts::getPortalEmailContents($entityData, $password, 'LoginDetails'); $subject = $emailData['subject']; $contents = $emailData['body']; $mail_status = send_mail('Contacts', $entityData->get('email'), $current_user->user_name, "", $subject, $contents); } } else { $sql = "UPDATE vtiger_portalinfo SET user_name=?,isactive=0 WHERE id=?"; $adb->pquery($sql, array($email, $entityId)); } }
function vtws_sendRecoverPassword($username) { global $adb, $log, $current_user, $PORTAL_URL, $url_code; $log->debug("Entering function vtws_sendRecoverPassword"); $ctors = $adb->query("select contactid,email,user_password\n\t\t\tfrom vtiger_contactdetails\n\t\t\tinner join vtiger_portalinfo on id=contactid\n\t\t\twhere isactive=1 and user_name='{$username}'"); if (!ctors or $adb->num_rows($ctors) == 0) { throw new WebServiceException(WebServiceErrorCode::$INVALIDUSERPWD, "Invalid username: username not found or not active"); } require_once 'modules/Emails/mail.php'; require_once 'modules/Contacts/Contacts.php'; $cto = $adb->fetch_array($ctors); $password = $cto['user_password']; $entityData = VTEntityData::fromEntityId($adb, $cto['contactid']); $contents = Contacts::getPortalEmailContents($entityData, $password); $subject = getTranslatedString('Customer Portal Login Details', 'Contacts'); $mail_status = send_mail('Contacts', $cto['email'], $current_user->user_name, "", $subject, $contents); $log->debug("Exiting function vtws_sendRecoverPassword"); return $mail_status; }
function Contacts_sendCustomerPortalLoginDetails($entityData) { $adb = PearDatabase::getInstance(); $moduleName = $entityData->getModuleName(); $wsId = $entityData->getId(); $parts = explode('x', $wsId); $entityId = $parts[1]; $entityDelta = new VTEntityDelta(); $portalChanged = $entityDelta->hasChanged($moduleName, $entityId, 'portal'); $email = $entityData->get('email'); if ($entityData->get('portal') == 'on' || $entityData->get('portal') == '1') { $sql = "SELECT id, user_name, user_password, isactive FROM vtiger_portalinfo WHERE id=?"; $result = $adb->pquery($sql, array($entityId)); $insert = false; if ($adb->num_rows($result) == 0) { $insert = true; } else { $dbusername = $adb->query_result($result, 0, 'user_name'); $isactive = $adb->query_result($result, 0, 'isactive'); if ($email == $dbusername && $isactive == 1 && !$entityData->isNew()) { $update = false; } else { if ($entityData->get('portal') == 'on' || $entityData->get('portal') == '1') { $sql = "UPDATE vtiger_portalinfo SET user_name=?, isactive=? WHERE id=?"; $adb->pquery($sql, array($email, 1, $entityId)); $update = true; } else { $sql = "UPDATE vtiger_portalinfo SET user_name=?, isactive=? WHERE id=?"; $adb->pquery($sql, array($email, 0, $entityId)); $update = false; } } } $password = makeRandomPassword(); $md5_password = md5($password); if ($insert == true) { $sql = "INSERT INTO vtiger_portalinfo(id,user_name,user_password,type,isactive) VALUES(?,?,?,?,?)"; $params = array($entityId, $email, $md5_password, 'C', 1); $adb->pquery($sql, $params); } if ($update == true && $portalChanged == true) { $sql = "UPDATE vtiger_portalinfo SET user_password=? WHERE id=?"; $params = array($md5_password, $entityId); $adb->pquery($sql, $params); } if (($insert == true || ($update = true && $portalChanged == true)) && $entityData->get('emailoptout') == 0) { global $current_user, $HELPDESK_SUPPORT_EMAIL_ID, $HELPDESK_SUPPORT_NAME; require_once "modules/Emails/mail.php"; $emailData = Contacts::getPortalEmailContents($entityData, $password, 'LoginDetails'); $subject = $emailData['subject']; if (empty($subject)) { $subject = 'Customer Portal Login Details'; } $contents = $emailData['body']; $contents = decode_html(getMergedDescription($contents, $entityId, 'Contacts')); if (empty($contents)) { require_once 'config.inc.php'; global $PORTAL_URL; $contents = 'LoginDetails'; $contents .= "<br><br> User ID : " . $entityData->get('email'); $contents .= "<br> Password: "******"' . $PORTAL_URL . '" style="font-family:Arial, Helvetica, sans-serif;font-size:13px;">' . vtranslate('click here', $moduleName) . '</a>'; $contents .= "<br>" . $portalURL; } $subject = decode_html(getMergedDescription($subject, $entityId, 'Contacts')); send_mail('Contacts', $entityData->get('email'), $HELPDESK_SUPPORT_NAME, $HELPDESK_SUPPORT_EMAIL_ID, $subject, $contents, '', '', '', '', '', true); } } else { $sql = "UPDATE vtiger_portalinfo SET user_name=?,isactive=0 WHERE id=?"; $adb->pquery($sql, array($email, $entityId)); } }