mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 19:51:09 -04:00
add domain verify feature
This commit is contained in:
@ -77,14 +77,6 @@ class DatabaseConfigurationController extends Controller
|
||||
|
||||
break;
|
||||
|
||||
case 'sqlsrv':
|
||||
$databaseData = [
|
||||
'driver' => 'sqlsrv',
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 1433,
|
||||
];
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -28,9 +28,10 @@ class RequirementsController extends Controller
|
||||
*/
|
||||
public function requirements()
|
||||
{
|
||||
$phpSupportInfo = $this->requirements->checkPHPversion(
|
||||
$phpSupportInfo = $this->requirements->checkPHPVersion(
|
||||
config('installer.core.minPhpVersion')
|
||||
);
|
||||
|
||||
$requirements = $this->requirements->check(
|
||||
config('installer.requirements')
|
||||
);
|
||||
|
||||
@ -78,6 +78,15 @@ class EnvironmentManager
|
||||
try {
|
||||
$this->checkDatabaseConnection($request);
|
||||
|
||||
$requirement = $this->checkVersionRequirements($request);
|
||||
|
||||
if ($requirement) {
|
||||
return [
|
||||
'error' => 'minimum_version_requirement',
|
||||
'requirement' => $requirement,
|
||||
];
|
||||
}
|
||||
|
||||
if (\Schema::hasTable('users')) {
|
||||
return [
|
||||
'error' => 'database_should_be_empty',
|
||||
@ -134,6 +143,7 @@ class EnvironmentManager
|
||||
{
|
||||
$connection = $request->database_connection;
|
||||
|
||||
$settings = config("database.connections.$connection");
|
||||
$settings = config("database.connections.$connection");
|
||||
|
||||
$connectionArray = array_merge($settings, [
|
||||
@ -161,6 +171,60 @@ class EnvironmentManager
|
||||
return DB::connection()->getPdo();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DatabaseEnvironmentRequest $request
|
||||
* @return bool
|
||||
*/
|
||||
private function checkVersionRequirements(DatabaseEnvironmentRequest $request)
|
||||
{
|
||||
$connection = $request->database_connection;
|
||||
|
||||
$checker = new RequirementsChecker();
|
||||
|
||||
$phpSupportInfo = $checker->checkPHPVersion(
|
||||
config('crater.min_php_version')
|
||||
);
|
||||
|
||||
if (! $phpSupportInfo['supported']) {
|
||||
return $phpSupportInfo;
|
||||
}
|
||||
|
||||
$dbSupportInfo = [];
|
||||
|
||||
switch ($connection) {
|
||||
case 'mysql':
|
||||
$dbSupportInfo = $checker->checkMysqlVersion(
|
||||
config('crater.min_mysql_version')
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
case 'pgsql':
|
||||
$conn = pg_connect("host={$request->database_hostname} port={$request->database_port} dbname={$request->database_name} user={$request->database_username} password={$request->database_password}");
|
||||
$dbSupportInfo = $checker->checkPgsqlVersion(
|
||||
$conn,
|
||||
config('crater.min_pgsql_version')
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
case 'sqlite':
|
||||
$dbSupportInfo = $checker->checkSqliteVersion(
|
||||
config('crater.min_sqlite_version')
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (! $dbSupportInfo['supported']) {
|
||||
return $dbSupportInfo;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the mail content to the .env file.
|
||||
*
|
||||
|
||||
@ -2,6 +2,8 @@
|
||||
|
||||
namespace Crater\Space;
|
||||
|
||||
use SQLite3;
|
||||
|
||||
class RequirementsChecker
|
||||
{
|
||||
/**
|
||||
@ -63,7 +65,7 @@ class RequirementsChecker
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function checkPHPversion(string $minPhpVersion = null)
|
||||
public function checkPHPVersion(string $minPhpVersion = null)
|
||||
{
|
||||
$minVersionPhp = $minPhpVersion;
|
||||
$currentPhpVersion = $this->getPhpVersionInfo();
|
||||
@ -113,4 +115,112 @@ class RequirementsChecker
|
||||
{
|
||||
return $this->_minPhpVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check PHP version requirement.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function checkMysqlVersion(string $minMysqlVersion = null)
|
||||
{
|
||||
$minVersionMysql = $minMysqlVersion;
|
||||
$currentMysqlVersion = $this->getMysqlVersionInfo();
|
||||
$supported = false;
|
||||
|
||||
if (version_compare($currentMysqlVersion, $minVersionMysql) >= 0) {
|
||||
$supported = true;
|
||||
}
|
||||
|
||||
$phpStatus = [
|
||||
'current' => $currentMysqlVersion,
|
||||
'minimum' => $minVersionMysql,
|
||||
'supported' => $supported,
|
||||
];
|
||||
|
||||
return $phpStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current Mysql version information.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function getMysqlVersionInfo()
|
||||
{
|
||||
$currentVersion = explode(' ', mysqli_get_client_info());
|
||||
|
||||
return $currentVersion[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Sqlite version requirement.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function checkSqliteVersion(string $minSqliteVersion = null)
|
||||
{
|
||||
$minVersionSqlite = $minSqliteVersion;
|
||||
$currentSqliteVersion = $this->getSqliteVersionInfo();
|
||||
$supported = false;
|
||||
|
||||
if (version_compare($currentSqliteVersion, $minVersionSqlite) >= 0) {
|
||||
$supported = true;
|
||||
}
|
||||
|
||||
$phpStatus = [
|
||||
'current' => $currentSqliteVersion,
|
||||
'minimum' => $minVersionSqlite,
|
||||
'supported' => $supported,
|
||||
];
|
||||
|
||||
return $phpStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current Sqlite version information.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function getSqliteVersionInfo()
|
||||
{
|
||||
$currentVersion = SQLite3::version();
|
||||
|
||||
return $currentVersion['versionString'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Pgsql version requirement.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function checkPgsqlVersion($conn, string $minPgsqlVersion = null)
|
||||
{
|
||||
$minVersionPgsql = $minPgsqlVersion;
|
||||
$currentPgsqlVersion = $this->getPgsqlVersionInfo($conn);
|
||||
$supported = false;
|
||||
|
||||
if (version_compare($currentPgsqlVersion, $minVersionPgsql) >= 0) {
|
||||
$supported = true;
|
||||
}
|
||||
|
||||
$phpStatus = [
|
||||
'current' => $currentPgsqlVersion,
|
||||
'minimum' => $minVersionPgsql,
|
||||
'supported' => $supported,
|
||||
];
|
||||
|
||||
return $phpStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current Pgsql version information.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function getPgsqlVersionInfo($conn)
|
||||
{
|
||||
$currentVersion = pg_version($conn);
|
||||
|
||||
return $currentVersion['server'];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user