public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_WAIT; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { $auth = Yii::$app->authManager; $userRoleDefault = $auth->getRole('user'); $auth->assign($userRoleDefault, $user->getId()); $userProfile = new Profile(); $userProfile->user_id = $user->getId(); $userProfile->user_agent = Yii::$app->request->getUserAgent(); $userProfile->user_ip = Yii::$app->request->getUserIP(); $userProfile->name = $user->username; $userProfile->avatar_id = 1; //default.png (id = 1) $userProfile->save(false); Yii::$app->mailer->compose(['text' => '@app/modules/user/mails/emailConfirm'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])->setTo($this->email)->setSubject(Module::t('app', 'EMAIL_SIGNUP_SUBJECT') . Yii::$app->name)->send(); } return $user; } return null; }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $profile = new Profile(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); $user->role = 'user'; $user->status = 1; $profile->firstname = $this->firstname; $profile->lastname = $this->lastname; $profile->avatar = $this->avatar; // $profile->gender = 0; $transaction = Yii::$app->db->beginTransaction(); if ($user->save()) { $profile->user_id = $user->getId(); if ($profile->save()) { $transaction->commit(); return $user; } } else { $transaction->rollback(); print_r($user->getErrors()); return false; } } return null; }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_WAIT; $user->generateAuthKey(); $user->generateEmailConfirmToken(); // if ($user->save()) { $auth = Yii::$app->authManager; $role = $auth->getRole('client'); $auth->assign($role, $user->getId()); $confirmLink = Yii::$app->urlManager->createAbsoluteUrl(['user/default/confirm-email', 'token' => $user->email_confirm_token]); $message = "Здравствуйте, " . Html::encode($user->username) . "!"; $message .= "Для подтверждения адреса пройдите по ссылке:"; //$message .= Html::a(Html::encode($confirmLink), $confirmLink) ; $message .= $confirmLink; $message .= " Если Вы не регистрировались у на нашем сайте, то просто удалите это письмо."; // Отправляем mail($user->email, 'Регистрация на сайте', $message); // $mailer =Yii::$app->get('mailsmtp'); // // $message =$mailer->compose('confirmEmail', ['user' => $user]) // // ->setTo($this->email) // ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name]) // ->setSubject('Email confirmation for ' . Yii::$app->name); // // $message->getSwiftMessage()->getHeaders()->addTextHeader('name', 'value'); // $failures =null; // try { // // if(!$mailer->send($message, $failures)) $errorCode=$failures; //отправляем // // }catch (\Swift_TransportException $e) { //проверяем на ошибки // $pattern = '|got code "(.+?)", with|is'; // preg_match($pattern, $e->getMessage(), $out); // $errorCode=$out[1]; // } /*Yii::$app->mailer->compose('confirmEmail', ['user' => $user]) ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name]) ->setTo($this->email) ->setSubject('Email confirmation for ' . Yii::$app->name) ->send();*/ } return $user; } return null; }
public function actionCreate() { $user = new User(['scenario' => 'admin-create']); $profile = new Profile(); $statusArray = User::getStatusArray(); $roleArray = User::getRoleArray(); if ($user->load(Yii::$app->request->post())) { if ($user->validate()) { $transaction = Yii::$app->db->beginTransaction(); if ($user->save(false)) { $profile->user_id = $user->getId(); if ($profile->save(false)) { $transaction->commit(); return $this->redirect(['index']); } else { $transaction->rollback(); print_r($user->getErrors()); return false; } } else { Yii::$app->session->setFlash('danger', 'Ошибка'); return $this->refresh(); } } } // $transaction = Yii::$app->db->beginTransaction(); // if ($user->save()) // { // $profile->user_id = $user->getId(); // if($profile->save()) // { // $transaction->commit(); // return $user; // } // } // else // { // $transaction->rollback(); // print_r($user->getErrors()); // return false; // } return $this->render('create', ['model' => $user, 'statusArray' => $statusArray, 'roleArray' => $roleArray]); }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_WAIT; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { $auth = Yii::$app->authManager; $authorRole = $auth->getRole('author'); $auth->assign($authorRole, $user->getId()); Yii::$app->mailer->compose(['text' => '@app/modules/user/mails/emailConfirm'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])->setTo($this->email)->setSubject('Email confirmation for ' . Yii::$app->name)->send(); } return $user; } return null; }