Files
2024-07-15 11:28:08 +02:00

78 lines
1.5 KiB
PHP

<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Solo\Alice\Check\Requirements;
use Awf\Container\Container;
use Solo\Alice\Check\Base;
use Akeeba\Engine\Factory;
use Exception;
use Awf\Text\Text;
/**
* Checks for database permissions (SHOW permissions)
*/
class DatabasePermissions extends Base
{
public function __construct(Container $container, $logFile = null)
{
$this->priority = 40;
$this->checkLanguageKey = 'COM_AKEEBA_ALICE_ANALYZE_REQUIREMENTS_DBPERMISSIONS';
parent::__construct($container, $logFile);
}
public function check()
{
$db = Factory::getDatabase();
// Can I execute SHOW statements?
try
{
$result = $db->setQuery('SHOW TABLES')->query();
}
catch (Exception $e)
{
$result = false;
}
if (!$result)
{
$this->setResult(-1);
$this->setErrorLanguageKey([
'COM_AKEEBA_ALICE_ANALYZE_REQUIREMENTS_DBPERMISSIONS_ERROR',
]);
return;
}
try
{
$result = $db->setQuery('SHOW CREATE TABLE ' . $db->nameQuote('#__ak_profiles'))->query();
}
catch (Exception $e)
{
$result = false;
}
if (!$result)
{
$this->setResult(-1);
$this->setErrorLanguageKey([
'COM_AKEEBA_ALICE_ANALYZE_REQUIREMENTS_DBPERMISSIONS_ERROR',
]);
return;
}
}
public function getSolution()
{
return Text::_('COM_AKEEBA_ALICE_ANALYZE_REQUIREMENTS_DBPERMISSIONS_SOLUTION');
}
}