/** * form for new pass request */ public function actionPassRequest() { $formmodel = new UserGroupsUser('passRequest'); if (isset($_POST['UserGroupsUser'])) { $formmodel->attributes = $_POST['UserGroupsUser']; $attr = 'username'; $val = $formmodel->username; if (!$formmodel->username) { $attr = 'email'; $val = $formmodel->email; } if (!$formmodel->email) { $attr = 'username'; $val = $formmodel->username; } if ($formmodel->username || $formmodel->email) { $model = UserGroupsUser::model()->findByAttributes(array($attr => $val)); if ($model) { if ($model->xml_id && $model->external_auth_id) { $mail = new UGMail($model, UGMail::PASS_RESET_ERROR); $mail->send(); Yii::app()->user->setFlash('success', 'Невозможно поменять пароль т.к. Вы авторизировались с помощью ' . $model->external_auth_id); } else { $flash = ''; $model->scenario = 'passRequest'; if ($model->save()) { $mail = new UGMail($model, UGMail::PASS_RESET); $mail->send(); $flash = Yii::t('UserGroupsModule.general', 'An email containing the instructions to reset your password has been sent to your email address: {email}'); } else { //print_r ($model->errors); die(); $flash = Yii::t('userGroupsModule.general', 'An Error Occurred. Please try later.'); } Yii::app()->user->logout(); $cookies = Yii::app()->request->cookies; $cookies->add('success', new CHttpCookie('success', $flash)); } $this->redirect(array('/userGroups/user/login/')); } } $formmodel->validate(); } $this->render('passRequest', array('model' => $formmodel)); }
public function auth() { if (Yii::app()->user->isGuest) { $model = new UserGroupsUser('login'); $loginmode = 'regular'; $model->username = Yii::app()->request->getParam('login'); $model->password = Yii::app()->request->getParam('password'); $model->rememberMe = 0; if (Yii::app()->request->getParam('passwordhash')) { $model->password = Yii::app()->request->getParam('passwordhash'); $loginmode = 'fromHash'; } if ($model->validate() && $model->login($loginmode)) { return Yii::app()->user; } elseif ($model->username && $model->password) { $this->error('WRONG_CREDENTIALS'); // Логін та пароль передані, але вони не вірні } else { $this->error('AUTHORIZATION_REQUIRED'); } } else { return Yii::app()->user; } }
/** * form for new pass request */ public function actionPassRequest() { $formmodel = new UserGroupsUser('passRequest'); if (isset($_POST['UserGroupsUser'])) { $formmodel->attributes = $_POST['UserGroupsUser']; $attr = 'username'; $val = $formmodel->username; if (!$formmodel->username) { $attr = 'email'; $val = $formmodel->email; } if (!$formmodel->email) { $attr = 'username'; $val = $formmodel->username; } if ($formmodel->username || $formmodel->email) { $model = UserGroupsUser::model()->findByAttributes(array($attr => $val)); if ($model) { $model->scenario = 'passRequest'; if ($model->save()) { $mail = new UGMail($model, UGMail::PASS_RESET); if ($mail->send()) { if (!Yii::app()->user->hasFlash('success')) { Yii::app()->user->setFlash('success', Yii::t('UserGroupsModule.general', 'An email containing the instructions to reset your password has been sent to your email address: {email}')); } } } else { //print_r ($model->errors); die(); Yii::app()->user->setFlash('success', Yii::t('userGroupsModule.general', 'An Error Occurred. Please try later.')); } $this->redirect(array('/userGroups/')); } } $formmodel->validate(); } $this->render('passRequest', array('model' => $formmodel)); }
/** * form for new pass request */ public function actionPassRequest() { $model = new UserGroupsUser('passRequest'); if (isset($_POST['UserGroupsUser'])) { $model->attributes = $_POST['UserGroupsUser']; if ($model->validate()) { $model = UserGroupsUser::model()->findByAttributes(array('username' => $_POST['UserGroupsUser']['username'])); $model->scenario = 'passRequest'; if ($model->save()) { $mail = new UGMail($model, UGMail::PASS_RESET); $mail->send(); } else { Yii::app()->user->setFlash('success', Yii::t('userGroupsModule.general', 'An Error Occurred. Please try later.')); } $this->redirect(Yii::app()->baseUrl . '/userGroups'); } } $this->render('passRequest', array('model' => $model)); }