getCurrentPortalUser(); $user = new Users(); $current_user = $user->retrieveCurrentUserInfoFromFile($userId); $response = new CustomerPortal_API_Response(); $mailid = $request->get('email'); $current_date = date("Y-m-d"); $sql = 'SELECT * FROM vtiger_portalinfo INNER JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid=vtiger_portalinfo.id INNER JOIN vtiger_customerdetails ON vtiger_customerdetails.customerid=vtiger_portalinfo.id INNER JOIN vtiger_crmentity ON vtiger_portalinfo.id=vtiger_crmentity.crmid WHERE vtiger_portalinfo.user_name = ? AND vtiger_crmentity.deleted= ? AND vtiger_customerdetails.support_start_date <= ?'; $res = $adb->pquery($sql, array($mailid, '0', $current_date)); $num_rows = $adb->num_rows($res); if ($num_rows > 0) { $isActive = $adb->query_result($res, 0, 'isactive'); $support_end_date = $adb->query_result($res, 0, 'support_end_date'); if ($isActive && ($support_end_date >= $current_date || $support_end_date == null )) { $moduleName = 'Contacts'; global $HELPDESK_SUPPORT_EMAIL_ID, $HELPDESK_SUPPORT_NAME; $user_name = $adb->query_result($res, 0, 'user_name'); $contactId = $adb->query_result($res, 0, 'id'); if (!empty($adb->query_result($res, 0, 'cryptmode'))) { $password = makeRandomPassword(); $enc_password = Vtiger_Functions::generateEncryptedPassword($password); $sql = 'UPDATE vtiger_portalinfo SET user_password=?, cryptmode=? WHERE id=?'; $params = array($enc_password, 'CRYPT', $contactId); $adb->pquery($sql, $params); } $portalURL = vtranslate('Please ', $moduleName).''.vtranslate('click here', $moduleName).''; $contents = '
Dear '.$adb->query_result($res, 0, 'firstname')." ".$adb->query_result($res, 0, 'lastname').'
'.vtranslate('Here is your self service portal login details:', $moduleName).'


'.vtranslate('User ID').' : '.$user_name.'
'.vtranslate('Password').' : '.$password.'
'.$portalURL.'

NOTE: '.vtranslate('We suggest you to change your password after logging in first time').'.
'; $subject = 'Customer Portal Login Details'; $subject = decode_html(getMergedDescription($subject, $contactId, $moduleName)); $mailStatus = send_mail($moduleName, $user_name, $HELPDESK_SUPPORT_NAME, $HELPDESK_SUPPORT_EMAIL_ID, $subject, $contents, '', '', '', '', '', true); $ret_msg = vtranslate('LBL_MAIL_COULDNOT_SENT', 'HelpDesk'); if ($mailStatus) { $ret_msg = vtranslate('LBL_MAIL_SENT', 'HelpDesk'); } $response->setResult($ret_msg); } else if ($isActive && $support_end_date <= $current_date) { throw new Exception('Access to the portal was disabled on '.$support_end_date, 1413); } else if ($isActive == 0) { throw new Exception('Portal access has not been enabled for this account.', 1414); } } else { $response->setError('1412', 'Invalid email'); } return $response; } function authenticatePortalUser($username, $password) { // always return true return true; } public function getCurrentPortalUser() { $db = PearDatabase::getInstance(); $result = $db->pquery("SELECT prefvalue FROM vtiger_customerportal_prefs WHERE prefkey = 'userid' AND tabid = 0", array()); if ($db->num_rows($result)) { return $db->query_result($result, 0, 'prefvalue'); } return false; } }