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> | ... | ... |