RegistrationForm is the data structure for keeping user registration form data. It is used by the 'registration' action of 'UserController'.
Inheritance: extends User
	/**
	 * 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;
 }
Beispiel #4
0
 /**
  * @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]);
 }
Beispiel #5
0
 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;
     }
 }
Beispiel #6
0
 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));
 }
Beispiel #8
0
 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();
     }
 }
Beispiel #16
0
 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));
     }
 }
Beispiel #19
0
 /**
  * Страница авторизации/регистрации
  */
 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;
     }
 }
Beispiel #22
0
 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');
     }
 }
Beispiel #24
0
 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));
 }
Beispiel #27
0
 /**
  * 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));
     }
 }
Beispiel #28
0
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));
     }
 }