示例#1
0
 function work(Request $request)
 {
     $user = Auth::get_user();
     if ($user->is_exists()) {
         if (!$user->confirm->is_draft()) {
             //новый и еще неактивный
             $this->_result = 5;
         } else {
             //Есть такой активный пользователь
             $this->_result = 4;
         }
         //пользователя еще нет
     } else {
         if ($request['REQUEST']['form']) {
             //Присвоим email новому пользователю и проверим уникальность
             $user->email->value($request['REQUEST']['email']);
             if ($request['REQUEST']['call'] == 'check') {
                 if (!$user->check()) {
                     if ($user->errors()->email->value->duplicate) {
                         $this->_result = 2;
                     } else {
                         //Другая ошибка
                         $this->_result = 3;
                     }
                 } else {
                     //все корректно
                     $this->_result = 1;
                 }
                 $session['result'] = $this->_result;
                 Session::set('form', array($this->uri() . $this->getToken() => $session));
                 setcookie('token', $this->getToken(), 0, '/');
                 return $session;
             } else {
                 if (isset($request['COOKIE']['token']) && Session::is_exist('form')) {
                     $form = Session::get('form');
                     if (isset($form[$this->uri() . $request['COOKIE']['token']])) {
                         $form = $form[$this->uri() . $request['COOKIE']['token']];
                         Session::remove('form');
                     }
                     if (isset($form['result'])) {
                         $this->_result = $form['result'];
                     }
                 }
                 if ($this->_result == 1 && isset($user)) {
                     $user->password->value($request['REQUEST']['password']);
                     $user->title->value($request['REQUEST']['email']);
                     $user->confirm->proto("/vendor/boolive/basic/string");
                     $user->confirm->value(uniqid('', true));
                     Data::write($user);
                     //Теперь у нас есть такой пользователь
                     $this->_result = 5;
                     $this->mailSender->sendMail($to = $user->email->value(), $subject = 'Подтвержление регистрации на ' . $this->mailSender->domain->value(), $message = 'Здравствйте, вы зарегистрировались на ' . $this->mailSender->domain->value() . ' , для подтверждения актуальности электронного адреса, перейдите, пожалуйста по <a href="' . $this->mailSender->domain->value() . '/profile?confirm=' . $user->confirm->value() . '">ссылке</a>');
                     $request->redirect('profile?confirm=0');
                 }
             }
         }
     }
     return parent::work($request);
 }
示例#2
0
 function work(Request $request)
 {
     if ($request['REQUEST']['form']) {
         if ($request['REQUEST']['agree']) {
             $request->redirect('ask');
         }
     } else {
         return parent::work($request);
     }
 }
示例#3
0
文件: field.php 项目: boolive/forms
 function work(Request $request)
 {
     switch ($request['REQUEST']['call']) {
         case 'check':
             return $this->processCheck($request);
             break;
         case 'save':
             if ($this->processCheck($request) === true) {
                 return $this->process($request);
             } else {
                 return false;
             }
             break;
         default:
             return parent::work($request);
     }
 }
示例#4
0
文件: profile.php 项目: paulinep/auth
 function work(Request $request)
 {
     $user = Auth::get_user();
     $request->mix(['REQUEST' => ['object' => $user]]);
     return parent::work($request);
 }
示例#5
0
文件: confirm.php 项目: paulinep/auth
 function work(Request $request)
 {
     $v = array();
     if ($request['REQUEST']['confirm']) {
         if ($request['REQUEST']['sendAgain']) {
             $user = $this->searchUser($request['REQUEST']['confirm']);
             if ($user) {
                 $mail = $this->sendAgain($to = $user->email->value(), $subject = 'Подтвержление регистрации на ' . $this->mailSender->domain->value(), $message = 'Здравствйте, вы зарегистрировались на ' . $this->mailSender->domain->value() . ', для подтверждения актуальности электронного адреса, перейдите, пожалуйста по <a href="' . $this->mailSender->domain->value() . '/profile?confirm=' . $user->confirm->value() . '">ссылке</a>');
                 if ($mail) {
                     $v['message'] = "Письмо успешно отправлено";
                 }
             }
         }
         $result = $this->confirmUser($request['REQUEST']['confirm']);
         switch ($result) {
             case 1:
                 $v['message'] = "Успешное подтверждение адреса";
                 break;
             case 3:
                 $v['message'] = "Нет пользователя с таким уникальным ключом ";
         }
         return $this->show($v, $request);
     } else {
         //Если профиль передал этому виджету уже пользователя, а не пользователь пришел по ссылке
         if ($request['REQUEST']['object']) {
             $user = $request['REQUEST']['object'];
             if (!$user->confirm->is_draft()) {
                 $v['message'] = "Вам выслано письмо на адрес" . $user->email->value() . " перейдите по указанной в письме ссылке, чтобы подтвердить email, если письмо не пришло  нажмите <a href='profile?confirm=" . $user->confirm->value() . "&sendAgain=" . $user->email->value() . "'>сюда</a>";
                 return $this->show($v, $request);
             } else {
                 return false;
             }
         }
     }
     return parent::work($request);
 }