Blame view

artweb/artbox-core/models/ChangePassword.php 2.58 KB
326af919   mzavalniuk   add artbox-core t...
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();
          }
      }