Passed
Push — master ( 9b36c0...600079 )
by Maurício
07:43
created

PrivilegesController::index()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 27
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 19
c 1
b 0
f 0
dl 0
loc 27
rs 9.6333
cc 2
nc 2
nop 1
1
<?php
2
/**
3
 * Controller for table privileges
4
 * @package PhpMyAdmin\Controllers\Table
5
 */
6
declare(strict_types=1);
7
8
namespace PhpMyAdmin\Controllers\Table;
9
10
use PhpMyAdmin\DatabaseInterface;
11
use PhpMyAdmin\Response;
12
use PhpMyAdmin\Server\Privileges;
13
use PhpMyAdmin\Template;
14
use PhpMyAdmin\Util;
15
16
/**
17
 * Controller for table privileges
18
 * @package PhpMyAdmin\Controllers\Table
19
 */
20
class PrivilegesController extends AbstractController
21
{
22
    /** @var Privileges */
23
    private $privileges;
24
25
    /**
26
     * @param Response          $response   Response object
27
     * @param DatabaseInterface $dbi        DatabaseInterface object
28
     * @param Template          $template   Template object
29
     * @param string            $db         Database name
30
     * @param string            $table      Table name
31
     * @param Privileges        $privileges Privileges object
32
     */
33
    public function __construct($response, $dbi, Template $template, $db, $table, Privileges $privileges)
34
    {
35
        parent::__construct($response, $dbi, $template, $db, $table);
36
        $this->privileges = $privileges;
37
    }
38
39
    /**
40
     * @param array $params Request parameters
41
     *
42
     * @return string
43
     */
44
    public function index(array $params): string
45
    {
46
        global $cfg, $pmaThemeImage, $text_dir, $is_createuser, $is_grantuser;
47
48
        $scriptName = Util::getScriptNameForOption(
49
            $cfg['DefaultTabTable'],
50
            'table'
51
        );
52
53
        $privileges = [];
54
        if ($this->dbi->isSuperuser()) {
55
            $privileges = $this->privileges->getAllPrivileges(
56
                $params['checkprivsdb'],
57
                $params['checkprivstable']
58
            );
59
        }
60
61
        return $this->template->render('table/privileges/index', [
62
            'db' => $params['checkprivsdb'],
63
            'table' => $params['checkprivstable'],
64
            'is_superuser' => $this->dbi->isSuperuser(),
65
            'table_url' => $scriptName,
66
            'pma_theme_image' => $pmaThemeImage,
67
            'text_dir' => $text_dir,
68
            'is_createuser' => $is_createuser,
69
            'is_grantuser' => $is_grantuser,
70
            'privileges' => $privileges,
71
        ]);
72
    }
73
}
74