Commit fa5a99de650b12581a68f7da16a441a513070c3a
1 parent
5824a647
VItaliy 04.12.2015
Showing
6 changed files
with
94 additions
and
27 deletions
Show diff stats
console/migrations/m151204_095541_add_field_password_reset_token_accounts.php
0 → 100644
| 1 | +<?php | |
| 2 | + | |
| 3 | +use yii\db\Schema; | |
| 4 | +use yii\db\Migration; | |
| 5 | + | |
| 6 | +class m151204_095541_add_field_password_reset_token_accounts extends Migration | |
| 7 | +{ | |
| 8 | + public function up() | |
| 9 | + { | |
| 10 | + $view = <<< MySQL | |
| 11 | + ALTER TABLE `italautocomua`.`w_accounts` | |
| 12 | + ADD COLUMN `password_reset_token` VARCHAR(255) NULL AFTER `email`; | |
| 13 | +MySQL; | |
| 14 | + $this->execute($view); | |
| 15 | + } | |
| 16 | + | |
| 17 | + public function down() | |
| 18 | + { | |
| 19 | + echo "m151204_095541_add_field_password_reset_token_accounts cannot be reverted.\n"; | |
| 20 | + | |
| 21 | + return false; | |
| 22 | + } | |
| 23 | + | |
| 24 | + /* | |
| 25 | + // Use safeUp/safeDown to run migration code within a transaction | |
| 26 | + public function safeUp() | |
| 27 | + { | |
| 28 | + } | |
| 29 | + | |
| 30 | + public function safeDown() | |
| 31 | + { | |
| 32 | + } | |
| 33 | + */ | |
| 34 | +} | ... | ... |
frontend/controllers/SiteController.php
| ... | ... | @@ -15,6 +15,7 @@ use frontend\models\ContactForm; |
| 15 | 15 | use yii\base\InvalidParamException; |
| 16 | 16 | use yii\web\BadRequestHttpException; |
| 17 | 17 | use yii\web\Controller; |
| 18 | + | |
| 18 | 19 | use yii\filters\VerbFilter; |
| 19 | 20 | use yii\filters\AccessControl; |
| 20 | 21 | use common\models\Callback; |
| ... | ... | @@ -365,14 +366,17 @@ class SiteController extends Controller |
| 365 | 366 | */ |
| 366 | 367 | public function actionRequestPasswordReset() |
| 367 | 368 | { |
| 369 | + $this->layout = '/internal'; | |
| 370 | + | |
| 368 | 371 | $model = new PasswordResetRequestForm(); |
| 369 | 372 | if ($model->load(Yii::$app->request->post()) && $model->validate()) { |
| 373 | + | |
| 370 | 374 | if ($model->sendEmail()) { |
| 371 | - Yii::$app->session->setFlash('success', 'Check your email for further instructions.'); | |
| 375 | + Yii::$app->session->setFlash('success', 'Для того, чтобы изменить пароль, перейдите по ссылке, которая придет Вам на email'); | |
| 372 | 376 | |
| 373 | 377 | return $this->goHome(); |
| 374 | 378 | } else { |
| 375 | - Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.'); | |
| 379 | + Yii::$app->session->setFlash('error', 'Пользователя с таким e-mail в базе не существует'); | |
| 376 | 380 | } |
| 377 | 381 | } |
| 378 | 382 | ... | ... |
frontend/models/PasswordResetRequestForm.php
| 1 | 1 | <?php |
| 2 | 2 | namespace frontend\models; |
| 3 | 3 | |
| 4 | -use common\models\User; | |
| 4 | +use common\models\Accounts; | |
| 5 | 5 | use yii\base\Model; |
| 6 | - | |
| 6 | +use common\models\Emails; | |
| 7 | 7 | /** |
| 8 | 8 | * Password reset request form |
| 9 | 9 | */ |
| ... | ... | @@ -21,9 +21,8 @@ class PasswordResetRequestForm extends Model |
| 21 | 21 | ['email', 'required'], |
| 22 | 22 | ['email', 'email'], |
| 23 | 23 | ['email', 'exist', |
| 24 | - 'targetClass' => '\common\models\User', | |
| 25 | - 'filter' => ['status' => User::STATUS_ACTIVE], | |
| 26 | - 'message' => 'There is no user with such email.' | |
| 24 | + 'targetClass' => '\common\models\Accounts', | |
| 25 | + 'message' => 'Пользователя с таким e-mail в базе не существует.' | |
| 27 | 26 | ], |
| 28 | 27 | ]; |
| 29 | 28 | } |
| ... | ... | @@ -35,23 +34,24 @@ class PasswordResetRequestForm extends Model |
| 35 | 34 | */ |
| 36 | 35 | public function sendEmail() |
| 37 | 36 | { |
| 38 | - /* @var $user User */ | |
| 39 | - $user = User::findOne([ | |
| 40 | - 'status' => User::STATUS_ACTIVE, | |
| 37 | + | |
| 38 | + /* @var $user Accounts */ | |
| 39 | + $user = Accounts::findOne([ | |
| 41 | 40 | 'email' => $this->email, |
| 42 | 41 | ]); |
| 43 | 42 | |
| 44 | 43 | if ($user) { |
| 45 | - if (!User::isPasswordResetTokenValid($user->password_reset_token)) { | |
| 44 | + if (!Accounts::isPasswordResetTokenValid($user->password_reset_token)) { | |
| 46 | 45 | $user->generatePasswordResetToken(); |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | 48 | if ($user->save()) { |
| 50 | - return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user]) | |
| 51 | - ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot']) | |
| 52 | - ->setTo($this->email) | |
| 53 | - ->setSubject('Password reset for ' . \Yii::$app->name) | |
| 54 | - ->send(); | |
| 49 | + $form = array(); | |
| 50 | + $form ['email'] = $user->email; | |
| 51 | + $form ['name'] = $user->name; | |
| 52 | + $form ['pass'] = $user->pass; | |
| 53 | + return Emails::get('remide',$form,$form ['email']); | |
| 54 | + | |
| 55 | 55 | } |
| 56 | 56 | } |
| 57 | 57 | ... | ... |
frontend/views/accounts/cabinet.php
| ... | ... | @@ -3,6 +3,7 @@ use \yii\widgets\ActiveForm; |
| 3 | 3 | use \yii\helpers\ArrayHelper; |
| 4 | 4 | use \common\models\DicCities; |
| 5 | 5 | use \common\models\Deliveries; |
| 6 | +use \yii\helpers\Url; | |
| 6 | 7 | |
| 7 | 8 | $this->registerCssFile('/css/about_company.css'); |
| 8 | 9 | $this->registerCssFile('/css/style/notepad.css'); |
| ... | ... | @@ -17,16 +18,18 @@ $this->params['breadcrumbs'][] = $this->title; |
| 17 | 18 | <div class="vin"> |
| 18 | 19 | <p class="vin_article">Мой профиль</p> |
| 19 | 20 | <div class='side_menu'> |
| 20 | -<ul class="side_menu-list" role="tablist"> | |
| 21 | - <li class="active"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Личные данные</a></li> | |
| 22 | - <li><a href="#notepad" aria-controls="notepad" role="tab" data-toggle="tab">Блокнот</a></li> | |
| 23 | - <li><a href="#busket" aria-controls="busket" role="tab" data-toggle="tab">Корзина</a></li> | |
| 24 | - <li><a href="#orders" aria-controls="orders" role="tab" data-toggle="tab">Заказы</a></li> | |
| 25 | - <!-- <li><a href="#finance" aria-controls="finance" role="tab" data-toggle="tab">Финансы</a></li> | |
| 26 | - <li><a href="history" aria-controls="history" role="tab" data-toggle="tab">История запросов</a></li> | |
| 27 | - <li><a href="#avto" aria-controls="avto" role="tab" data-toggle="tab">Ваши авто</a></li> | |
| 28 | - <li><a href="#message" aria-controls="message" role="tab" data-toggle="tab">Оставить сообщение<br>об оплате и возврате</a></li> --> | |
| 29 | -</ul> | |
| 21 | + <?php | |
| 22 | + echo \yii\widgets\Menu::widget([ | |
| 23 | + 'options' => ['class' => 'side_menu-list'], | |
| 24 | + 'items' => [ | |
| 25 | + ['label' => 'Личные данные', 'url' => Url::toRoute(['/accounts/cabinet'])], | |
| 26 | + ['label' => 'Блокнот', 'url' => Url::toRoute(['/accounts/cabinet'])], | |
| 27 | + ['label' => 'Корзина', 'url' => Url::toRoute(['/accounts/cabinet'])], | |
| 28 | + ['label' => 'Заказы', 'url' => Url::toRoute(['/accounts/cabinet'])], | |
| 29 | + ['label' => 'Выйти', 'url' => Url::toRoute(['/site/logout'])], | |
| 30 | + ], | |
| 31 | + ]); | |
| 32 | + ?> | |
| 30 | 33 | <div class="tab-content"> |
| 31 | 34 | <div role="tabpanel" class="tab-pane active" id="profile"> |
| 32 | 35 | <p class="tab-content_header">Личные данные</p> | ... | ... |
frontend/views/page/view.php
| ... | ... | @@ -4,7 +4,6 @@ $this->registerCssFile('/css/style/optovikam.css'); |
| 4 | 4 | $this->registerMetaTag(['description' => $model->descr,'keywords'=>$model->kwords]); |
| 5 | 5 | $this->title = $model->title ? $model->title: $model->name; |
| 6 | 6 | $this->params['breadcrumbs'][] = $this->title; |
| 7 | - | |
| 8 | 7 | ?> |
| 9 | 8 | <div class="main-vin"> |
| 10 | 9 | ... | ... |
| 1 | +<?php | |
| 2 | +use yii\helpers\Html; | |
| 3 | +use yii\bootstrap\ActiveForm; | |
| 4 | + | |
| 5 | +/* @var $this yii\web\View */ | |
| 6 | +/* @var $form yii\bootstrap\ActiveForm */ | |
| 7 | +/* @var $model \frontend\models\PasswordResetRequestForm */ | |
| 8 | + | |
| 9 | +$this->title = 'Запрос на востановление пароля'; | |
| 10 | +$this->params['breadcrumbs'][] = $this->title; | |
| 11 | +?> | |
| 12 | +<div class="main-vin"> | |
| 13 | + <h1><?= Html::encode($this->title) ?></h1> | |
| 14 | + | |
| 15 | + <p>Введите ваш e-mail</p> | |
| 16 | + | |
| 17 | + <div class="row"> | |
| 18 | + <div class="col-lg-5"> | |
| 19 | + <?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?> | |
| 20 | + <?= $form->field($model, 'email')->label(false) ?> | |
| 21 | + <div class="form-group"> | |
| 22 | + <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?> | |
| 23 | + </div> | |
| 24 | + <?php ActiveForm::end(); ?> | |
| 25 | + </div> | |
| 26 | + </div> | |
| 27 | +</div> | ... | ... |