Completed
Push — master ( b27204...a2c64d )
by Nate
05:15 queued 02:48
created

controllers/settings/view/UserTypesController.php (1 issue)

the variable you call a method on is always an object.

Bug Major

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://flipboxfactory.com/software/organization/license
6
 * @link       https://www.flipboxfactory.com/software/organization/
7
 */
8
9
namespace flipbox\organizations\cp\controllers\settings\view;
10
11
use Craft;
12
use craft\helpers\UrlHelper as UrlHelper;
13
use flipbox\organizations\records\UserType;
14
use yii\web\Response;
15
16
/**
17
 * @author Flipbox Factory <[email protected]>
18
 * @since 1.0.0
19
 */
20
class UserTypesController extends AbstractSettingsController
21
{
22
    /**
23
     * The index view template path
24
     */
25
    const TEMPLATE_INDEX = AbstractSettingsController::TEMPLATE_BASE . '/userTypes';
26
27
    /**
28
     * The insert/update view template path
29
     */
30
    const TEMPLATE_UPSERT = self::TEMPLATE_INDEX . '/upsert';
31
32
    /**
33
     * @return Response
34
     */
35
    public function actionIndex()
36
    {
37
        $variables = [];
38
        $this->baseVariables($variables);
39
40
        $variables['types'] = UserType::findAll([]);
41
42
        return $this->renderTemplate(static::TEMPLATE_INDEX, $variables);
43
    }
44
45
    /**
46
     * @param null $identifier
47
     * @param UserType|null $userType
48
     * @return Response
49
     * @throws \flipbox\craft\ember\exceptions\RecordNotFoundException
50
     */
51
    public function actionUpsert($identifier = null, UserType $userType = null)
52
    {
53
        if (null === $userType) {
54
            if (null === $identifier) {
55
                $userType = new UserType();
56
            } else {
57
                $userType = UserType::getOne($identifier);
58
            }
59
        }
60
61
        $variables = [];
62
        if ($userType->getIsNewRecord()) {
0 ignored issues
show
It seems like $userType is not always an object, but can also be of type array. Maybe add an additional type check?

If a variable is not always an object, we recommend to add an additional type check to ensure your method call is safe:

function someFunction(A $objectMaybe = null)
{
    if ($objectMaybe instanceof A) {
        $objectMaybe->doSomething();
    }
}
Loading history...
63
            $this->insertVariables($variables);
64
        } else {
65
            $this->updateVariables($variables, $userType);
66
        }
67
68
        $variables['type'] = $userType;
69
        $variables['fullPageForm'] = true;
70
71
        return $this->renderTemplate(static::TEMPLATE_UPSERT, $variables);
72
    }
73
74
    /*******************************************
75
     * BASE PATHS
76
     *******************************************/
77
78
    /**
79
     * @return string
80
     */
81
    protected function getBaseActionPath(): string
82
    {
83
        return parent::getBaseActionPath() . '/user-types';
84
    }
85
86
    /**
87
     * @return string
88
     */
89
    protected function getBaseCpPath(): string
90
    {
91
        return parent::getBaseCpPath() . '/user-types';
92
    }
93
94
    /*******************************************
95
     * INSERT VARIABLES
96
     *******************************************/
97
98
    /**
99
     * @param array $variables
100
     */
101
    protected function insertVariables(array &$variables)
102
    {
103
        parent::insertVariables($variables);
104
        $variables['continueEditingUrl'] = $this->getBaseContinueEditingUrl('/{id}');
105
    }
106
107
    /*******************************************
108
     * UPDATE VARIABLES
109
     *******************************************/
110
111
    /**
112
     * @param array $variables
113
     * @param UserType $userType
114
     */
115
    protected function updateVariables(array &$variables, UserType $userType)
116
    {
117
        $this->baseVariables($variables);
118
        $variables['title'] .= ' - ' . Craft::t('organizations', 'Edit') . ' ' . $userType->name;
119
        $variables['continueEditingUrl'] = $this->getBaseContinueEditingUrl('/' . $userType->getId());
120
        $variables['saveShortcutRedirect'] = $variables['continueEditingUrl'];
121
        $variables['crumbs'][] = [
122
            'label' => Craft::t('organizations', $userType->name),
123
            'url' => UrlHelper::url($variables['continueEditingUrl'])
124
        ];
125
    }
126
127
    /*******************************************
128
     * VARIABLES
129
     *******************************************/
130
131
    /**
132
     * @inheritdoc
133
     */
134
    protected function baseVariables(array &$variables = [])
135
    {
136
        $title = Craft::t('organizations', 'User Types');
137
138
        parent::baseVariables($variables);
139
        $variables['title'] .= ': ' . $title;
140
        $variables['crumbs'][] = [
141
            'label' => $title,
142
            'url' => UrlHelper::url($variables['baseCpPath'])
143
        ];
144
    }
145
}
146