/** * Authenticates the password. * This is the 'authenticate' validator as declared in rules(). */ public function reset() { $external = true; $user = ExternalUser::model()->findByAttributes(array('name_usr' => $this->username)); if ($user === NULL) { // check internal $user = InternalUser::model()->findByAttributes(array('email_uin' => $this->username)); if ($user === NULL) { // no user found } $external = false; } if ($external) { $user->email_code_usr = md5(date('Y-m-d H:i:s') . self::SALT); $user->save(); ExternalUserHistory::addLog('Requested password reset!', $user->id_usr); $md5 = $user->id_usr . 'e;' . $user->email_code_usr; $name = $user->name_usr; $email = $user->email_usr; } else { $md5 = $user->id_uin . 'i;' . md5($user->fname_uin . $user->password_uin); $name = $user->fname_uin; $email = $user->email_uin; } ResetpasswordForm::send_first_email($md5, $name, $email, $external); }
public function actionReactivate($id) { if (ExternalUser::model()->findByPk($id)->sendActivationLink()) { Yii::app()->user->setFlash('_success', "Activation link has been sent to selected user!"); $this->redirect($_SERVER['HTTP_REFERER']); } else { Yii::app()->user->setFlash('_error', "User not found!"); $this->redirect($_SERVER['HTTP_REFERER']); } }
public function actionResendactivation() { if (isset($_POST['resend_activation'])) { $model = ExternalUser::model()->findAllByAttributes(array('email_usr' => $_POST['email'])); if ($model) { $model = $model[0]; if ($model->status_usr != 0) { $model = false; Yii::app()->user->setFlash('_error', "Your email address has been already validated!"); } } else { Yii::app()->user->setFlash('_error', "Invalid email address!"); } if ($model) { $model->sendActivationLink(); ExternalUserHistory::addLog('Account created!', $model->id_usr); Yii::app()->user->setFlash('_success', "Your activation link has been sent! Check your email address to continue!"); $this->redirect(array('site/login')); header("Location: " . Yii::app()->getBaseUrl()); die; } } $this->render('resendactivation'); }
public function authenticate() { // check external $external = true; $user = ExternalUser::model()->findByAttributes(array('name_usr' => $this->username)); if ($user === NULL) { // check internal $user = InternalUser::model()->findByAttributes(array('email_uin' => $this->username)); if ($user === NULL) { // no user found $this->errorCode = self::ERROR_USERNAME_INVALID; } $external = false; } if ($user) { if ($external) { if ($user->password_usr == ExternalUser::passwordHash($this->password)) { // password ok if ($user->status_usr == ExternalUser::ENABLED_ENABLED) { // account enabled $this->errorCode = self::ERROR_NONE; $this->setState('type', 'External'); $this->setState('userId', $user->id_usr); $this->setState('name', $user->name_usr); $this->setState('email', $user->email_usr); $this->setState('limitation_date', $user->limitation_date_usr); $this->setState('rights_daily', $user->rights_daily_usr); $this->setState('rights_monthly', $user->rights_monthly_usr); $this->setState('rights_clean', $user->rights_clean_usr); $user->last_login_date_usr = date('Y-m-d H:i:s'); $user->ip_usr = $_SERVER['REMOTE_ADDR']; $user->save(false); } else { $this->errorCode = 114 + $user->status_usr; if ($user->status_usr == 0) { $_POST['show_resend_activation'] = true; } } } else { $this->errorCode = self::ERROR_PASSWORD_INVALID; } } else { if ($user->password_uin == InternalUser::passwordHash($this->password)) { // password ok if ($user->enabled_uin == InternalUser::ENABLED_ENABLED) { // account enabled $this->errorCode = self::ERROR_NONE; $this->setState('type', 'Internal'); $this->setState('userId', $user->id_uin); $this->setState('name', $user->fname_uin . ' ' . $user->lname_uin); $this->setState('email', $user->email_uin); $user->last_login_date_uin = date('Y-m-d H:i:s'); $user->save(false); } else { $this->errorCode = self::ERROR_ENABLED_DISABLED; } } else { $this->errorCode = self::ERROR_PASSWORD_INVALID; } } } return !$this->errorCode; }