Older than ".$frm->select('resendAge', $age, 24).$frm->checkbox('resetPasswords',1,false,'Reset all passwords').
-
+ $frm->userclass('resendClass',false, null ).
$frm->button('resendToAll', 1, 'warning', LAN_GO)."
@@ -1873,7 +1874,7 @@ class users_admin_ui extends e_admin_ui
* @param bool $resetPasswords
* @param int $age in hours. ie. older than 24 hours will be sent an email.
*/
- function resend_to_all($resetPasswords=false, $age=24)
+ function resend_to_all($resetPasswords=false, $age=24, $class='')
{
global $sql,$pref;
$tp = e107::getParser();
@@ -1890,7 +1891,14 @@ class users_admin_ui extends e_admin_ui
// $query = "SELECT u.*, ue.* FROM `#user` AS u LEFT JOIN `#user_extended` AS ue ON ue.user_extended_id = u.user_id WHERE u.user_ban = 2 AND u.user_email != '' AND u.user_join < ".$age." ORDER BY u.user_id DESC";
- $query = "SELECT u.* FROM `#user` AS u WHERE u.user_ban = 2 AND u.user_email != '' AND u.user_join < ".$age." ORDER BY u.user_id DESC";
+ $query = "SELECT u.* FROM `#user` AS u WHERE u.user_ban = 2 AND u.user_email != '' AND u.user_join < ".$age." ";
+
+ if(!empty($class))
+ {
+ $query .= " AND FIND_IN_SET( ".intval($class).", u.user_class) ";
+ }
+
+ $query .= " ORDER BY u.user_id DESC";
$sql->gen($query);
@@ -1946,11 +1954,11 @@ class users_admin_ui extends e_admin_ui
'USERID' => $row['user_id'],
'LOGINNAME' => (intval($emailLogin) === 1) ? $row['user_email'] : $row['user_loginname'],
'PASSWORD' => $rawPassword,
- 'DISPLAYNAME' => $row['user_name'],
+ 'DISPLAYNAME' => $tp->toDB($row['user_name']),
'SUBJECT' => LAN_SIGNUP_98,
'USERNAME' => $row['user_name'],
'USERLASTVISIT' => $row['user_lastvisit'],
- 'ACTIVATION_LINK' => "
".$activationUrl."",
+ 'ACTIVATION_LINK' => '
'.$activationUrl.'', // Warning: switching the quotes on this will break the template.
'ACTIVATION_URL' => $activationUrl,
'DATE_SHORT' => $tp->toDate(time(),'short'),
'DATE_LONG' => $tp->toDate(time(),'long'),
@@ -1983,10 +1991,12 @@ class users_admin_ui extends e_admin_ui
);
- $mailer->sendEmails('signup', $mailData, $recipients);
+ $mailer->sendEmails('signup', $mailData, $recipients, array('mail_force_queue'=>1));
$totalMails = count($recipients);
- e107::getMessage()->addSuccess("Total emails added to mail queue: ".$totalMails);
+ $url = e_ADMIN."mailout.php?mode=pending&action=list";
+
+ e107::getMessage()->addSuccess("Total emails added to
mail queue: ".$totalMails);
}
diff --git a/e107_handlers/cron_class.php b/e107_handlers/cron_class.php
index 040c99b11..3b0247459 100644
--- a/e107_handlers/cron_class.php
+++ b/e107_handlers/cron_class.php
@@ -171,8 +171,17 @@ class _system_cron
sendemail($pref['siteadminemail'], "e107 - TEST Email Sent by cron.".date("r"), $message, $pref['siteadmin'],$pref['siteadminemail'], $pref['siteadmin']);
}
-
- function procEmailQueue()
+
+
+ /**
+ * Process the Mail Queue
+ * First create a mail queue then debug with the following:
+ require_once(e_HANDLER."cron_class.php");
+ $cron = new _system_cron;
+ $cron->procEmailQueue(true);
+ * @param bool $debug
+ */
+ function procEmailQueue($debug= false)
{
$sendPerHit = e107::getConfig()->get('mail_workpertick',5);
@@ -183,9 +192,14 @@ class _system_cron
{
e107::getLog()->e_log_event(10,debug_backtrace(),'DEBUG','CRON Email','Email run started',FALSE,LOG_TO_ROLLING);
}
-
- require_once(e_HANDLER.'mail_manager_class.php');
- $mailManager = new e107MailManager();
+
+ $mailManager = e107::getBulkEmail();
+
+ if($debug === true)
+ {
+ $mailManager->controlDebug(1);
+ }
+
$mailManager->doEmailTask($sendPerHit,$pauseCount,$pauseTime);
if (CRON_MAIL_DEBUG)
diff --git a/e107_handlers/login.php b/e107_handlers/login.php
index c9946db6b..00c5ee257 100644
--- a/e107_handlers/login.php
+++ b/e107_handlers/login.php
@@ -43,9 +43,10 @@ class userlogin
protected $e107;
protected $userMethods; // Pointer to user handler
protected $userIP; // IP address
- protected $lookEmail = FALSE; // Flag set if logged in using email address
+ protected $lookEmail = false; // Flag set if logged in using email address
protected $userData = array(); // Information for current user
- protected $passResult = FALSE; // USed to determine if stored password needs update
+ protected $passResult = false; // USed to determine if stored password needs update
+ protected $testMode = false;
public function __construct()
@@ -452,6 +453,35 @@ class userlogin
}
+ public function test()
+ {
+
+ $this->testMode = true;
+ $errors = array(
+ 'LOGIN_TRY_OTHER'=> 2, // Try some other authentication method
+ 'LOGIN_CONTINUE'=>1, // Not rejected (which is not exactly the same as 'accepted') by alt_auth
+ 'LOGIN_ABORT'=>-1, // Rejected by alt_auth
+ 'LOGIN_BAD_PW'=> -2, // Password wrong
+ 'LOGIN_BAD_USER'=> -3, // User not in DB
+ 'LOGIN_BAD_USERNAME'=> -4, // Username format unacceptable (e.g. too long)
+ 'LOGIN_BAD_CODE'=> -5, // Wrong image code entered
+ 'LOGIN_MULTIPLE'=> -6, // Error if multiple logins not allowed
+ 'LOGIN_NOT_ACTIVATED'=> -7, // User in DB=> not activated
+ 'LOGIN_BLANK_FIELD'=> -8, // Username or password blank
+ 'LOGIN_BAD_TRIGGER'=> -9, // Rejected by trigger event
+ 'LOGIN_BANNED'=> -10, // Banned user attempting login
+ 'LOGIN_CHAP_FAIL'=> -11, // CHAP login failed
+ 'LOGIN_DB_ERROR'=> -12, // Error adding user to main DB
+ );
+
+ foreach($errors as $k=>$v)
+ {
+ $this->invalidLogin("John Smith", $v, 'Custom error text');
+ echo "
".$k."
";
+ echo e107::getMessage()->render();
+ }
+
+ }
/**
* called to log the reason for a failed login.
@@ -463,76 +493,85 @@ class userlogin
global $pref, $sql;
$doCheck = FALSE; // Flag set if need to ban check
- switch ($reason)
+
+
+ switch($reason)
{
- case LOGIN_ABORT : // alt_auth reject
- define("LOGINMESSAGE", LAN_LOGIN_21);
- $this->genNote($this->userIP,$username, 'Alt_auth: '.LAN_LOGIN_14);
- $this->logNote('LAN_ROLL_LOG_04', 'Alt_Auth: '.$username);
- $doCheck = TRUE;
- break;
- case LOGIN_DB_ERROR : // alt_auth couldn't add valid user
- define("LOGINMESSAGE", LAN_LOGIN_31);
- $this->genNote($username, 'Alt_auth: '.LAN_LOGIN_30);
+ case LOGIN_ABORT : // alt_auth reject
+ $message = LAN_LOGIN_21;
+ $this->genNote($this->userIP, $username, 'Alt_auth: ' . LAN_LOGIN_14);
+ $this->logNote('LAN_ROLL_LOG_04', 'Alt_Auth: ' . $username);
+ $doCheck = true;
+ break;
+ case LOGIN_DB_ERROR : // alt_auth couldn't add valid user
+ $message = LAN_LOGIN_31;
+ $this->genNote($username, 'Alt_auth: ' . LAN_LOGIN_30);
// $this->logNote('LAN_ROLL_LOG_04', 'Alt_Auth: '.$username); // Added in alt_auth login
- $doCheck = TRUE;
+ $doCheck = true;
break;
case LOGIN_BAD_PW :
- define("LOGINMESSAGE", LAN_LOGIN_21);
- $this->logNote('LAN_ROLL_LOG_03', $username);
- break;
+ $message = LAN_LOGIN_21;
+ $this->logNote('LAN_ROLL_LOG_03', $username);
+ break;
case LOGIN_CHAP_FAIL :
- define("LOGINMESSAGE", LAN_LOGIN_21);
- $this->logNote('LAN_ROLL_LOG_03', 'CHAP: '.$username);
- break;
+ $message = LAN_LOGIN_21;
+ $this->logNote('LAN_ROLL_LOG_03', 'CHAP: ' . $username);
+ break;
case LOGIN_BAD_USER :
- define("LOGINMESSAGE", LAN_LOGIN_21);
- $this->genNote($username, LAN_LOGIN_14);
- $this->logNote('LAN_ROLL_LOG_04', $username);
- $doCheck = TRUE;
- break;
+ $message = LAN_LOGIN_21;
+ $this->genNote($username, LAN_LOGIN_14);
+ $this->logNote('LAN_ROLL_LOG_04', $username);
+ $doCheck = true;
+ break;
case LOGIN_BAD_USERNAME :
- define("LOGINMESSAGE", LAN_LOGIN_21);
- $this->logNote('LAN_ROLL_LOG_08', $username);
- break;
+ $message = LAN_LOGIN_21;
+ $this->logNote('LAN_ROLL_LOG_08', $username);
+ break;
case LOGIN_MULTIPLE :
- define("LOGINMESSAGE", LAN_LOGIN_24);
- $this->logNote('LAN_ROLL_LOG_07', "U: {$username} IP: {$this->userIP}");
- $this->genNote($username, LAN_LOGIN_16);
- $doCheck = TRUE;
- break;
+ $message = LAN_LOGIN_24;
+ $this->logNote('LAN_ROLL_LOG_07', "U: {$username} IP: {$this->userIP}");
+ $this->genNote($username, LAN_LOGIN_16);
+ $doCheck = true;
+ break;
case LOGIN_BAD_CODE :
- define("LOGINMESSAGE", LAN_LOGIN_23);
- $this->logNote('LAN_ROLL_LOG_02', $username);
- break;
+ $message = LAN_LOGIN_23;
+ $this->logNote('LAN_ROLL_LOG_02', $username);
+ break;
case LOGIN_NOT_ACTIVATED :
- $srch = array("[","]");
- $repl = array("
","");
- define("LOGINMESSAGE", str_replace($srch,$repl,LAN_LOGIN_22));
- $this->logNote('LAN_ROLL_LOG_05', $username);
- $this->genNote($username, LAN_LOGIN_27);
- $doCheck = TRUE;
- break;
+ $srch = array("[", "]");
+ $repl = array("
", "");
+ $message = str_replace($srch, $repl, LAN_LOGIN_22);
+ $this->logNote('LAN_ROLL_LOG_05', $username);
+ $this->genNote($username, LAN_LOGIN_27);
+ $doCheck = true;
+ break;
case LOGIN_BLANK_FIELD :
- define("LOGINMESSAGE", LAN_LOGIN_20);
- $this->logNote('LAN_ROLL_LOG_01', $username);
- break;
+ $message = LAN_LOGIN_20;
+ $this->logNote('LAN_ROLL_LOG_01', $username);
+ break;
case LOGIN_BAD_TRIGGER :
- define("LOGINMESSAGE", $extra_text);
- $this->logNote('LAN_ROLL_LOG_06', $username);
- break;
+ $message = $extra_text;
+ $this->logNote('LAN_ROLL_LOG_06', $username);
+ break;
case LOGIN_BANNED :
- define("LOGINMESSAGE", LAN_LOGIN_21); // Just give 'incorrect login' message
- $this->genNote($username, LAN_LOGIN_25);
- $this->logNote('LAN_ROLL_LOG_09', $username);
- break;
- default : // Something's gone wrong!
- define("LOGINMESSAGE", LAN_LOGIN_21); // Just give 'incorrect login' message
- $this->genNote($username, LAN_LOGIN_26);
- $this->logNote('LAN_ROLL_LOG_10', $username);
+ $message = LAN_LOGIN_21; // Just give 'incorrect login' message
+ $this->genNote($username, LAN_LOGIN_25);
+ $this->logNote('LAN_ROLL_LOG_09', $username);
+ break;
+ default : // Something's gone wrong!
+ $message = LAN_LOGIN_21; // Just give 'incorrect login' message
+ $this->genNote($username, LAN_LOGIN_26);
+ $this->logNote('LAN_ROLL_LOG_10', $username);
}
- e107::getMessage()->addError(LOGINMESSAGE);
+ e107::getMessage()->addError($message);
+
+ if($this->testMode === true)
+ {
+ return $message;
+ }
+
+ define('LOGINMESSAGE', $message);
if ($doCheck) // See if ban required (formerly the checkibr() function)
{
diff --git a/e107_handlers/mail_manager_class.php b/e107_handlers/mail_manager_class.php
index 42427d323..e3ce56ff6 100644
--- a/e107_handlers/mail_manager_class.php
+++ b/e107_handlers/mail_manager_class.php
@@ -223,7 +223,7 @@ class e107MailManager
if(deftrue('e_DEBUG'))
{
- $this->debugMode = true;
+ $this->debugMode = true;
}
if($this->debugMode === true)
@@ -426,13 +426,14 @@ class e107MailManager
* @param $data - array of DB-sourced target-related data
* @param $addMissing - if TRUE, undefined fields are added
*
- * @return void
+ * @return array
*/
public function dbToBoth(&$data, $addMissing = FALSE)
{
$res = array();
$oneToOne = array_merge($this->dbTypes['mail_content'], $this->dbTypes['mail_recipients']); // List of valid elements
+
// Start with simple 'one to one' fields
foreach ($oneToOne as $f => $v)
{
@@ -465,7 +466,9 @@ class e107MailManager
}
if (isset($data['mail_target_info']))
{
- $tmp = e107::unserialize(str_replace('\\\'', '\'',$data['mail_target_info'])); // May have escaped data
+ $clean = stripslashes($data['mail_target_info']);
+ $tmp = e107::unserialize($clean); // May have escaped data
+
$res['mail_target_info'] = $tmp;
}
@@ -654,11 +657,12 @@ class e107MailManager
{
$counterList = array('mail_source_id','mail_togo_count', 'mail_sent_count', 'mail_fail_count', 'mail_start_send');
- if (($email = $this->getNextEmail()) === FALSE)
+ if (($email = $this->getNextEmail()) === false)
{
- return FALSE;
+ return false;
}
+
/**
* The $email variable has all the email data in 'flat' form, including that of the current recipient.
* field $email['mail_target_info'] has variable substitution information relating to the current recipient
@@ -713,17 +717,23 @@ class e107MailManager
$mailToSend = $this->makeEmailBlock($email); // Substitute mail-specific variables, attachments etc
-// print_a($email);
+
if($this->debugMode)
{
+
+ echo "
Preview
";
+ $preview = $this->mailer->preview($mailToSend);
+ echo $preview;
+ echo "
Preview (HTML)
";
+ print_a($preview);
$logName = "mailout_simulation_".$email['mail_source_id'];
e107::getLog()->addDebug("Sending Email to <".$email['mail_recipient_name']."> ".$email['mail_recipient_email'])->toFile($logName,'Mailout Simulation Log',true);
$result = true;
}
else
{
- $result = $this->mailer->sendEmail($email['mail_recipient_email'], $email['mail_recipient_name'], $mailToSend, TRUE);
+ $result = $this->mailer->sendEmail($email['mail_recipient_email'], $email['mail_recipient_name'], $mailToSend, TRUE);
}
// Try and send
@@ -890,6 +900,8 @@ class e107MailManager
);
+
+
$result = array();
@@ -911,7 +923,6 @@ class e107MailManager
}
-
// Do any substitutions
$search = array();
$replace = array();
@@ -974,7 +985,16 @@ class e107MailManager
// e107::getAdminLog()->addDebug($title2.print_a($result,true),true);
$result['shortcodes']['MAILREF'] = $email['mail_source_id'];
-
+
+ if($this->debugMode)
+ {
+ echo "
makeEmailBlock() : Incoming
";
+ print_a($email);
+
+ echo "
makeEmailBlock(): Outgoing
";
+ print_a($result);
+ }
+
return $result;
}
@@ -1716,25 +1736,24 @@ class e107MailManager
'mail_recipient_email' => $row['user_email']
);
* ....and other data as appropriate
- * @param boolean|array $extra - any additional parameters to be passed to the mailer - as accepted by arraySet method.
+ * @param boolean|array $options - any additional parameters to be passed to the mailer - as accepted by arraySet method.
* These parameters will override any defaults, and any set in the template
- * if ($extra['mail_force_queue'] is TRUE, the mail will be added to the queue regardless of the number of recipients
+ * if ($options['mail_force_queue'] is TRUE, the mail will be added to the queue regardless of the number of recipients
*
* @return boolean TRUE if either added to queue, or sent, successfully (does NOT indicate receipt). FALSE on any error
* (Note that with a small number of recipients FALSE indicates that one or more emails weren't sent - some may have been sent successfully)
*/
- public function sendEmails($templateName, $emailData, $recipientData, $extra = FALSE)
+ public function sendEmails($templateName, $emailData, $recipientData, $options = false)
{
$log = e107::getAdminLog();
$log->addDebug(print_r($emailData, true),true);
$log->addDebug(print_r($recipientData, true),true);
$log->toFile('mail_manager','Mail Manager Log', true);
-
-
+
if (!is_array($emailData))
{
- return FALSE;
+ return false;
}
if (!is_array($recipientData))
@@ -1749,23 +1768,14 @@ class e107MailManager
$templateName = varset($emailData['mail_send_style'], 'textonly'); // Safest default if nothing specified
}
-
$templateName = trim($templateName);
- if ($templateName == '') return FALSE;
+ if ($templateName == '') return false;
-
- // Get template data, override email settings as appropriate
- // require_once(e_HANDLER.'mail_template_class.php');
- // $ourTemplate = new e107MailTemplate();
- // if (!$ourTemplate->setNewTemplate($templateName) && empty($emailData['template'])) return FALSE; // Probably template not found if error
- // if (!$ourTemplate->makeEmailBody($emailData['mail_body'], varset($emailData['mail_include_images'], TRUE))) return FALSE; // Create body text
-
-
-
-// $emailData['mail_body_templated'] = $ourTemplate->mainBodyText;
$this->currentMailBody = $emailData['mail_body']; // In case we send immediately
-// $emailData['mail_body_alt'] = $ourTemplate->altBodyText;
$this->currentTextBody = strip_tags($emailData['mail_body']);
+
+ // $emailData['mail_body_templated'] = $ourTemplate->mainBodyText;
+ // $emailData['mail_body_alt'] = $ourTemplate->altBodyText;
if (!isset($emailData['mail_overrides']))
{
@@ -1783,16 +1793,11 @@ class e107MailManager
}
}
-
-
-
- $forceQueue = FALSE;
-
-
- if (is_array($extra) && isset($extra['mail_force_queue']))
+
+ if (is_array($options) && isset($options['mail_force_queue']))
{
- $forceQueue = $extra['mail_force_queue'];
- unset($extra['mail_force_queue']);
+ $forceQueue = $options['mail_force_queue'];
+ unset($options['mail_force_queue']);
}
if($this->debugMode)
@@ -1809,7 +1814,7 @@ class e107MailManager
if ($this->mailer == NULL)
{
e107_require_once(e_HANDLER.'mail.php');
- $this->mailer = new e107Email($extra);
+ $this->mailer = new e107Email($options);
}
$tempResult = TRUE;
$eCount = 0;
@@ -1833,7 +1838,7 @@ class e107MailManager
continue;
*/
- if (FALSE == $this->mailer->sendEmail($recip['mail_recipient_email'], $recip['mail_recipient_name'], $mailToSend, true))
+ if (false == $this->mailer->sendEmail($recip['mail_recipient_email'], $recip['mail_recipient_name'], $mailToSend, true))
{
$tempResult = FALSE;
if($this->debugMode)
@@ -1864,7 +1869,7 @@ class e107MailManager
// ----------- Too many recipients to send at once - add to the emailing queue ---------------- //
- // @TODO - handle any other relevant $extra fields
+ // @TODO - handle any other relevant $options fields
$emailData['mail_total_count'] = count($recipientData);
$result = $this->saveEmail($emailData, TRUE);
diff --git a/e107_handlers/user_handler.php b/e107_handlers/user_handler.php
index 8c4903a1b..e4010f871 100644
--- a/e107_handlers/user_handler.php
+++ b/e107_handlers/user_handler.php
@@ -157,7 +157,7 @@ class UserHandler
*
* @return string|boolean - FALSE if invalid emcoding method, else encoded password to store in DB
*/
- public function HashPassword($password, $login_name, $force='')
+ public function HashPassword($password, $login_name='', $force='')
{
if ($force == '') $force = $this->preferred;
switch ($force)
@@ -207,6 +207,42 @@ class UserHandler
}
+ /**
+ * Reset the user's password with an auto-generated string.
+ * @param $uid
+ * @param string $loginName (optional)
+ * @return bool|string rawPassword
+ */
+ public function resetPassword($uid, $loginName='')
+ {
+ if(empty($uid))
+ {
+ return false;
+ }
+
+ $rawPassword = $this->generateRandomString('********');
+ // $sessKey = e_user_model::randomKey();
+
+ $updateQry = array(
+ 'user_password' => $this->HashPassword($rawPassword, $loginName),
+ 'WHERE' => 'user_id = '.intval($uid)." LIMIT 1"
+ );
+
+ if(e107::getDb()->update('user', $updateQry))
+ {
+ return $rawPassword;
+ }
+ else
+ {
+ return false;
+ }
+
+
+
+ }
+
+
+
/**
* Verifies a standard response to a CHAP challenge
*
diff --git a/e107_plugins/login_menu/login_menu_shortcodes.php b/e107_plugins/login_menu/login_menu_shortcodes.php
index b0efe0bc5..8b0fdfbbe 100755
--- a/e107_plugins/login_menu/login_menu_shortcodes.php
+++ b/e107_plugins/login_menu/login_menu_shortcodes.php
@@ -42,6 +42,7 @@ global $tp;
private $use_imagecode =0;
private $sec;
private $usernameLabel = LOGIN_MENU_L1;
+ private $allowEmailLogin;
function __construct()
{
@@ -50,6 +51,7 @@ global $tp;
$this->use_imagecode = e107::getConfig()->get('logcode');
$this->sec = e107::getSecureImg();
$this->usernameLabel = '';
+ $this->allowEmailLogin = $pref['allowEmailLogin'];
if($pref['allowEmailLogin']==1)
{
@@ -66,7 +68,11 @@ global $tp;
function sc_lm_username_input($parm='')
{
$pref = e107::getPref();
- return "
\n";
+
+ // If logging in with email address - ignore pref and increase to 100 chars.
+ $maxLength = ($this->allowEmailLogin == 1 || $this->allowEmailLogin) ? 100 : varset($pref['loginname_maxlength'],30);
+
+ return "
\n";
}
diff --git a/fpw.php b/fpw.php
index f81a1cae3..ca1a51d3c 100644
--- a/fpw.php
+++ b/fpw.php
@@ -319,8 +319,15 @@ if (isset($_POST['pwsubmit']))
$do_log['user_loginname'] = $row['user_loginname'];
$do_log['activation_code'] = $rcode;
+ if(getperms('0'))
+ {
+ $ns->tablerender("Testing Mode", print_a($message,true));
+ require_once(FOOTERF);
+ exit;
+ }
+
// Try to send the email
- if(sendemail($_POST['email'], "".LAN_09."".SITENAME, $message))
+ if(sendemail($clean_email, "".LAN_09."".SITENAME, $message))
{
e107::getMessage()->addInfo(LAN_FPW6);
$do_log['password_result'] = LAN_FPW20;
diff --git a/signup.php b/signup.php
index d4601c142..edec5e360 100644
--- a/signup.php
+++ b/signup.php
@@ -103,17 +103,24 @@ if ((USER || (intval($pref['user_reg']) !== 1) || (vartrue($pref['auth_method'],
class signup
{
+ private $testMode = false;
+
function __construct()
{
$pref = e107::pref('core');
+ if(getperms('0'))
+ {
+ $this->testMode = true;
+ }
+
if(substr(e_QUERY,0,9)=='activate.')
{
$this->processActivationLink();
}
- if((e_QUERY == 'resend') && (!USER || getperms('0')) && ($pref['user_reg_veri'] == 1))
+ if((e_QUERY == 'resend') && (!USER || $this->testMode) && ($pref['user_reg_veri'] == 1))
{
if(empty($_POST['submit_resend']))
{
@@ -125,7 +132,7 @@ class signup
}
}
- if(getperms('0'))
+ if($this->testMode == true)
{
if(e_QUERY == 'preview')
{
@@ -210,28 +217,53 @@ class signup
}
// Now send the email - got some valid info
- $row['user_password'] = 'xxxxxxx'; // Don't know the real one
- $eml = render_email($row);
+ $editPassword = e107::getPref('signup_option_password', 2);
+
+ if(empty($editPassword)) // user input of password was disabled, so generate a new one.
+ {
+ $row['user_password'] = $userMethods->resetPassword($row['user_id']);
+ }
+ else
+ {
+ $row['user_password'] = 'xxxxxxx'; // Don't know the real one
+ }
+
+ $row['activation_url'] = SITEURL."signup.php?activate.".$row['user_id'].".".$row['user_sess'];
+
+ $eml = $this->render_email($row);
$eml['e107_header'] = $row['user_id'];
- require_once(e_HANDLER.'mail.php');
- $mailer = new e107Email();
- if(!$mailer->sendEmail(USEREMAIL, USERNAME, $eml, FALSE))
-
- $do_log['signup_action'] = LAN_SIGNUP_63;
-
- if(!sendemail($row['user_email'], $eml['subject'], $eml['message'], $row['user_name'], "", "", $eml['attachments'], $eml['cc'], $eml['bcc'], $returnpath, $returnreceipt, $eml['inline-images']))
+ if($this->testMode == true) // Test Mode.
{
- $ns->tablerender(LAN_ERROR,LAN_SIGNUP_42);
+ echo e107::getEmail()->preview($eml);
+
+ e107::getMessage()->setTitle(LAN_SIGNUP_43,E_MESSAGE_SUCCESS)->addSuccess(LAN_SIGNUP_44." ".$row['user_email']." - ".LAN_SIGNUP_45);
+ $ns->tablerender(null,e107::getMessage()->render());
+
+ e107::getMessage()->setTitle(LAN_ERROR,E_MESSAGE_ERROR)->addError(LAN_SIGNUP_42);
+ $ns->tablerender(null, e107::getMessage()->render());
+
+ return true;
+ }
+
+ $result = e107::getEmail()->sendEmail($row['user_email'], $row['user_name'], $eml, false);
+
+ if(!$result)
+ {
+ e107::getMessage()->setTitle(LAN_SIGNUP_43,E_MESSAGE_ERROR)->addError(LAN_SIGNUP_42);
+ $ns->tablerender(null, e107::getMessage()->render());
$do_log['signup_result'] = LAN_SIGNUP_62;
}
else
{
- $ns->tablerender(LAN_SIGNUP_43,LAN_SIGNUP_44." ".$row['user_email']." - ".LAN_SIGNUP_45."
");
+ e107::getMessage()->setTitle(LAN_ERROR,E_MESSAGE_SUCCESS)->addSuccess(LAN_SIGNUP_44." ".$row['user_email']." - ".LAN_SIGNUP_45);
+ $ns->tablerender(null,e107::getMessage()->render());
$do_log['signup_result'] = LAN_SIGNUP_61;
}
+
// Now log this (log will ignore if its disabled)
+ $do_log['signup_action'] = LAN_SIGNUP_63;
e107::getLog()->user_audit(USER_AUDIT_PW_RES,$do_log,$row['user_id'],$row['user_name']);
@@ -292,7 +324,7 @@ class signup
private function sendEmailPreview()
{
$temp = array();
- $eml = render_email($temp, TRUE); // It ignores the data, anyway
+ $eml = $this->render_email($temp, TRUE); // It ignores the data, anyway
$mailer = e107::getEmail();
if(!$mailer->sendEmail(USEREMAIL, USERNAME, $eml, FALSE))
@@ -313,7 +345,7 @@ class signup
$tp = e107::getParser();
$temp = array();
- $eml = render_email($temp, true); // It ignores the data, anyway
+ $eml = $this->render_email($temp, true); // It ignores the data, anyway
$ns->tablerender('Email Preview', $tp->replaceConstants($eml['preview'],'abs'));
}
@@ -327,7 +359,7 @@ class signup
$allData['data']['user_email'] = "example@email.com";
$allData['data']['user_loginname'] = "user_loginname";
- $after_signup = render_after_signup(null);
+ $after_signup = $this->render_after_signup(null);
$ns->tablerender($after_signup['caption'], $after_signup['text']);
}
@@ -436,6 +468,81 @@ class signup
+ /**
+ * Create email to send to user who just registered.
+ * @param array $userInfo is the array of user-related DB variables
+ * @return array of data for mailer - field names directly compatible
+ */
+ function render_email($userInfo, $preview = FALSE)
+ {
+
+ if($preview == TRUE)
+ {
+ $userInfo['user_password'] = "test-password";
+ $userInfo['user_loginname'] = "test-loginname";
+ $userInfo['user_name'] = "test-username";
+ $userInfo['user_email'] = "test-username@email";
+ $userInfo['user_website'] = "www.test-site.com"; // This may not be defined
+ $userInfo['user_id'] = 0;
+ $userInfo['user_sess'] = "1234567890ABCDEFGHIJKLMNOP";
+ $userInfo['activation_url'] = 'http://whereever.to.activate.com/';
+ }
+
+ return e107::getSystemUser($userInfo['user_id'], false)->renderEmail('signup', $userInfo);
+
+
+ }
+
+
+
+ function render_after_signup($error_message='')
+ {
+
+ $ret = array();
+
+ if(!empty($error_message))
+ {
+ $ret['text'] = "
".$error_message."
"; // Just display the error message
+ $ret['caption'] = LAN_SIGNUP_99; // Problem Detected
+ return $ret;
+ }
+
+ global $pref, $allData, $adviseLoginName, $tp;
+
+ $srch = array("[sitename]","[email]","{NEWLOGINNAME}","{EMAIL}");
+ $repl = array(SITENAME,"
".$allData['data']['user_email']."",$allData['data']['user_loginname'],$allData['data']['user_email']);
+
+ $text = "
";
+
+ if (isset($pref['signup_text_after']) && (strlen($pref['signup_text_after']) > 2))
+ {
+ $text .= str_replace($srch, $repl, $tp->toHTML($pref['signup_text_after'], TRUE, 'parse_sc,defs'))."
";
+ // keep str_replace() outside of toHTML to allow for search/replace of dynamic terms within 'defs'.
+ }
+ else
+ {
+ $text .= ($pref['user_reg_veri'] == 2) ? LAN_SIGNUP_37 : str_replace($srch,$repl, LAN_SIGNUP_72);
+ $text .= "
".$adviseLoginName;
+ }
+
+ $text .= "
";
+
+ $caption_arr = array();
+ $caption_arr[0] = LAN_SIGNUP_73; // Thank you! (No Approval).
+ $caption_arr[1] = LAN_SIGNUP_98; // Confirm Email (Email Confirmation)
+ $caption_arr[2] = LAN_SIGNUP_100; // Approval Pending (Admin Approval)
+
+ $caption = $caption_arr[$pref['user_reg_veri']];
+
+ $ret['text'] = $text;
+ $ret['caption'] = $caption;
+
+ return $ret;
+
+ }
+
+
+
}
if(e_QUERY && e_QUERY != 'stage1')
@@ -931,76 +1038,4 @@ function headerjs()
}
-/**
- * Create email to send to user who just registered.
- * @param array $userInfo is the array of user-related DB variables
- * @return array of data for mailer - field names directly compatible
- */
-function render_email($userInfo, $preview = FALSE)
-{
-
- if($preview == TRUE)
- {
- $userInfo['user_password'] = "test-password";
- $userInfo['user_loginname'] = "test-loginname";
- $userInfo['user_name'] = "test-username";
- $userInfo['user_email'] = "test-username@email";
- $userInfo['user_website'] = "www.test-site.com"; // This may not be defined
- $userInfo['user_id'] = 0;
- $userInfo['user_sess'] = "1234567890ABCDEFGHIJKLMNOP";
- $userInfo['activation_url'] = 'http://whereever.to.activate.com/';
- }
-
- return e107::getSystemUser($userInfo['user_id'], false)->renderEmail('signup', $userInfo);
-
-
-}
-
-
-
-function render_after_signup($error_message='')
-{
-
- $ret = array();
-
- if(!empty($error_message))
- {
- $ret['text'] = "
".$error_message."
"; // Just display the error message
- $ret['caption'] = LAN_SIGNUP_99; // Problem Detected
- return $ret;
- }
-
- global $pref, $allData, $adviseLoginName, $tp;
-
- $srch = array("[sitename]","[email]","{NEWLOGINNAME}","{EMAIL}");
- $repl = array(SITENAME,"
".$allData['data']['user_email']."",$allData['data']['user_loginname'],$allData['data']['user_email']);
-
- $text = "
";
-
- if (isset($pref['signup_text_after']) && (strlen($pref['signup_text_after']) > 2))
- {
- $text .= str_replace($srch, $repl, $tp->toHTML($pref['signup_text_after'], TRUE, 'parse_sc,defs'))."
";
- // keep str_replace() outside of toHTML to allow for search/replace of dynamic terms within 'defs'.
- }
- else
- {
- $text .= ($pref['user_reg_veri'] == 2) ? LAN_SIGNUP_37 : str_replace($srch,$repl, LAN_SIGNUP_72);
- $text .= "
".$adviseLoginName;
- }
-
- $text .= "
";
-
- $caption_arr = array();
- $caption_arr[0] = LAN_SIGNUP_73; // Thank you! (No Approval).
- $caption_arr[1] = LAN_SIGNUP_98; // Confirm Email (Email Confirmation)
- $caption_arr[2] = LAN_SIGNUP_100; // Approval Pending (Admin Approval)
-
- $caption = $caption_arr[$pref['user_reg_veri']];
-
- $ret['text'] = $text;
- $ret['caption'] = $caption;
-
- return $ret;
-
-}
-?>
+?>
\ No newline at end of file