StatsInactiveUsers::main()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 26
ccs 0
cts 18
cp 0
rs 9.6666
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
/******************************************************************************
3
 * Wikipedia Account Creation Assistance tool                                 *
4
 * ACC Development Team. Please see team.json for a list of contributors.     *
5
 *                                                                            *
6
 * This is free and unencumbered software released into the public domain.    *
7
 * Please see LICENSE.md for the full licencing statement.                    *
8
 ******************************************************************************/
9
10
namespace Waca\Pages\Statistics;
11
12
use DateTime;
13
use PDO;
14
use Waca\DataObjects\User;
15
use Waca\Helpers\SearchHelpers\UserSearchHelper;
16
use Waca\Pages\PageUserManagement;
17
use Waca\Tasks\InternalPageBase;
18
19
class StatsInactiveUsers extends InternalPageBase
20
{
21
    public function main()
22
    {
23
        $this->setHtmlTitle('Inactive Users :: Statistics');
24
25
        $date = new DateTime();
26
        $date->modify("-90 days");
27
28
        $inactiveUsers = UserSearchHelper::get($this->getDatabase())
29
            ->byStatus('Active')
30
            ->lastActiveBefore($date)
31
            ->getRoleMap($roleMap)
32
            ->fetch();
33
34
        $this->assign('inactiveUsers', $inactiveUsers);
35
        $this->assign('roles', $roleMap);
36
        $this->assign('canDeactivate',
37
            $this->barrierTest('deactivate', User::getCurrent($this->getDatabase()), PageUserManagement::class));
38
39
        $immuneUsers = $this->getDatabase()
40
            ->query("SELECT user FROM userrole WHERE role IN ('toolRoot', 'checkuser', 'steward') GROUP BY user;")
41
            ->fetchAll(PDO::FETCH_COLUMN);
42
        
43
        $this->assign('immune', array_fill_keys($immuneUsers, true));
44
45
        $this->setTemplate('statistics/inactive-users.tpl');
46
        $this->assign('statsPageTitle', 'Inactive tool users');
47
    }
48
}
49