CMSNicetiesMemberExtension   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 23
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A onBeforeWrite() 0 5 2
A updateCMSFields() 0 7 2
1
<?php
2
3
namespace Sunnysideup\CMSNiceties\Extensions;
4
5
use SilverStripe\Core\Config\Config;
6
use SilverStripe\Forms\FieldList;
7
use SilverStripe\Core\Extension;
8
9
/**
10
 * Class \Sunnysideup\CMSNiceties\Extensions\CMSNicetiesMemberExtension
11
 *
12
 * @property Member|CMSNicetiesMemberExtension $owner
13
 */
14
class CMSNicetiesMemberExtension extends Extension
15
{
16
    private static $fix_locales = [
17
        'af_ZA' => 'en_GB',
18
    ];
19
20
    public function onBeforeWrite()
21
    {
22
        $owner = $this->getOwner();
23
        $localeFixes = Config::inst()->get(self::class, 'fix_locales') ?: [];
24
        $owner->Locale = $localeFixes[$owner->Locale] ?? $owner->Locale;
25
    }
26
27
    /**
28
     * Update Fields
29
     */
30
    public function updateCMSFields(FieldList $fields)
31
    {
32
        $owner = $this->getOwner();
33
        $fields->removeByName('FailedLoginCount');
34
        if (!$owner->exists()) {
35
            //ugly-ish but works. Defaults and populateDefaults don't.
36
            $owner->Locale = "en_GB";
37
        }
38
    }
39
}
40