5 public $defaultAction =
'registration';
13 return (isset($_POST[
'ajax']) && $_POST[
'ajax'] ===
'registration-form') ? array() : array(
15 'class' =>
'CCaptchaAction',
16 'backColor' => 0xFFFFFF,
17 'fixedVerifyCode' => YII_DEBUG ?
'polomo' : null
27 if (Yii::app()->user->id) {
28 $this->redirect(Yii::app()->controller->module->homePageUrl);
32 $profile->regMode =
true;
34 if (isset($_POST[
'ajax']) && $_POST[
'ajax'] ===
'registration-form') {
35 echo CActiveForm::validate(array($registrationForm, $profile));
39 if (isset($_POST[
'RegistrationForm'])) {
40 $registrationForm->attributes = $_POST[
'RegistrationForm'];
41 $profile->attributes = @$_POST[
'Profile'];
42 $rv = $registrationForm->validate();
43 $pv = $profile->validate();
45 $sourcePassword = $registrationForm->password;
49 $registrationForm->lastvisit =
50 ((Yii::app()->controller->module->loginNotActiv || (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail ==
false)) && Yii::app()->controller->module->autoLogin) ?
54 $registrationForm->status = ((Yii::app()->controller->module->activeAfterRegister) ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE);
56 if ($registrationForm->save()) {
57 $profile->user_id = $registrationForm->id;
59 if(Yii::app()->getModule(
'user')->registrationNotifyAdminEmail !== NULL){
60 $this->onRegisterNewUser($registrationForm, $profile);
63 Yii::app()->user->setState(
'RegistrationForm', null);
64 Yii::app()->user->setState(
'Profile', null);
66 if (Yii::app()->controller->module->sendActivationMail) {
68 if (isset($_GET[
'return_url'])) {
69 $activation_url = $this->createAbsoluteUrl(
70 AppHelper::addParamsToUrl($_GET[
'return_url'], array(
"activkey" => $registrationForm->activkey,
"email" => $registrationForm->email))
73 $activation_url = $this->createAbsoluteUrl(
74 '/user/activation/activation',
75 array(
"activkey" => $registrationForm->activkey,
"email" => $registrationForm->email)
79 $subject =
UserModule::t(Yii::app()->controller->module->activationMailSubject, array(
'{site_name}' => Yii::app()->name));
80 $message = $this->renderMail(
'/mail_templates/activation_mail', $subject, array(
'activation_url' => $activation_url));
84 array(
new EmailRecipient($registrationForm->email, Yii::app()->getModule(
'user')->activationEmail,
'',
true))
86 Yii::app()->notificationManager->notifyAbout($notification);
89 if ((Yii::app()->controller->module->loginNotActiv || (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail ==
false)) && Yii::app()->controller->module->autoLogin) {
90 $identity =
new UserIdentity($registrationForm->username, $sourcePassword);
91 $identity->authenticate();
92 Yii::app()->user->login($identity, 0);
93 $this->redirect(Yii::app()->controller->module->returnUrl);
95 if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) {
96 Yii::app()->user->setFlash(
'registration',
UserModule::t(
"Thank you for your registration. Contact Admin to activate your account."));
97 } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail ==
false) {
98 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))));
99 } elseif (Yii::app()->controller->module->loginNotActiv) {
100 Yii::app()->user->setFlash(
'registration',
UserModule::t(
"Thank you for your registration. Please check your email or login."));
102 Yii::app()->user->setFlash(
'registration',
UserModule::t(
"Thank you for your registration. Please check your email."));
104 if (isset($_GET[
'return_url'])) {
105 $this->redirect($_GET[
'return_url']);
111 } elseif (!isset($_POST[
'ajax'])) {
112 Yii::app()->user->setState(
'RegistrationForm', array(
'attributes' => $registrationForm->attributes,
'errors' => $registrationForm->getErrors()));
113 Yii::app()->user->setState(
'Profile', array(
'attributes' => $profile->attributes,
'errors' => $profile->getErrors()));
117 if (isset($_GET[
'return_url'])) {
118 $this->redirect($_GET[
'return_url']);
120 $this->render(
'/user/registration', array(
'model' => $registrationForm,
'profile' => $profile));
125 public function onRegisterNewUser($form, $profile)
127 $subject =
UserModule::t(
"New user '{$form->email}' was registered");
128 $message = Yii::app()->controller->renderMail(
'user.views.mail_templates.'.Yii::app()->getModule(
'user')->registrationNotifyAdminTemplate, $subject, array(
'form' => $form,
'profile' => $profile),
true);
133 array(
new EmailRecipient(Yii::app()->getModule(
'user')->registrationNotifyAdminEmail, Yii::app()->getModule(
'user')->activationEmail,
'',
true))
135 Yii::app()->notificationManager->notifyAbout($notification);