public function clean_account()␊ |
{␊ |
$account = mb_strtolower(trim($this->cleaned_data['account']));␊ |
$db =& Pluf::db();␊ |
$true = Pluf_DB_BooleanToDb(true, $db);␊ |
$sql = new Pluf_SQL('(email=%s OR login=%s) AND active='.$true,␊ |
$sql = new Pluf_SQL('email=%s OR login=%s',␊ |
array($account, $account));␊ |
$users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen()));␊ |
if ($users->count() == 0) {␊ |
throw new Pluf_Form_Invalid(__('Sorry, we cannot find a user with this email address or login. Feel free to try again.'));␊ |
}␊ |
$ok = false;␊ |
foreach ($users as $user) {␊ |
if ($user->active) {␊ |
$ok = true;␊ |
continue;␊ |
}␊ |
if (!$user->active and $user->first_name == '---') {␊ |
$ok = true;␊ |
continue;␊ |
}␊ |
$ok = false; // This ensures an all or nothing ok.␊ |
}␊ |
if (!$ok) {␊ |
throw new Pluf_Form_Invalid(__('Sorry, we cannot find a user with this email address or login. Feel free to try again.'));␊ |
}␊ |
return $account;␊ |
}␊ |
␊ |
|
$sql = new Pluf_SQL('email=%s OR login=%s',␊ |
array($account, $account));␊ |
$users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen()));␊ |
␊ |
$return_url = '';␊ |
foreach ($users as $user) {␊ |
$tmpl = new Pluf_Template('idf/user/passrecovery-email.txt');␊ |
$cr = new Pluf_Crypt(md5(Pluf::f('secret_key')));␊ |
$code = trim($cr->encrypt($user->email.':'.$user->id.':'.time()), ␊ |
'~');␊ |
$code = substr(md5(Pluf::f('secret_key').$code), 0, 2).$code;␊ |
$url = Pluf::f('url_base').Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecovery', array($code), array(), false);␊ |
$urlic = Pluf::f('url_base').Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecoveryInputCode', array(), array(), false);␊ |
$context = new Pluf_Template_Context(array('url' => Pluf_Template::markSafe($url),␊ |
'urlik' => Pluf_Template::markSafe($urlic),␊ |
'user' => Pluf_Template::markSafe($user),␊ |
'key' => Pluf_Template::markSafe($code)));␊ |
$email = new Pluf_Mail(Pluf::f('from_email'), $user->email,␊ |
__('Password Recovery - InDefero'));␊ |
$email->setReturnPath(Pluf::f('bounce_email', Pluf::f('from_email')));␊ |
$email->addTextMessage($tmpl->render($context));␊ |
$email->sendMail();␊ |
if ($user->active) {␊ |
$return_url = Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecoveryInputCode');␊ |
$tmpl = new Pluf_Template('idf/user/passrecovery-email.txt');␊ |
$cr = new Pluf_Crypt(md5(Pluf::f('secret_key')));␊ |
$code = trim($cr->encrypt($user->email.':'.$user->id.':'.time()), ␊ |
'~');␊ |
$code = substr(md5(Pluf::f('secret_key').$code), 0, 2).$code;␊ |
$url = Pluf::f('url_base').Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecovery', array($code), array(), false);␊ |
$urlic = Pluf::f('url_base').Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecoveryInputCode', array(), array(), false);␊ |
$context = new Pluf_Template_Context(␊ |
array('url' => Pluf_Template::markSafe($url),␊ |
'urlik' => Pluf_Template::markSafe($urlic),␊ |
'user' => Pluf_Template::markSafe($user),␊ |
'key' => Pluf_Template::markSafe($code)));␊ |
$email = new Pluf_Mail(Pluf::f('from_email'), $user->email,␊ |
__('Password Recovery - InDefero'));␊ |
$email->setReturnPath(Pluf::f('bounce_email', Pluf::f('from_email')));␊ |
$email->addTextMessage($tmpl->render($context));␊ |
$email->sendMail();␊ |
}␊ |
if (!$user->active and $user->first_name == '---') {␊ |
$return_url = Pluf_HTTP_URL_urlForView('IDF_Views::registerInputKey');␊ |
IDF_Form_Register::sendVerificationEmail($user);␊ |
}␊ |
}␊ |
return $return_url;␊ |
}␊ |
}␊ |