/** * Attempts to find the member and send them an email * * @param \common\models\Member $member * @return bool */ public function saveMember($member) { if ($this->password && $this->password !== $member->password) { $member->setRawPassword($this->password); } $member->name = $this->name; $member->save(); return true; }
/** * Attempts to find the member and send them an email * * @param \common\models\Member $member * @return bool */ public function save($member) { if (strlen($this->password) < 8) { $this->addError('password', 'Password must be at least 8 characters'); } else { $member->setRawPassword($this->password); $member->passwordResetKey = ''; return $member->save(); } }
/** * Attempts to find the member and send them an email * * @return bool */ public function register() { $member = Member::find()->where(['email' => ['like', 'email', $this->email]])->limit(1)->one(); if (!$member) { // Create a new member $member = new Member(); $member->email = $this->email; $member->name = $this->name; $member->isActive = 0; $member->passwordResetKey = Util::getRandomString(32); $member->setRawPassword($this->password); $member->save(); $encrypted = JWT::encode(['i' => $member->id, 'k' => $member->passwordResetKey], Yii::$app->params['secret']); // Send email return Yii::$app->mailer->compose(['html' => 'register/html', 'text' => 'register/text'], ['encrypted' => $encrypted, 'member' => $member])->setFrom(Yii::$app->params['fromEmail'])->setTo($this->email)->setSubject('Registration Confirmation - ' . Yii::$app->params['siteName'])->send(); } else { $this->addError('email', 'An account already exists for ' . $this->email); } return false; }