Passed
Pull Request — master (#5)
by Robbie
02:09
created

LDAPCreateGroupTask::run()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 32
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 18
nc 4
nop 1
dl 0
loc 32
rs 8.5806
c 1
b 0
f 0
1
<?php
2
3
use SilverStripe\Core\Config\Config;
4
use SilverStripe\Dev\BuildTask;
5
use SilverStripe\LDAP\Services\LDAPService;
6
use SilverStripe\ORM\DataObject;
7
8
class LDAPCreateGroupTask extends BuildTask
9
{
10
    private static $segment = 'LDAPCreateGroupTask';
0 ignored issues
show
Unused Code introduced by
The property $segment is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
11
12
    private static $dependencies = [
0 ignored issues
show
Unused Code introduced by
The property $dependencies is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
13
        'ldapService' => '%$' . LDAPService::class,
14
    ];
15
16
    public function run($request)
17
    {
18
        $logFn = function ($message) {
19
            echo $message, PHP_EOL;
20
        };
21
22
        $group = \SilverStripe\Security\Group::get()->byID($request->getVar('id'));
23
        $groupCode = $request->getVar('code');
24
25
        $dn = LDAPService::config()->get('new_groups_dn');
26
27
        $dn = sprintf('CN=%s,%s', $groupCode, $dn);
28
        $data = $this->ldapService->getGroupByDN($dn);
0 ignored issues
show
Bug Best Practice introduced by
The property ldapService does not exist on LDAPCreateGroupTask. Did you maybe forget to declare it?
Loading history...
29
        if (!empty($data['objectguid'])) {
30
            if (is_callable($logFn)) {
31
                $logFn(sprintf('* Using existing LDAP group "%s"', $groupCode));
32
            }
33
            $group->GUID = $data['objectguid'];
34
        } else {
35
            if (is_callable($logFn)) {
36
                $logFn(sprintf('* Creating new LDAP group "%s"', $groupCode));
37
            }
38
            $group->Title = $groupCode;
39
            $this->ldapService->createLDAPGroup($group);
40
        }
41
42
        // Config::nest();
43
        // Config::modify()->set(DataObject::class, 'validation_enabled', false);
44
        $group->write();
45
        // Config::unnest();
46
47
        echo 'Done', PHP_EOL;
48
    }
49
}
50