Passed
Pull Request — master (#405)
by Nic
10:54
created

EncryptionTask   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 8
c 1
b 0
f 0
dl 0
loc 38
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getMembers() 0 4 2
A updateEncryption() 0 5 2
A run() 0 3 1
1
<?php
2
3
namespace Dynamic\FoxyStripe\Tasks;
4
5
use SilverStripe\Dev\BuildTask;
6
use SilverStripe\ORM\DB;
7
use SilverStripe\Security\Member;
8
9
/**
10
 * Class EncryptionTask
11
 * @package Dynamic\FoxyStripe\Tasks
12
 */
13
class EncryptionTask extends BuildTask
14
{
15
    /**
16
     * @var string
17
     */
18
    protected $title = 'Foxy - Encryption Task';
19
20
    /**
21
     * @var string
22
     */
23
    private static $segment = 'foxy-encryption-task';
0 ignored issues
show
introduced by
The private property $segment is not used, and could be removed.
Loading history...
24
25
    /**
26
     * @param \SilverStripe\Control\HTTPRequest $request
27
     */
28
    public function run($request)
29
    {
30
        $this->updateEncryption();
31
    }
32
33
    /**
34
     *
35
     */
36
    protected function updateEncryption()
37
    {
38
        /** @var Member $member */
39
        foreach ($this->getMembers() as $member) {
40
            DB::prepared_query("UPDATE `Member` SET `PasswordEncryption` = ? WHERE `ID` = ?", ['sha1_v2.4', $member->ID]);
41
        }
42
    }
43
44
    /**
45
     * @return \Generator
46
     */
47
    protected function getMembers()
48
    {
49
        foreach (Member::get()->filter('PasswordEncryption:not', 'sha1_v2.4')->sort('ID') as $member) {
50
            yield $member;
51
        }
52
    }
53
}
54