Passed
Pull Request — master (#171)
by Corey
02:45
created

Controller::beforeAction()   A

Complexity

Conditions 5
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 12
rs 9.6111
c 0
b 0
f 0
cc 5
nc 2
nop 1
1
<?php
2
3
namespace common\components;
4
5
use Yii;
6
7
class Controller extends \yii\web\Controller {
8
  /**
9
   * {@inheritdoc}
10
   */
11
  public function beforeAction($action)
12
  {
13
    if ($this->enableCsrfValidation
14
      && Yii::$app->getErrorHandler()->exception === null
15
      && !Yii::$app->getRequest()->validateCsrfToken()) {
16
17
      Yii::$app->session->setFlash('error', 'Your security token has expired. Please retry your submission.');
0 ignored issues
show
Bug introduced by
The method setFlash() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

17
      Yii::$app->session->/** @scrutinizer ignore-call */ 
18
                          setFlash('error', 'Your security token has expired. Please retry your submission.');

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
18
      $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);
0 ignored issues
show
Bug introduced by
It seems like Yii::app->request->referrer ?: Yii::app->homeUrl can also be of type object; however, parameter $url of yii\web\Controller::redirect() does only seem to accept array|string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

18
      $this->redirect(/** @scrutinizer ignore-type */ Yii::$app->request->referrer ?: Yii::$app->homeUrl);
Loading history...
19
      return false;
20
    }
21
22
    return parent::beforeAction($action);
23
  }
24
25
  /**
26
   * {@inheritdoc}
27
   */
28
  public function actions()
29
  {
30
    return [
31
      'error' => [
32
         'class' => 'yii\web\ErrorAction',
33
       ],
34
      'captcha' => [
35
        'class' => 'yii\captcha\CaptchaAction',
36
      ],
37
    ];
38
  }
39
}