コード例 #1
0
 /**
  * @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');
 }
コード例 #2
0
ファイル: users.php プロジェクト: ValenokPC/tabernacms
 /**
  * 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'));
 }
コード例 #3
0
 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));
     }
 }