AdminExtension::onAfterInit()   B
last analyzed

Complexity

Conditions 6
Paths 12

Size

Total Lines 35
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 23
dl 0
loc 35
rs 8.9297
c 0
b 0
f 0
cc 6
nc 12
nop 0
1
<?php
2
3
namespace DorsetDigital\DevWarning;
4
5
use SilverStripe\Control\Director;
6
use SilverStripe\Core\Environment;
7
use SilverStripe\Core\Extension;
8
use SilverStripe\View\Requirements;
9
10
11
class AdminExtension extends Extension
12
{
13
    public function onAfterInit()
14
    {
15
16
        $messages = [ ];
17
18
        $scriptTpl = <<<EOT
19
jQuery.noticeAdd({
20
  text: '%s',
21
  stay: false, 
22
  type: '%s'
23
});
24
EOT;
25
26
        if (Director::isDev()) {
27
            $messages[ ] = [
28
                'level' => 'warn',
29
                'message' => _t(__CLASS__ . '.DevModeWarning',
30
                    'Notice: This site is currently in development mode.  Please ensure that the correct security precautions are in place to protect it.')
31
            ];
32
        }
33
34
        if (Director::isLive() && (Environment::getEnv('SS_DEFAULT_ADMIN_PASSWORD') != '')) {
35
            $messages[ ] = [
36
                'level' => 'warn',
37
                'message' => _t(__CLASS__ . '.DefaultAdminWarning',
38
                    'Notice: A default administrator password is set in the site config.')
39
            ];
40
        }
41
42
        if (!empty($messages)) {
43
            $script = null;
44
            foreach ($messages as $message) {
45
                $script .= sprintf($scriptTpl, $message[ 'message' ], $message[ 'level' ]);
46
            }
47
            Requirements::customScript($script);
48
        }
49
    }
50
}