package installer
This commit is contained in:
64
app/Http/Middleware/Installer/canUpdate.php
Normal file
64
app/Http/Middleware/Installer/canUpdate.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware\Installer;
|
||||
|
||||
use Closure;
|
||||
|
||||
class canUpdate
|
||||
{
|
||||
use \App\Helpers\Installer\MigrationsHelper;
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
$updateEnabled = filter_var(config('installer.updaterEnabled'), FILTER_VALIDATE_BOOLEAN);
|
||||
switch ($updateEnabled) {
|
||||
case true:
|
||||
$canInstall = new canInstall;
|
||||
|
||||
// if the application has not been installed,
|
||||
// redirect to the installer
|
||||
if (! $canInstall->alreadyInstalled()) {
|
||||
return redirect()->route('LaravelInstaller::welcome');
|
||||
}
|
||||
|
||||
if ($this->alreadyUpdated()) {
|
||||
abort(404);
|
||||
}
|
||||
break;
|
||||
|
||||
case false:
|
||||
default:
|
||||
abort(404);
|
||||
break;
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* If application is already updated.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function alreadyUpdated()
|
||||
{
|
||||
$migrations = $this->getMigrations();
|
||||
$dbMigrations = $this->getExecutedMigrations();
|
||||
|
||||
// If the count of migrations and dbMigrations is equal,
|
||||
// then the update as already been updated.
|
||||
if (count($migrations) == count($dbMigrations)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Continue, the app needs an update
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user