/** * Registration user */ public function actionRegistration() { if(Y::module()->isRegistrationClose) $this->redirect('close'); $model = new RegistrationForm; $profile=new Profile; $profile->regMode = true; // ajax validator if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form') Y::end(UActiveForm::validate(array($model,$profile))); if (Y::userId()) { $this->redirect(Y::module()->cabinetUrl); } else { if(isset($_POST['RegistrationForm'])) { $model->attributes=$_POST['RegistrationForm']; $profile->attributes= isset($_POST['Profile'])?$_POST['Profile']:array(); if($model->validate()&&$profile->validate()) { $soucePassword = $model->password; $model->activkey=UserModule::encrypting(microtime().$soucePassword); $model->password=UserModule::encrypting($soucePassword); $model->verifyPassword=UserModule::encrypting($model->verifyPassword); $model->createtime=time(); $model->lastvisit=((Y::module()->loginNotActiv||(Y::module()->activeAfterRegister&&Y::module()->sendActivationMail==false))&&Y::module()->autoLogin)?time():0; $model->superuser=0; $model->status=((Y::module()->activeAfterRegister)?User::STATUS_ACTIVE:User::STATUS_NOACTIVE); if ($model->save()) { $profile->user_id=$model->id; $profile->save(); if (Y::module()->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation',array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email,Users::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),Users::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url))); } if ((Y::module()->loginNotActiv||(Y::module()->activeAfterRegister&&Y::module()->sendActivationMail==false))&&Y::module()->autoLogin) { $identity=new UserIdentity($model->username,$soucePassword); $identity->authenticate(); Y::user()->login($identity,0); $this->redirect(Y::module()->returnUrl); } else { if (!Y::module()->activeAfterRegister&&!Y::module()->sendActivationMail) { Y::flash('/user/registration',Users::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif(Y::module()->activeAfterRegister&&Y::module()->sendActivationMail==false) { Y::flash('/user/registration',Users::t("Thank you for your registration. Please {{login}}.",array('{{login}}'=>CHtml::link(Users::t('Login'),Y::module()->loginUrl)))); } elseif(Y::module()->loginNotActiv) { Y::flash('/user/registration',Users::t("Thank you for your registration. Please check your email or login.")); } else { Y::flash('/user/registration',Users::t("Thank you for your registration. Please check your email.")); } $this->refresh(); } } } else $profile->validate(); } $this->render('/user/registration',array('model'=>$model,'profile'=>$profile,'lang'=>Yii::app()->language)); } }
public function createUser(RegistrationForm $form) { $transaction = Yii::app()->db->beginTransaction(); try { $user = new User('registration'); $profile = new Profile('registration'); $data = $form->getAttributes(); // Устанавливаем атрибуты пользователя $user->setAttributes(array('email' => $data['email'])); // Генерируем для пользователя новый пароль $password = $this->hasher->generateRandomPassword(); $user->hash = $this->hasher->hashPassword($password); // Устанавливаем роль пользователя $user->role = User::USER_ROLE; $profile->setAttributes(array('name' => $data['name'], 'gender' => $data['gender'], 'birth_date' => $data['date'], 'birth_time' => $form->getTime(), 'city_id' => $data['city_id'])); $profile->subscriber = Profile::SUBSCRIBER_YES; if ($user->save() && ($token = $this->tokenStorage->createAccountActivationToken($user)) !== false) { $profile->user_id = $user->id; if (!$profile->save()) { throw new CException(Yii::t('UserModule.user', 'Error creating profile!')); } $event = new CEvent($this, array('user' => $user, 'password' => $password, 'token' => $token, 'programId' => $data['programId'], 'subscriptionType' => $data['subscriptionType'])); $this->onSuccessRegistration($event); Yii::log(Yii::t('UserModule.user', 'Account {nick_name} was created', array('{nick_name}' => $user->email)), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->commit(); return $user; } throw new CException(Yii::t('UserModule.user', 'Error creating account!')); } catch (Exception $e) { Yii::log(Yii::t('UserModule.user', 'Error {error} account creating!', array('{error}' => $e->__toString())), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->rollback(); return false; } }
public function registrationAction() { // Only for administrators if (!$this->getUser() || !$this->getUser()->isAdmin()) { // Redirects $this->_helper->redirector->gotoRoute(array('controller' => 'admin', 'action' => 'login'), 'default', true); return; } $this->view->title = 'Registrace administrátora'; $form = new RegistrationForm(); if ($this->_request->isPost()) { if ($form->isValid($this->_request->getPost())) { $formValues = $form->getValues(); if ($formValues["heslo"] != $formValues["heslo2"]) { //todo barevne zvyrazeni chybnych poli + kontrola formatu //neni stejne heslo } else { //pokud už uživatel není v databázi $formValues["heslo"] = sha1("interview" . $formValues["heslo"]); $user = My_Model::get('Users')->createRow(); $user->updateFromArray($formValues); $this->_helper->redirector->gotoRoute(array('controller' => 'candidate', 'action' => 'index'), 'default', true); } } } $this->view->registrationform = $form; }
/** * @throws CHttpException */ public function run() { if (false === Yii::app()->getUser()->getIsGuest()) { $this->getController()->redirect(\yupe\helpers\Url::redirectUrl(Yii::app()->getModule('user')->loginSuccess)); } $module = Yii::app()->getModule('user'); if ($module->registrationDisabled) { throw new CHttpException(404, Yii::t('UserModule.user', 'requested page was not found!')); } $form = new RegistrationForm(); if (($data = Yii::app()->getRequest()->getPost('RegistrationForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { if ($user = Yii::app()->userManager->createUser($form)) { if (!$module->emailAccountVerification) { $this->autoLoginUser($form); } Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'Account was created! Check your email!')); $this->getController()->redirect(Url::redirectUrl($module->registrationSuccess)); } Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'Error creating account!')); } } $this->getController()->render('registration', ['model' => $form, 'module' => $module]); }
public function createUser(RegistrationForm $form) { $transaction = Yii::app()->getDb()->beginTransaction(); try { $user = new User(); $userData = $form->getAttributes(); foreach (['cPassword', 'password', 'verifyCode', 'disableCaptcha'] as $attribute) { unset($userData[$attribute]); } $user->setAttributes($userData); $user->setAttribute('hash', $this->hasher->hashPassword($form->password)); if ($user->save() && ($token = $this->tokenStorage->createAccountActivationToken($user)) !== false) { Yii::app()->eventManager->fire(UserEvents::SUCCESS_REGISTRATION, new UserRegistrationEvent($form, $user, $token)); Yii::log(Yii::t('UserModule.user', 'Account {nick_name} was created', ['{nick_name}' => $user->nick_name]), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->commit(); return $user; } throw new CException(Yii::t('UserModule.user', 'Error creating account!')); } catch (Exception $e) { Yii::log(Yii::t('UserModule.user', 'Error {error} account creating!', ['{error}' => $e->__toString()]), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->rollback(); Yii::app()->eventManager->fire(UserEvents::FAILURE_REGISTRATION, new UserRegistrationEvent($form, $user)); return false; } }
public function createUser(RegistrationForm $form) { $transaction = Yii::app()->db->beginTransaction(); try { $user = new User(); $data = $form->getAttributes(); unset($data['cPassword'], $data['verifyCode']); $user->setAttributes($data); $user->hash = $this->hasher->hashPassword($form->password); if ($user->save() && ($token = $this->tokenStorage->createAccountActivationToken($user)) !== false) { Yii::app()->eventManager->fire(UserEvents::SUCCESS_REGISTRATION, new UserRegistrationEvent($form, $user)); Yii::log(Yii::t('UserModule.user', 'Account {nick_name} was created', array('{nick_name}' => $user->nick_name)), CLogger::LEVEL_INFO, UserModule::$logCategory); //@TODO Отправка почты при создании пользователя Yii::app()->notify->send($user, Yii::t('UserModule.user', 'Registration on {site}', array('{site}' => Yii::app()->getModule('yupe')->siteName)), '//user/email/needAccountActivationEmail', array('token' => $token)); $transaction->commit(); return $user; } throw new CException(Yii::t('UserModule.user', 'Error creating account!')); } catch (Exception $e) { Yii::log(Yii::t('UserModule.user', 'Error {error} account creating!', array('{error}' => $e->__toString())), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->rollback(); Yii::app()->eventManager->fire(UserEvents::FAILURE_REGISTRATION, new UserRegistrationEvent($form, $user)); return false; } }
public function run() { if (Yii::app()->user->isAuthenticated()) { $this->controller->redirect(Yii::app()->user->returnUrl); } $module = Yii::app()->getModule('user'); if ($module->registrationDisabled) { throw new CHttpException(404, Yii::t('UserModule.user', 'requested page was not found!')); } $form = new RegistrationForm(); $event = new CModelEvent($this->controller, array("registrationForm" => $form)); $module->onBeginRegistration($event); if (($data = Yii::app()->getRequest()->getPost('RegistrationForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { if ($user = Yii::app()->userManager->createUser($form)) { Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'Account was created! Check your email!')); $module->onSuccessRegistration(new CModelEvent($this->controller, array("user" => $user))); $this->controller->redirect(array($module->registrationSuccess)); } $module->onErrorRegistration(new CModelEvent($this->controller, array("registrationForm" => $form))); Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'Error creating account!')); } $module->onErrorRegistration(new CModelEvent($this->controller, array("registrationForm" => $form))); } $this->controller->render('registration', array('model' => $form, 'module' => $module)); }
public function createUser(RegistrationForm $form, Profile $profile) { $transaction = Yii::app()->db->beginTransaction(); try { $user = new User('registration'); $data = $form->getAttributes(); unset($data['cPassword'], $data['verifyCode']); $user->setAttributes($data); $user->hash = $this->hasher->hashPassword($form->password); $user->role = User::USER_ROLE; if ($user->save() && ($token = $this->tokenStorage->createAccountActivationToken($user)) !== false) { $profile->user_id = $user->id; if (!$profile->save()) { throw new CException(Yii::t('UserModule.user', 'Error creating profile!')); } Yii::log(Yii::t('UserModule.user', 'Account {nick_name} was created', array('{nick_name}' => $user->email)), CLogger::LEVEL_INFO, UserModule::$logCategory); //@TODO Yii::app()->notify->send($user, Yii::t('UserModule.user', 'Registration on {site}', array('{site}' => Yii::app()->getModule('yupe')->siteName)), '//user/email/needAccountActivationEmail', array('token' => $token)); Yii::app()->notify->sendAdmin('Новый пользователь на сайте ' . CHtml::encode(Yii::app()->getModule('yupe')->siteName), '//user/email/newUserEmail', array('user' => $user)); $transaction->commit(); return $user; } throw new CException(Yii::t('UserModule.user', 'Error creating account!')); } catch (Exception $e) { Yii::log(Yii::t('UserModule.user', 'Error {error} account creating!', array('{error}' => $e->__toString())), CLogger::LEVEL_INFO, UserModule::$logCategory); $transaction->rollback(); return false; } }
/** * Registration user */ public function actionRegistration() { //var_dump("test");exit; $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; //var_dump($model);exit; // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } //var_dump($_POST['ajax']);exit; if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { //var_dump($_POST['RegistrationForm']);exit; $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); if ($model->validate() && $profile->validate()) { $soucePassword = $model->password; $model->activkey = AdminModule::encrypting(microtime() . $model->password); $model->password = AdminModule::encrypting($model->password); $model->verifyPassword = AdminModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; if ($model->save()) { $profile->user_id = $model->id; $profile->save(); if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/admin/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); AdminModule::sendMail($model->email, AdminModule::t("Anda registrasi dari {site_name}", array('{site_name}' => Yii::app()->name)), AdminModule::t("Silahkan Aktifkan akun anda melalui link {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', AdminModule::t("Terima kasih anda sudah mendaftar. Hubungi Admin untuk mengaktifkan akun anda.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', AdminModule::t("Terima kasih anda sudah mendaftar. Silahkan {{login}}.", array('{{login}}' => CHtml::link(AdminModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', AdminModule::t("Terima kasih anda sudah mendaftar. Silahkan cek email anda atau login.")); } else { Yii::app()->user->setFlash('registration', AdminModule::t("Terima kasih anda sudah mendaftar. Silahkan cek email anda.")); } $this->refresh(); } } } else { $profile->validate(); } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile)); } }
/** * Registration user */ public function actionRegistration() { Profile::$regMode = true; $model = new RegistrationForm(); $profile = new Profile(); // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); if ($model->validate() && $profile->validate()) { $sourcePassword = $model->password; //$model->eid = uniqid(); $model->activkey=UserModule::encrypting(microtime().$model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; if ($model->save()) { $profile->user_id = $model->id; $profile->save(); if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("Your registration with {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("To activate your account, please visit {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $sourcePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { // Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login.")); Yii::app()->user->setFlash('pre_activation', 'test'); $this->redirect(Yii::app()->baseUrl . '/site/page?view=tutorial'); } else { // Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email.")); Yii::app()->user->setFlash('pre_activation', 'test'); $this->redirect(Yii::app()->baseUrl . '/site/page?view=tutorial'); } $this->refresh(); } } } else { $profile->validate(); } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile)); } }
/** * Registration user */ public function actionRegistration() { $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = $_POST['Profile']; if ($model->validate() && $profile->validate()) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->createtime = time(); $model->lastvisit = (Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin ? time() : 0; $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; if ($model->save()) { $profile->user_id = $model->id; $profile->save(); // assign user the 'Authenticated' role for Rights module $authenticatedName = Rights::module()->authenticatedName; Rights::assign($authenticatedName, $model->id); // end of change if (Yii::app()->controller->module->sendActivationMail) { $activation_url = 'http://' . $_SERVER['HTTP_HOST'] . $this->createUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("You have registered at {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("Please activate your account. Go to {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for registering. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for registering. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for registering. Please check your email or login.")); } else { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for registering. Please check your email.")); } $this->refresh(); } } } } $this->render('/user/registration', array('form' => $model, 'profile' => $profile)); } }
public function actionRegistration() { $model = new RegistrationForm(); if (!empty($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; if ($model->validate()) { if (User::model()->exists('email=:email and status!=:status', array(':email' => $model->email, ':status' => L::r_item('userStatus', 'not_active')))) { $model->addError('email', 'Пользователь с таким почтовым адресом уже зарегестрирован в нашей системе.'); } else { // регистрация пошла, отпраляю почту и создаю пользователя со статусом "не активен" Yii::import('ext.yii-mail.*'); $message = new YiiMailMessage(); $message->view = 'email_confirmation'; $message->setBody(array('hash' => sha1($model->email . Yii::app()->params['salt']), 'email' => $model->email, 'date' => date('YmdHis')), 'text/html'); $message->subject = Yii::app()->name . ' - Подтверждение почтового адреса/E-mail confirmation'; $message->addTo($model->email); $message->from = Yii::app()->params['registrationEmail']; if (Yii::app()->mail->send($message)) { if (!($user = User::model()->find('email=:email', array(':email' => $model->email)))) { $user = new User(); } else { # надо удалить потеряного клиента Client::model()->deleteByPk($user->username); } $user->username = $model->username; $user->password = $model->password; $user->password_confirm = $model->password_confirm; $user->created = date('Y-m-d H:i:s'); $user->email = $model->email; $user->city = $model->city; $user->name = $model->name; $user->status = L::r_item('userStatus', 'not_active'); if ($user->save()) { if (!($client = Client::model()->find('username=:username', array(':username' => $user->username)))) { $client = new Client(); } # Добавляю клиента $client->attributes = $model->attributes; $client->card = Client::model()->find(array('select' => 'max(card) as maxCardNumber'))->maxCardNumber + 1; $client->save(); Yii::app()->user->setFlash('registration', 'На указанный Вами e-mail было отправленно письмо с кодом подтверждения. Введите его.'); $this->redirect(array('users/confirmation')); } } else { $model->addError('email', 'Мы не можем отправить почту на указаный Вами адрес.'); } } } } $model->password = null; $model->password_confirm = null; $this->render('registration', array('registration_form' => $model)); }
public function actionRegistration() { $model = new RegistrationForm(); if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; if ($model->register()) { Yii::app()->user->setFlash('success', "\n Заявка на регистрацию успешно отправлена.\n <br/>\n После проверки введённых данных, на почту {$model->email} прийдёт уведомление с инструкцией по дальнейшим действиям.\n "); $this->redirect('registration'); } } $this->render('registration', array('model' => $model)); }
/** * Registration user */ public function actionRegistration() { $this->seo(Yii::t('admin', 'Registration')); $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); if ($model->validate() && $profile->validate()) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; //Стартуем транзакции чтобы убедиться в целостности данных $transaction = Yii::app()->db->beginTransaction(); try { //Сохраняем все данные $model->save(false); $profile->user_id = $model->id; $profile->save(); $roles = $this->setUserRoles($model->id); $roles->save(); $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); $send = Email::sendUserNoReply($model->username, $model->email, Yii::t('admin', 'Confirm registration'), UserModule::t("Please activate you account go to {activation_url}", array('{activation_url}' => $activation_url))); if ($send) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email.")); } else { Yii::app()->user->setFlash('registration', Yii::t('admin', 'Upon registration error occurred. Please re-register or contact us.')); } if ($transaction->commit()) { } $this->refresh(); } catch (Exception $e) { $transaction->rollback(); } } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile)); } }
/** * Validate user registration information and register new user. */ function registerUser($args, &$request) { $this->validate(); $this->setupTemplate(true); import('classes.user.form.RegistrationForm'); //%CBP% get registration criteria, if defined $journal =& Request::getJournal(); $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $templateMgr =& TemplateManager::getManager(); $registrationCriteria = $CBPPlatformDao->getRegistrationCriteria($journal->getId()); $templateMgr->assign('registrationCriteria', $registrationCriteria); if ($registrationCriteria != null) { if (Request::getUserVar('registrationCriteria') == 1) { $reason = null; $templateMgr->assign('registrationCriteriaChecked', 1); } else { $reason = 1; $templateMgr->assign('registrationCriteriaReqd', 1); } } if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor $regForm = new RegistrationForm(); } else { $regForm =& new RegistrationForm(); } $regForm->readInputData(); if ($regForm->validate()) { $regForm->execute(); if (Config::getVar('email', 'require_validation')) { // Send them home; they need to deal with the // registration email. Request::redirect(null, 'index'); } $reason = null; if (Config::getVar('security', 'implicit_auth')) { Validation::login('', '', $reason); } else { Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); } if ($reason !== null) { $this->setupTemplate(true); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', Request::url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->display('common/error.tpl'); } if ($source = Request::getUserVar('source')) { Request::redirectUrl($source); } else { Request::redirect(null, 'login'); } } else { $regForm->display(); } }
public function actionRegistration() { $model = new RegistrationForm(); $profile = new Profile(); if (($uid = Yii::app()->user->id) === true) { $this->redirect(Yii::app()->homeUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; //$profile->attributes=$_POST['Profile']; if ($model->validate() && $profile->validate()) { $sourcePassword = $model->password; $model->password = Yii::app()->user->encrypt($model->password); $model->verifyPassword = Yii::app()->user->encrypt($model->verifyPassword); $model->activkey = Yii::app()->user->encrypt(microtime() . $model->password); $model->createtime = time(); $model->lastvisit = Yii::app()->user->autoLogin && Yii::app()->user->loginNotActive ? time() : 0; $model->superuser = 0; $model->status = 0; if ($model->save()) { $profile->user_id = $model->id; $profile->save(); $headers = "From: " . Yii::app()->params['adminEmail'] . "\r\nReply-To: " . Yii::app()->params['adminEmail']; $activation_url = 'http://' . $_SERVER['HTTP_HOST'] . $this->createUrl('user/activation', array("activkey" => $model->activkey, "email" => $model->email)); mail($model->email, "You registered from " . Yii::app()->name, "Please activate your account go to {$activation_url}.", $headers); if (Yii::app()->user->loginNotActive) { if (Yii::app()->user->autoLogin) { $identity = new UserIdentity($model->username, $sourcePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->user->returnUrl); } else { Yii::app()->user->setFlash('registration', Yii::t("user", "Thank you for your registration. Please check your email or login.")); $this->refresh(); } } else { Yii::app()->user->setFlash('registration', Yii::t("user", "Thank you for your registration. Please check your email.")); $this->refresh(); } } } } $this->render('/user/registration', array('form' => $model, 'profile' => $profile)); } }
/** * Validate user registration information and register new user. */ function registerUser($args, &$request) { $this->validate($request); import('classes.user.form.RegistrationForm'); $regForm = new RegistrationForm(); $regForm->readInputData(); if ($regForm->validate()) { $regForm->execute(); if (Config::getVar('email', 'require_validation')) { // Send them home; they need to deal with the // registration email. $request->redirect(null, 'index'); } $reason = null; Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); if ($reason !== null) { $this->setupTemplate($request, true); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', $request->url('login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->display('common/error.tpl'); } if ($source = $request->getUserVar('source')) { $request->redirectUrl($source); } else { $request->redirect('login'); } } else { $this->setupTemplate($request, true); $regForm->display(); } }
/** * Registration user */ public function actionRegistration() { $profile = new User(); $model = new RegistrationForm(); // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo CActiveForm::validate(array($model, $profile), array('email', 'username')); Yii::app()->end(); } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm']) && isset($_POST['User'])) { $profile->attributes = $_POST['User']; $model->attributes = $_POST['RegistrationForm']; if ($model->validate() && $profile->validate()) { $profile->role = User::ROLE_MEMBER; if ($profile->save()) { $model->user_id = $profile->user_id; $soucePassword = $model->password; $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->save(); /* * if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation',array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url))); } */ $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->loginUrl); /* * if ((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) { $identity=new UserIdentity($model->username,$soucePassword); $identity->authenticate(); Yii::app()->user->login($identity,0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister&&!Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false) { Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please {{login}}.",array('{{login}}'=>CHtml::link(UserModule::t('Login'),Yii::app()->controller->module->loginUrl)))); } elseif(Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login.")); } else { Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email.")); } $this->refresh(); } */ } } else { $profile->validate(); $model->validate(); } } $this->render('/user/registration', array('login' => $model, 'model' => $profile)); } }
/** * Страница авторизации/регистрации */ public function actionLogin() { $model = new UserLogin(); $registration_form = new RegistrationForm(); $user_recovery_form = new UserRecoveryForm(); // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') { echo CActiveForm::validate($model); Yii::app()->end(); } if (isset($_POST['UserLogin'])) { $model->attributes = $_POST['UserLogin']; if ($model->validate()) { //print_r($model->attributes);die; $this->lastViset(); $this->redirect(array('my/index')); } } if (isset($_POST['RegistrationForm'])) { $registration_form->attributes = $_POST['RegistrationForm']; $registration_form->username = $registration_form->email; if ($registration_form->validate()) { $soucePassword = $registration_form->password; $registration_form->activkey = UserModule::encrypting(microtime() . $registration_form->password); $registration_form->password = UserModule::encrypting($registration_form->password); $registration_form->verifyPassword = UserModule::encrypting($registration_form->verifyPassword); $registration_form->superuser = 0; $registration_form->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; if ($registration_form->save()) { $activation_url = $this->createAbsoluteUrl('site/activation', array("activkey" => $registration_form->activkey, "email" => $registration_form->email)); //UserModule::sendMail($registration_form->email,UserModule::t("Вы зарегистрировались на сайте {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Для активации вашего аккаунта, перейдите пожалуста по ссылке {activation_url}",array('{activation_url}'=>$activation_url))); UserModule::sendMail($registration_form->email, UserModule::t("Вы зарегистрировались на сайте {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("Здравствуйте. Благодарим Вас за регистрацию на сервисе сохранения закладок " . Yii::app()->name . ". Для активации аккаунта перейдите по ссылке.<br> {activation_url}", array('{activation_url}' => $activation_url))); return $this->redirect(array('site/regsuccess')); } } } if (isset($_POST['UserRecoveryForm'])) { $user_recovery_form->attributes = $_POST['UserRecoveryForm']; if ($user_recovery_form->validate()) { $user = User::model()->notsafe()->findbyPk($user_recovery_form->user_id); //$activation_url = 'http://' . $_SERVER['HTTP_HOST'].$this->createUrl(implode(array("/user/recovery")),array("activkey" => $user->activkey, "email" => $user->email)); $activation_url = $this->createAbsoluteUrl('site/recovery', array("activkey" => $user->activkey, "email" => $user->email)); $subject = UserModule::t("Запрос на восстановление пароля на сайте {site_name}", array('{site_name}' => Yii::app()->name)); $message = UserModule::t("Вы запросили восстановление пароля на сайте {site_name}. Для получения нового пароля, перейдите по ссылке <br> {activation_url}.", array('{site_name}' => Yii::app()->name, '{activation_url}' => $activation_url)); UserModule::sendMail($user->email, $subject, $message); Yii::app()->user->setFlash('recoveryMessage', UserModule::t("Ссылка на восстановление пароля<br>отправлена на вашу почту.")); $this->refresh(); } } $this->render('login', array('model' => $model, 'registration_form' => $registration_form, 'user_recovery_form' => $user_recovery_form)); }
public function run() { $module = Yii::app()->getModule('user'); if ($module->registrationDisabled) { throw new CHttpException(404, Yii::t('UserModule.user', 'requested page was not found!')); } $form = new RegistrationForm('default'); if (($data = Yii::app()->getRequest()->getPost('RegistrationForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { if ($user = Yii::app()->userManager->createUser($form)) { $paramModel = Yii::app()->request->getParam('model', null); $paramExternalId = Yii::app()->request->getParam('external_id', null); if (!is_null($paramModel) && !is_null($paramExternalId)) { $Response = Response::createResponseByOtherModelData($paramModel, $paramExternalId); if (!is_null($Response)) { if ($Response->save()) { $this->getController()->render('successRegister', ['model' => $paramModel, 'external_id' => $paramExternalId, 'response_id' => $Response->primaryKey]); Yii::app()->end(); } else { Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('default', 'Ошибка создания заказа, errmsgcreate', ['errmsgcreate' => print_r($Response->getErrors(), true)])); } } else { Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('default', 'Ошибка создания заказа, errmsgcreate', ['errmsgcreate' => "Can't create Response by createResponseByOtherModelData"])); } } else { // Yii::app()->authenticationManager->logout(Yii::app()->getUser()); Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'Аккаунт создан! По указаному адресу email Вам отправлена сслыка для активации Вашего "Личного кабинета"!')); Yii::app()->session['success_reg'] = true; $this->getController()->redirect(Url::redirectUrl('/cabinet')); } } Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'Не удалось зарегистрировать!')); } } $form->prefphone = '+7'; $this->getController()->render('registration', ['model' => $form, 'module' => $module]); }
/** * @return RegistrationForm */ public function Form() { /** ========================================= * @var Member $member ===========================================*/ /** If the user is logged in, redirect to the Homepage with an alert message prompting logout. */ if ($member = Member::currentUser()) { return '<div class="alert--warning">You\'re currently logged in as <strong>' . $member->Email . '</strong>. To register as a different user <a href="' . Director::absoluteBaseURL() . 'Security/logout?BackURL=' . $this->Link() . '">log out.</a></div>'; } else { $form = RegistrationForm::create($this, 'Form'); $this->extend('updateRegistrationForm', $form); return $form; } }
public function createUser(RegistrationForm $form) { $transaction = Yii::app()->db->beginTransaction(); try { $user = new User(); $data = $form->getAttributes(); $user->setAttributes($data, false); $user->password = $this->hasher->hashPassword($form->password); $user->session = Yii::app()->session->sessionID; $user->md5 = md5(time()); $user->registerDate = date('Y-m-d', time()); if ($user->save()) { if ($this->stateStorage->create($user, $form)) { $transaction->commit(); return $user; } } throw new CException(Yii::t('UserModule.user', 'Error creating account!')); } catch (Exception $e) { $transaction->rollback(); return false; } }
/** * Validate user registration information and register new user. * @param $args array * @param $request PKPRequest */ function registerUser($args, $request) { $this->validate($request); $this->setupTemplate($request); import('lib.pkp.classes.user.form.RegistrationForm'); $regForm = new RegistrationForm($request->getSite()); $regForm->readInputData(); if (!$regForm->validate()) { return $regForm->display($request); } $regForm->execute($request); // Inform the user of the email validation process. This must be run // before the disabled account check to ensure new users don't see the // disabled account message. if (Config::getVar('email', 'require_validation')) { $this->setupTemplate($request); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('requireValidation', true); $templateMgr->assign('pageTitle', 'user.login.registrationPendingValidation'); $templateMgr->assign('messageTranslated', __('user.login.accountNotValidated', array('email' => $regForm->getData('email')))); return $templateMgr->fetch('frontend/pages/message.tpl'); } $reason = null; if (Config::getVar('security', 'implicit_auth')) { Validation::login('', '', $reason); } else { Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); } if ($reason !== null) { $this->setupTemplate($request); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', $request->url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->fetch('frontend/pages/error.tpl'); } if ($source = $request->getUserVar('source')) { return $request->redirectUrlJson($source); } else { $request->redirect(null, 'user', 'registrationComplete'); } }
public function run() { $form = new RegistrationForm(); if (Yii::app()->request->isPostRequest && !empty($_POST['RegistrationForm'])) { $module = Yii::app()->getModule('user'); $form->setAttributes($_POST['RegistrationForm']); // проверка по "черным спискам" // проверить на email if (!$module->isAllowedEmail($form->email)) { // перенаправить на экшн для фиксации невалидных email-адресов $this->controller->redirect(array(Yii::app()->getModule('user')->invalidEmailAction)); } if (!$module->isAllowedIp(Yii::app()->request->userHostAddress)) { // перенаправить на экшн для фиксации невалидных ip-адресов $this->controller->redirect(array(Yii::app()->getModule('user')->invalidIpAction)); } if ($form->validate()) { // если требуется активация по email if ($module->emailAccountVerification) { $registration = new Registration(); // скопируем данные формы $registration->setAttributes($form->getAttributes()); if ($registration->save()) { // отправка email с просьбой активировать аккаунт $mailBody = $this->controller->renderPartial('application.modules.user.views.email.needAccountActivationEmail', array('model' => $registration), true); Yii::app()->mail->send($module->notifyEmailFrom, $registration->email, Yii::t('user', 'Регистрация на сайте {site} !', array('{site}' => Yii::app()->name)), $mailBody); // запись в лог о создании учетной записи Yii::log(Yii::t('user', "Создана учетная запись {nick_name}!", array('{nick_name}' => $registration->nick_name)), CLogger::LEVEL_INFO, UserModule::$logCategory); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('user', 'Учетная запись создана! Инструкции по активации аккаунта отправлены Вам на email!')); $this->controller->refresh(); } else { $form->addErrors($registration->getErrors()); Yii::log(Yii::t('user', "Ошибка при создании учетной записи!"), CLogger::LEVEL_ERROR, UserModule::$logCategory); } } else { // если активации не требуется - сразу создаем аккаунт $user = new User(); $user->createAccount($form->nick_name, $form->email, $form->password); if ($user && !$user->hasErrors()) { Yii::log(Yii::t('user', "Создана учетная запись {nick_name} без активации!", array('{nick_name}' => $user->nick_name)), CLogger::LEVEL_INFO, UserModule::$logCategory); // отправить email с сообщением о успешной регистрации $emailBody = $this->controller->renderPartial('application.modules.user.views.email.accountCreatedEmail', array('model' => $user), true); Yii::app()->mail->send($module->notifyEmailFrom, $user->email, Yii::t('user', 'Регистрация на сайте {site} !', array('{site}' => Yii::app()->name)), $emailBody); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('user', 'Учетная запись создана! Пожалуйста, авторизуйтесь!')); $this->controller->redirect(array('/user/account/login/')); } else { $form->addErrors($user->getErrors()); Yii::log(Yii::t('user', "Ошибка при создании учетной записи без активации!"), CLogger::LEVEL_ERROR, UserModule::$logCategory); } } } } $this->controller->render('registration', array('model' => $form)); }
/** * Validate user registration information and register new user. * @param $args array * @param $request PKPRequest */ function registerUser($args, &$request) { $this->validate($request); $this->setupTemplate($request, true); import('classes.user.form.RegistrationForm'); if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor $regForm = new RegistrationForm(); } else { $regForm =& new RegistrationForm(); } $regForm->readInputData(); if ($regForm->validate()) { $regForm->execute(); $reason = null; if (Config::getVar('security', 'implicit_auth')) { Validation::login('', '', $reason); } else { Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); } if (!Validation::isLoggedIn()) { if (Config::getVar('email', 'require_validation')) { // Inform the user that they need to deal with the // registration email. $this->setupTemplate($request, true); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('pageTitle', 'user.register.emailValidation'); $templateMgr->assign('errorMsg', 'user.register.emailValidationDescription'); $templateMgr->assign('backLink', $request->url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->display('common/error.tpl'); } } if ($reason !== null) { $this->setupTemplate($request, true); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', $request->url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->display('common/error.tpl'); } if ($source = $request->getUserVar('source')) { $request->redirectUrl($source); } else { $request->redirect(null, 'login'); } } else { $regForm->display(); } }
/** * Validate user registration information and register new user. * @param $args array * @param $request PKPRequest */ function registerUser($args, $request) { $this->validate($request); $this->setupTemplate($request); import('lib.pkp.classes.user.form.RegistrationForm'); $regForm = new RegistrationForm($request->getSite()); $regForm->readInputData(); if (!$regForm->validate()) { return new JSONMessage(true, $regForm->fetch($request)); } $regForm->execute($request); if (Config::getVar('email', 'require_validation')) { // Send them home; they need to deal with the // registration email. return $request->redirectUrlJson($request->url(null, 'index')); } $reason = null; if (Config::getVar('security', 'implicit_auth')) { Validation::login('', '', $reason); } else { Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); } if ($reason !== null) { $this->setupTemplate($request); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', $request->url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->fetchJson('frontend/pages/error.tpl'); } if ($source = $request->getUserVar('source')) { return $request->redirectUrlJson($source); } return $request->redirectUrlJson($request->getRouter()->getHomeUrl($request)); }
/** * Registration user */ public function actionRegistration() { $this->redirect(Yii::app()->controller->module->returnUrl); Profile::$regMode = true; $model = new RegistrationForm(); $profile = new Profile(); // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $RegistrationForm = $_POST['RegistrationForm']; $model->attributes = $RegistrationForm; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); if ($model->validate() && $profile->validate()) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; $model->create_at = date('Y-m-d H:i:s'); //添加推荐人ID $model->recommend = $RegistrationForm['recommend'] != "用户名/手机号" ? $RegistrationForm['recommend'] : ""; if ($RegistrationForm['recommend'] && $RegistrationForm['recommend'] != "用户名/手机号") { $recommend = $RegistrationForm['recommend']; if (is_numeric($recommend)) { $recomID = $this->getRecommendByPhone($recommend); } else { $recomID = $this->getRecommendByName($recommend); } $model->recomID = $recomID; } if ($model->save()) { $profile->user_id = $model->id; $profile->save(); if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); //UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email or login.")); } else { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email.")); } $this->refresh(); } } } else { $profile->validate(); } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile)); } }
function __autoload($className) { $file = "classes" . DIRECTORY_SEPARATOR . "{$className}.php"; require_once $file; } //параметры для подключения к базе данных $db_host = 'localhost'; $db_user = '******'; $db_password = ''; $db_name = 'regform'; $msg = ''; //обьект базы данных $db = new DB($db_host, $db_user, $db_password, $db_name); //обьект формы $form = new RegistrationForm($_POST); if ($_POST) { if ($form->validate()) { $email = $db->escape($form->getEmail()); $username = $db->escape($form->getUsername()); $password = new Password($db->escape($form->getPassword())); $res = $db->query("SELECT * FROM users WHERE username = '******'"); if ($res) { $msg = 'Such user already exists!'; } else { $db->query("INSERT INTO users (email, username, password) VALUES ('{$email}','{$username}','{$password}')"); header('location: index.php?msg=You have been registered'); } } else { $msg = $form->passwordsMatch() ? 'Please fill in fields' : 'Passwords don\'t match'; }
return isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form' ? array() : array('captcha' => array('class' => 'CCaptchaAction', 'backColor' => 0xffffff)); } /** * Registration user */ public function actionRegistration() { Yii::app()->theme = 'classic'; $this->layout = '//layouts/column2'; $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { if (isset($_POST['accept_terms']) && $_POST['accept_terms'] == 1) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); if ($model->validate() && $profile->validate()) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->createtime = time(); $model->lastvisit = (Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin ? time() : 0; $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; if ($model->save()) { $profile->user_id = $model->id; $profile->save(); if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("You registered from {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("Please activate you account go to {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email or login.")); } else { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email.")); } $this->refresh(); } } } else { $profile->validate(); } } else { F::setFlash('请仔细阅读注册协议并同意注册协议所有条款!'); $this->redirect(array('/user/registration')); }
/** * Registration user */ public function actionRegistration() { $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; $org = new Organisation(); // ajax validator //if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form') //{ // echo UActiveForm::validate(array($model,$profile)); // Yii::app()->end(); //} if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { if ($_POST['RegistrationForm']['service'] == 2) { //////////////////////////////////////////////////////////////////////////////// //$name = trim($org->name); $name = trim($_POST['Organisation']['name']); $exOrgCount = Organisation::model()->count('name=:param_name', array(':param_name' => $name)); if ($exOrgCount > 0) { $org->validatorList->add(CValidator::createValidator('unique', $org, 'name', array('message' => Yii::t('app', 'Group Name already exists')))); } else { if (strlen($name) == 0) { $org->validatorList->add(CValidator::createValidator('required', $org, 'name', array('message' => Yii::t('app', 'Group Name canot be blank')))); } } //////////////////////////////////////////////////////////////////////////////// echo UActiveForm::validate(array($model, $profile, $org)); Yii::app()->end(); } else { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); $valid = $model->validate(); $valid = $profile->validate() && $valid; if ($_POST['RegistrationForm']['service'] == 2) { $org->name = trim($_POST['Organisation']['name']); $valid = $org->validate() && $valid; } //if($model->validate()&&$profile->validate()) if ($valid) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; $orgDuplicateCheck = false; $flag = true; $role = 'Authenticated'; if ($model->service == 1) { $orgDuplicateCheck = true; $role = 'Individual'; } else { if ($model->service == 2 && isset($_POST['Organisation']['name'])) { $org->name = trim($_POST['Organisation']['name']); $flag = Organisation::model()->exists('name=:param_name_check', array(':param_name_check' => $org->name)); if (!$flag) { $orgDuplicateCheck = true; } $role = 'Org_Admin'; } else { //$org->validatorList->add(CValidator::createValidator('unique', $org, 'name', array('message'=>Yii::t('app','Group Name Already Exists')))); $org->validate(); Yii::app()->user->setFlash('registration', UserModule::t("Group Name already exists")); } } if ($orgDuplicateCheck) { if ($model->save()) { $profile->user_id = $model->id; $profile->firstname = $model->firstname; $profile->lastname = $model->lastname; $profile->save(); $this->assignRole($model->id, $role); //If Service=2 ~ Organisation Save New (Non-Existent) Organisation if (!$flag) { $org->created_by = $model->id; $org->type = 'Other'; //$org->timestamp_create = date('Y-m-d H:i:s'); if ($org->save()) { $model->organisation_id = $org->id; $model->organisation_administrator = 1; $model->save(false); try { //Create Organisation Group $group = new Group(); $group->group_name = $org->name; $group->parent_group_id = 0; $group->organisation_id = $org->id; $group->timestamp_created = date('Y-m-d H:i":'); $group->save(false); $groupMember = new GroupMember(); $groupMember->group_id = $group->group_id; $groupMember->user_id = $model->id; $groupMember->manager_flag = 1; //$groupMember->created_by = 0; //$groupMember->timestamp_created = date('Y-m-d H:i:s'); $groupMember->save(false); } catch (Exception $ex) { Yii::log($ex->getMessage(), 'error', 'Custom'); } } else { Yii::app()->user->setFlash('registration', UserModule::t("Oop! Soemthing Went Wrong")); } } if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("You registered from {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("Please activate your account by going to {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email to login.")); } else { //Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email.")); Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your spam/junk folder if you email is not in inbox.")); } $this->refresh(); } } } } else { $profile->validate(); } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile, 'org' => $org)); } }