ChangePassword.php
2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
namespace artbox\core\models;
use yii\base\Model;
class ChangePassword extends Model
{
/**
* @var string $oldPassword
*/
public $oldPassword;
/**
* @var string $newPassword
*/
public $newPassword;
/**
* @var string $newPasswordRepeat
*/
public $newPasswordRepeat;
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'oldPassword' => \Yii::t('core', 'Old password'),
'newPassword' => \Yii::t('core', 'New password'),
'newPasswordRepeat' => \Yii::t('core', 'New password repeat'),
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[
'oldPassword',
'newPassword',
'newPasswordRepeat',
],
'required',
],
[
[
'oldPassword',
'newPassword',
'newPasswordRepeat',
],
'string',
'length' => [
6,
255,
],
],
[
[ 'newPasswordRepeat' ],
'compare',
'compareAttribute' => 'newPassword',
],
];
}
/**
* Validate old password.
*
* @return bool True if password valid, otherwise false
*/
public function validatePassword()
{
/**
* @var User $user
*/
$user = \Yii::$app->user->identity;
$result = $user->validatePassword($this->oldPassword);
if (!$result) {
$this->addError('oldPassword', \Yii::t('core', 'Provided old password doesn\'t match real password.'));
}
return $result;
}
/**
* Save new password
*
* @return bool True if successfully saved
*/
public function saveChanges()
{
/**
* @var User $user
*/
$user = \Yii::$app->user->identity;
$user->setPassword($this->newPassword);
$user->generateAuthKey();
return $user->save();
}
}