Commit fa5a99de650b12581a68f7da16a441a513070c3a

Authored by Administrator
1 parent 5824a647

VItaliy 04.12.2015

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,6 +15,7 @@ use frontend\models\ContactForm;
15 use yii\base\InvalidParamException; 15 use yii\base\InvalidParamException;
16 use yii\web\BadRequestHttpException; 16 use yii\web\BadRequestHttpException;
17 use yii\web\Controller; 17 use yii\web\Controller;
  18 +
18 use yii\filters\VerbFilter; 19 use yii\filters\VerbFilter;
19 use yii\filters\AccessControl; 20 use yii\filters\AccessControl;
20 use common\models\Callback; 21 use common\models\Callback;
@@ -365,14 +366,17 @@ class SiteController extends Controller @@ -365,14 +366,17 @@ class SiteController extends Controller
365 */ 366 */
366 public function actionRequestPasswordReset() 367 public function actionRequestPasswordReset()
367 { 368 {
  369 + $this->layout = '/internal';
  370 +
368 $model = new PasswordResetRequestForm(); 371 $model = new PasswordResetRequestForm();
369 if ($model->load(Yii::$app->request->post()) && $model->validate()) { 372 if ($model->load(Yii::$app->request->post()) && $model->validate()) {
  373 +
370 if ($model->sendEmail()) { 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 return $this->goHome(); 377 return $this->goHome();
374 } else { 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 <?php 1 <?php
2 namespace frontend\models; 2 namespace frontend\models;
3 3
4 -use common\models\User; 4 +use common\models\Accounts;
5 use yii\base\Model; 5 use yii\base\Model;
6 - 6 +use common\models\Emails;
7 /** 7 /**
8 * Password reset request form 8 * Password reset request form
9 */ 9 */
@@ -21,9 +21,8 @@ class PasswordResetRequestForm extends Model @@ -21,9 +21,8 @@ class PasswordResetRequestForm extends Model
21 ['email', 'required'], 21 ['email', 'required'],
22 ['email', 'email'], 22 ['email', 'email'],
23 ['email', 'exist', 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,23 +34,24 @@ class PasswordResetRequestForm extends Model
35 */ 34 */
36 public function sendEmail() 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 'email' => $this->email, 40 'email' => $this->email,
42 ]); 41 ]);
43 42
44 if ($user) { 43 if ($user) {
45 - if (!User::isPasswordResetTokenValid($user->password_reset_token)) { 44 + if (!Accounts::isPasswordResetTokenValid($user->password_reset_token)) {
46 $user->generatePasswordResetToken(); 45 $user->generatePasswordResetToken();
47 } 46 }
48 47
49 if ($user->save()) { 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,6 +3,7 @@ use \yii\widgets\ActiveForm;
3 use \yii\helpers\ArrayHelper; 3 use \yii\helpers\ArrayHelper;
4 use \common\models\DicCities; 4 use \common\models\DicCities;
5 use \common\models\Deliveries; 5 use \common\models\Deliveries;
  6 +use \yii\helpers\Url;
6 7
7 $this->registerCssFile('/css/about_company.css'); 8 $this->registerCssFile('/css/about_company.css');
8 $this->registerCssFile('/css/style/notepad.css'); 9 $this->registerCssFile('/css/style/notepad.css');
@@ -17,16 +18,18 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -17,16 +18,18 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
17 <div class="vin"> 18 <div class="vin">
18 <p class="vin_article">Мой профиль</p> 19 <p class="vin_article">Мой профиль</p>
19 <div class='side_menu'> 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 <div class="tab-content"> 33 <div class="tab-content">
31 <div role="tabpanel" class="tab-pane active" id="profile"> 34 <div role="tabpanel" class="tab-pane active" id="profile">
32 <p class="tab-content_header">Личные данные</p> 35 <p class="tab-content_header">Личные данные</p>
frontend/views/page/view.php
@@ -4,7 +4,6 @@ $this-&gt;registerCssFile(&#39;/css/style/optovikam.css&#39;); @@ -4,7 +4,6 @@ $this-&gt;registerCssFile(&#39;/css/style/optovikam.css&#39;);
4 $this->registerMetaTag(['description' => $model->descr,'keywords'=>$model->kwords]); 4 $this->registerMetaTag(['description' => $model->descr,'keywords'=>$model->kwords]);
5 $this->title = $model->title ? $model->title: $model->name; 5 $this->title = $model->title ? $model->title: $model->name;
6 $this->params['breadcrumbs'][] = $this->title; 6 $this->params['breadcrumbs'][] = $this->title;
7 -  
8 ?> 7 ?>
9 <div class="main-vin"> 8 <div class="main-vin">
10 9
frontend/views/site/requestPasswordResetToken.php 0 → 100755
  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>