PrivilegesController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Controller for database privileges
  4. */
  5. declare(strict_types=1);
  6. namespace PhpMyAdmin\Controllers\Database;
  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 database 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 DatabaseInterface $dbi
  25. */
  26. public function __construct($response, Template $template, $db, Privileges $privileges, $dbi)
  27. {
  28. parent::__construct($response, $template, $db);
  29. $this->privileges = $privileges;
  30. $this->dbi = $dbi;
  31. }
  32. /**
  33. * @param array $params Request parameters
  34. */
  35. public function index(array $params): string
  36. {
  37. global $cfg, $text_dir, $PMA_Theme;
  38. $scriptName = Util::getScriptNameForOption(
  39. $cfg['DefaultTabDatabase'],
  40. 'database'
  41. );
  42. $privileges = [];
  43. if ($this->dbi->isSuperUser()) {
  44. $privileges = $this->privileges->getAllPrivileges($params['checkprivsdb']);
  45. }
  46. return $this->template->render('database/privileges/index', [
  47. 'is_superuser' => $this->dbi->isSuperUser(),
  48. 'db' => $params['checkprivsdb'],
  49. 'database_url' => $scriptName,
  50. 'theme_image_path' => $PMA_Theme->getImgPath(),
  51. 'text_dir' => $text_dir,
  52. 'is_createuser' => $this->dbi->isCreateUser(),
  53. 'is_grantuser' => $this->dbi->isGrantUser(),
  54. 'privileges' => $privileges,
  55. ]);
  56. }
  57. }