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); }
function work(Request $request) { if ($request['REQUEST']['form']) { if ($request['REQUEST']['agree']) { $request->redirect('ask'); } } else { return parent::work($request); } }
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); } }
function work(Request $request) { $user = Auth::get_user(); $request->mix(['REQUEST' => ['object' => $user]]); return parent::work($request); }
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); }