Undefined index: enabled after installation
Closed this issue · 3 comments
rjgux commented
Describe the bug
After installing the latest version of the plugin (3.1.1
) we get the following ErrorException - Undefined index: enabled
. We were previously running version 2.2 of the plugin
/**
* Applies header protection.
*/
public function applyHeaderProtection()
{
$settings = Sherlock::$plugin->settings->headerProtectionSettings;
if ($settings['enabled']) {
foreach ($settings['headers'] as $header) {
if ($header[0]) {
Craft::$app->getResponse()->getHeaders()->set(trim($header[1]), trim($header[2]));
}
}
}
Screenshots
Versions
- Plugin version: 3.1.1
- Craft version: 3.6.11.1
Full stack trace -
yii\base\ErrorException: Undefined index: enabled in /Users/rich/Sites/aub/vendor/putyourlightson/craft-sherlock/src/services/SecurityService.php:64
Stack trace:
#0 /Users/rich/Sites/aub/vendor/craftcms/cms/src/web/ErrorHandler.php(77): yii\base\ErrorHandler->handleError(8, 'Undefined index...', '/Users/rich/Sit...', 64)
#1 /Users/rich/Sites/aub/vendor/putyourlightson/craft-sherlock/src/services/SecurityService.php(64): craft\web\ErrorHandler->handleError(8, 'Undefined index...', '/Users/rich/Sit...', 64, Array)
#2 /Users/rich/Sites/aub/vendor/putyourlightson/craft-sherlock/src/Sherlock.php(83): putyourlightson\sherlock\services\SecurityService->applyHeaderProtection()
#3 /Users/rich/Sites/aub/vendor/yiisoft/yii2/base/BaseObject.php(109): putyourlightson\sherlock\Sherlock->init()
#4 /Users/rich/Sites/aub/vendor/yiisoft/yii2/base/Module.php(158): yii\base\BaseObject->__construct(Array)
#5 /Users/rich/Sites/aub/vendor/craftcms/cms/src/base/Plugin.php(115): yii\base\Module->__construct('sherlock', Object(craft\web\Application), Array)
#6 [internal function]: craft\base\Plugin->__construct('sherlock', Object(craft\web\Application), Array)
#7 /Users/rich/Sites/aub/vendor/yiisoft/yii2/di/Container.php(420): ReflectionClass->newInstanceArgs(Array)
#8 /Users/rich/Sites/aub/vendor/yiisoft/yii2/di/Container.php(171): yii\di\Container->build('putyourlightson...', Array, Array)
#9 /Users/rich/Sites/aub/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('putyourlightson...', Array, Array)
#10 /Users/rich/Sites/aub/vendor/craftcms/cms/src/services/Plugins.php(934): yii\BaseYii::createObject(Array, Array)
#11 /Users/rich/Sites/aub/vendor/craftcms/cms/src/services/Plugins.php(233): craft\services\Plugins->createPlugin('sherlock', Array)
#12 /Users/rich/Sites/aub/vendor/craftcms/cms/src/base/ApplicationTrait.php(1442): craft\services\Plugins->loadPlugins()
#13 /Users/rich/Sites/aub/vendor/craftcms/cms/src/web/Application.php(93): craft\web\Application->_postInit()
#14 /Users/rich/Sites/aub/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\web\Application->init()
#15 /Users/rich/Sites/aub/vendor/yiisoft/yii2/base/Application.php(212): yii\base\BaseObject->__construct(Array)
#16 [internal function]: yii\base\Application->__construct(Array)
#17 /Users/rich/Sites/aub/vendor/yiisoft/yii2/di/Container.php(420): ReflectionClass->newInstanceArgs(Array)
#18 /Users/rich/Sites/aub/vendor/yiisoft/yii2/di/Container.php(171): yii\di\Container->build('craft\\web\\Appli...', Array, Array)
#19 /Users/rich/Sites/aub/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('craft\\web\\Appli...', Array, Array)
#20 /Users/rich/Sites/aub/vendor/craftcms/cms/bootstrap/bootstrap.php(246): yii\BaseYii::createObject(Array)
#21 /Users/rich/Sites/aub/vendor/craftcms/cms/bootstrap/web.php(51): require('/Users/rich/Sit...')
#22 /Users/rich/Sites/aub/public/index.php(20): require('/Users/rich/Sit...')
#23 /Users/rich/.composer/vendor/laravel/valet/server.php(191): require('/Users/rich/Sit...')
#24 {main}
rjgux commented
If it helps this is the output of exit(print_r(Sherlock::$plugin->settings));
putyourlightson\sherlock\models\SettingsModel Object
(
[monitor] =>
[notificationEmailAddresses] => *system email*
[highSecurityLevel] => 1
[headerProtectionSettings] => Array
(
[-] =>
)
[contentSecurityPolicySettings] => Array
(
[-] =>
)
[apiKey] => luRZC2oCBtduD4KS0pNIY4NltCkHH5Yf
[restrictControlPanelIpAddresses] =>
[restrictFrontEndIpAddresses] =>
[integrationTypes] => Array
(
)
[integrationSettings] => Array
(
)
[disabledTests] => Array
(
)
[criticalCraftUpdates] => Array
(
[-] =>
)
[criticalPluginUpdates] => Array
(
[-] =>
)
[craftUpdates] => Array
(
)
[pluginUpdates] => Array
(
)
[httpsControlPanel] => Array
(
[-] =>
)
[httpsFrontEnd] => Array
(
[-] =>
)
[craftFilePermissions] => Array
(
[-] =>
)
[craftFolderPermissions] => Array
(
[-] =>
)
[craftFoldersAboveWebRoot] => Array
(
[-] =>
)
[phpVersion] => Array
(
[-] =>
)
[phpComposerVersion] => Array
(
[-] =>
)
[adminUsername] => Array
(
)
[requireEmailVerification] => Array
(
[-] =>
)
[webAliasInSiteBaseUrl] => Array
(
[-] =>
)
[webAliasInVolumeBaseUrl] => Array
(
[-] =>
)
[contentSecurityPolicy] => Array
(
[-] =>
)
[cors] => Array
(
[-] =>
)
[expectCT] => Array
(
[-] =>
)
[referrerPolicy] => Array
(
[-] =>
)
[strictTransportSecurity] => Array
(
[-] =>
)
[xContentTypeOptions] => Array
(
[-] =>
)
[xFrameOptions] => Array
(
[-] =>
)
[xXssProtection] => Array
(
)
[blowfishHashCost] => Array
(
[-] =>
)
[cooldownDuration] => Array
(
[-] =>
)
[cpTrigger] => Array
(
)
[defaultDirMode] => Array
(
[-] =>
)
[defaultFileMode] => Array
(
[-] =>
)
[defaultTokenDuration] => Array
(
[-] =>
)
[deferPublicRegistrationPassword] => Array
(
)
[devMode] => Array
(
[-] =>
)
[elevatedSessionDuration] => Array
(
[-] =>
)
[enableCsrfProtection] => Array
(
[-] =>
)
[invalidLoginWindowDuration] => Array
(
[-] =>
)
[maxInvalidLogins] => Array
(
[-] =>
)
[preventUserEnumeration] => Array
(
[-] =>
)
[rememberedUserSessionDuration] => Array
(
[-] =>
)
[requireMatchingUserAgentForSession] => Array
(
)
[requireUserAgentAndIpForSession] => Array
(
)
[sanitizeSvgUploads] => Array
(
[-] =>
)
[testToEmailAddress] => Array
(
[-] =>
)
[translationDebugOutput] => Array
(
[-] =>
)
[useSecureCookies] => Array
(
[-] =>
)
[userSessionDuration] => Array
(
[-] =>
)
[verificationCodeDuration] => Array
(
[-] =>
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
[beforeValidate] => Array
(
[0] => Array
(
[0] => Array
(
[0] => craft\behaviors\EnvAttributeParserBehavior Object
(
[owner] => putyourlightson\sherlock\models\SettingsModel Object
*RECURSION*
[attributes] => Array
(
[0] => apiKey
)
[_values:craft\behaviors\EnvAttributeParserBehavior:private] =>
[_attachedEvents:yii\base\Behavior:private] => Array
(
[beforeValidate] => beforeValidate
[afterValidate] => afterValidate
)
)
[1] => beforeValidate
)
[1] =>
)
)
[afterValidate] => Array
(
[0] => Array
(
[0] => Array
(
[0] => craft\behaviors\EnvAttributeParserBehavior Object
(
[owner] => putyourlightson\sherlock\models\SettingsModel Object
*RECURSION*
[attributes] => Array
(
[0] => apiKey
)
[_values:craft\behaviors\EnvAttributeParserBehavior:private] =>
[_attachedEvents:yii\base\Behavior:private] => Array
(
[beforeValidate] => beforeValidate
[afterValidate] => afterValidate
)
)
[1] => afterValidate
)
[1] =>
)
)
)
[_eventWildcards:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
[parser] => craft\behaviors\EnvAttributeParserBehavior Object
(
[owner] => putyourlightson\sherlock\models\SettingsModel Object
*RECURSION*
[attributes] => Array
(
[0] => apiKey
)
[_values:craft\behaviors\EnvAttributeParserBehavior:private] =>
[_attachedEvents:yii\base\Behavior:private] => Array
(
[beforeValidate] => beforeValidate
[afterValidate] => afterValidate
)
)
)
)
bencroker commented
It looks like the update migration did not run or the changes were not applied. The easiest fix in this case is to uninstall the plugin from the CP or console command, then install again. Note that this will reset your settings.
rjgux commented
Thanks @bencroker, I'll do that and report back.