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 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-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;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-&gt;registerCssFile(&#39;/css/style/optovikam.css&#39;);
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  
... ...
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>
... ...