PrivilegesController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * Controller for table privileges
  4. */
  5. declare(strict_types=1);
  6. namespace PhpMyAdmin\Controllers\Table;
  7. use PhpMyAdmin\DatabaseInterface;
  8. use PhpMyAdmin\Response;
  9. use PhpMyAdmin\Server\Privileges;
  10. use PhpMyAdmin\Template;
  11. use PhpMyAdmin\Util;
  12. /**
  13. * Controller for table privileges
  14. */
  15. class PrivilegesController extends AbstractController
  16. {
  17. /** @var Privileges */
  18. private $privileges;
  19. /** @var DatabaseInterface */
  20. private $dbi;
  21. /**
  22. * @param Response $response
  23. * @param string $db Database name
  24. * @param string $table Table name
  25. * @param DatabaseInterface $dbi
  26. */
  27. public function __construct($response, Template $template, $db, $table, Privileges $privileges, $dbi)
  28. {
  29. parent::__construct($response, $template, $db, $table);
  30. $this->privileges = $privileges;
  31. $this->dbi = $dbi;
  32. }
  33. /**
  34. * @param array $params Request parameters
  35. */
  36. public function index(array $params): string
  37. {
  38. global $cfg, $text_dir, $PMA_Theme;
  39. $scriptName = Util::getScriptNameForOption(
  40. $cfg['DefaultTabTable'],
  41. 'table'
  42. );
  43. $privileges = [];
  44. if ($this->dbi->isSuperUser()) {
  45. $privileges = $this->privileges->getAllPrivileges(
  46. $params['checkprivsdb'],
  47. $params['checkprivstable']
  48. );
  49. }
  50. return $this->template->render('table/privileges/index', [
  51. 'db' => $params['checkprivsdb'],
  52. 'table' => $params['checkprivstable'],
  53. 'is_superuser' => $this->dbi->isSuperUser(),
  54. 'table_url' => $scriptName,
  55. 'theme_image_path' => $PMA_Theme->getImgPath(),
  56. 'text_dir' => $text_dir,
  57. 'is_createuser' => $this->dbi->isCreateUser(),
  58. 'is_grantuser' => $this->dbi->isGrantUser(),
  59. 'privileges' => $privileges,
  60. ]);
  61. }
  62. }