/** * 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; }
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() { $auth = Yii::$app->authManager; $role = $auth->getRole($this->jabatan); if ($this->validate() && !empty($role)) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); if ($user->validate() && $user->save()) { $person = new Person(); $person->first_name = $this->first_name; $person->last_name = $this->last_name; $person->gender = $this->gender; $person->birth_date = $this->birth_date; $person->user_id = $user->id; if ($person->validate() && $person->save()) { $auth->assign($role, $user->id); return true; } } } return false; }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $user->last_name = $this->last_name; $user->first_name = $this->first_name; $user->patronymic = $this->patronymic; $user->email_work = $this->email_work; $user->post_id = $this->post_id; $user->department_id = $this->department_id; $user->status_id = User::STATUS_WAIT; $user->setPassword($this->password); $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { // Присваиваем роль по умолчанию //$auth = Yii::$app->authManager; //$authorRole = $auth->getRole('user'); //$auth->assign($authorRole, $user->getId()); //Отправляем письмо с подтверждением /*Yii::$app->mailer->compose('confirmEmail', ['user' => $user]) ->setFrom([Yii::$app->params['app']['supportEmail'] => Yii::$app->params['app']['title']]) ->setTo($this->email_work) ->setSubject('Email confirmation for ' . Yii::$app->name) ->send(); */ Yii::$app->mailer->compose('confirmEmail', ['user' => $user])->setFrom([Yii::$app->params['app']['email'] => Yii::$app->params['app']['title']])->setTo($this->email_work)->setSubject('Email confirmation for ')->send(); } return $user; } return null; }
public function testSave() { $model = new User(['username' => 'test_user', 'email' => '*****@*****.**', 'status' => 1]); $model->setPassword('new-password'); expect('model is saved', $model->save())->true(); expect('password is correct', $model->validatePassword('new-password'))->true(); expect('auth key is correct', $model->auth_key)->notEmpty(); expect('created_at is correct', $model->created_at)->notEmpty(); expect('updated_at is correct', $model->updated_at)->notEmpty(); }
/** * 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; }
/** * 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->generateAuthKey(); if ($user->save()) { return $user; } } return null; }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate() === true) { $user = new User(); $user->setScenario('signup'); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); if ($user->save() === false) { return null; } 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(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_WAIT; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { 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; }
/** * 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()) { Yii::$app->mailer->compose(['text' => '@app/modules/user/mails/emailConfirm'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])->setTo($this->email)->setSubject(Module::t('module', 'EMAIL_CONFIRMATION_FOR {appName}', ['appName' => 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(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_ACTIVE; // заглушка (должно быть STATUS_WAIT): из-за неполадок с отправкой e-mail на сервере $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { 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; }
/** * 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_NOT_CONFIRMED; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { $profile = new Profile(); $profile->link('user', $user); 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; }
/** * 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; }
/** * Success callback for social networks authentication * @param $client * @throws ErrorException * @throws \yii\base\ExitException */ public function successCallback($client) { $model = AuthClientHelper::findUserByService($client); if (is_object($model) === false) { // user not found, retrieve additional data $client = AuthClientHelper::retrieveAdditionalData($client); $attributes = AuthClientHelper::mapUserAttributesWithService($client); // check if it is anonymous user if (Yii::$app->user->isGuest === true) { $model = new User(['scenario' => 'registerService']); $security = Yii::$app->security; $model->setAttributes($attributes['user']); $model->status = User::STATUS_ACTIVE; if (empty($model->username) === true) { // if we doesn't have username - generate unique random temporary username // it will be needed for saving purposes $model->username = $security->generateRandomString(18); $model->username_is_temporary = 1; } $model->setPassword($security->generateRandomString(16)); $model->generateAuthKey(); if ($model->save() === false) { if (isset($model->errors['username'])) { // regenerate username $model->username = $security->generateRandomString(18); $model->username_is_temporary = 1; $model->save(); } if (isset($model->errors['email'])) { // empty email $model->email = null; $model->save(); } if (count($model->errors) > 0) { throw new ErrorException(Yii::t('app', "Temporary error signing up user")); } } } else { // non anonymous - link to existing account /** @var \app\modules\user\models\User $model */ $model = Yii::$app->user->identity; } $service = new UserService(); $service->service_type = $client->className(); $service->service_id = '' . $attributes['service']['service_id']; $service->user_id = $model->id; if ($service->save() === false) { throw new ErrorException(Yii::t('app', "Temporary error saving social service")); } } elseif (Yii::$app->user->isGuest === false) { // service exists and user logged in // check if this service is binded to current user if ($model->id != Yii::$app->user->id) { throw new ErrorException(Yii::t('app', "This service is already binded to another user")); } else { throw new ErrorException(Yii::t('app', 'This service is already binded.')); } } TagDependency::invalidate(Yii::$app->cache, ['Session:' . Yii::$app->session->id]); Yii::$app->user->login($model, 86400); if ($model->username_is_temporary == 1 || empty($model->email)) { // show post-registration form $this->layout = $this->module->postRegistrationLayout; $model->setScenario('completeRegistration'); echo $this->render('post-registration', ['model' => $model]); Yii::$app->end(); return; } }