/** * @param struct_core_users $item */ private function sendActivationCode($item) { rad_instances::get('model_coremail_subscribes')->removeExpired(); $table = new model_core_table('subscribers_activationurl', 'coremail'); $table->setStates(array('sac_scrid' => $item->u_id, 'sac_type' => 2, 'email' => $item->u_email, 'date_confirmed' => 0)); $item_url = $table->getItem(); if ($item_url->sac_id) { if ($item_url->date_created + 300 > time()) { // wow, spam return; } $item_url->date_created = time(); $table->updateItem($item_url); } else { $item_url = new struct_coremail_subscribers_activationurl(); $item_url->sac_url = md5(rad_session::genereCode(31) . now() . $item->u_id); $item_url->sac_scrid = $item->u_id; $item_url->sac_type = 2; $item_url->email = $item->u_email; $item_url->date_created = time(); $table->insertItem($item_url); } rad_mailtemplate::send($item->u_email, $this->config('activate_email.template'), array('user' => $item, 'link' => $this->makeURL('alias=register&c=' . urlencode($item_url->sac_url)), 'clearpass' => ''), 'html'); }
/** * Register new user * @param struct_core_users $item */ public function register($item, $encode_password = true) { $item->u_active = 1; $item->u_subscribe_active = 1; $item->u_subscribe_langid = $this->getCurrentLangID(); $clearpass = empty($item->u_pass) ? rad_session::genereCode(6) : $item->u_pass; $item->u_pass = $encode_password ? rad_session::encodePassword($clearpass) : $clearpass; $this->insertItem($item); $item->u_id = $this->inserted_id(); rad_instances::get('model_coremail_subscribes')->removeExpired(); $item_url = new struct_coremail_subscribers_activationurl(); $item_url->sac_url = md5(rad_session::genereCode(31) . now() . $item->u_id); $item_url->sac_scrid = $item->u_id; $item_url->sac_type = 2; $item_url->email = $item->u_email; $item_url->date_created = time(); $item_url->save(); rad_mailtemplate::send($item->u_email, $this->config('registration.template'), array('user' => $item, 'link' => rad_input::makeURL('alias=register&c=' . urlencode($item_url->sac_url)), 'clearpass' => $clearpass), $this->config('mail_format', 'html')); }
protected function sendNewPassword() { $messages = array(); $actcode = $this->request('actcode'); $model = rad_instances::get('model_coremail_subscribes'); $item = $model->removeExpired()->setState('sac_url', $actcode)->setState('sac_type', 3)->getActivationUrl(); if (!empty($item->sac_id)) { $user = rad_instances::get('model_core_users')->setState('u_id', (int) $item->sac_scrid)->getItem(); if (!empty($user->u_id)) { $password = rad_session::genereCode(6); $user->u_pass = rad_session::encodePassword($password); if (!($error = $this->beforeSaveNewPassword($user, $password))) { $user->save(); $item->remove(); $this->_sendMail($user, 'newpass', array('clearpass' => $password)); $this->setVar('pass_sent', true); } else { $messages[] = $error; } } else { $messages[] = $this->lang('usernotfound.session.error'); } } else { $messages[] = $this->lang('wrongcode.session.error'); } if (count($messages)) { $this->setVar('message', implode('<br />', $messages)); } }