StatsInactiveUsers   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 1
eloc 19
dl 0
loc 28
ccs 0
cts 19
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A main() 0 26 1
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