AdminExtension   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 24
dl 0
loc 37
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B onAfterInit() 0 35 6
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
}