package installer
This commit is contained in:
56
app/Http/Middleware/Installer/canInstall.php
Normal file
56
app/Http/Middleware/Installer/canInstall.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware\Installer;
|
||||
|
||||
use Closure;
|
||||
|
||||
class canInstall
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return \Illuminate\Http\RedirectResponse|mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
dd($this->alreadyInstalled());
|
||||
if ($this->alreadyInstalled()) {
|
||||
$installedRedirect = config('installer.installedAlreadyAction');
|
||||
|
||||
switch ($installedRedirect) {
|
||||
case 'route':
|
||||
$routeName = config('installer.installed.redirectOptions.route.name');
|
||||
$data = config('installer.installed.redirectOptions.route.message');
|
||||
return redirect()->route($routeName)->with(['data' => $data]);
|
||||
break;
|
||||
case 'abort':
|
||||
abort(config('installer.installed.redirectOptions.abort.type'));
|
||||
break;
|
||||
|
||||
case 'dump':
|
||||
$dump = config('installer.installed.redirectOptions.dump.data');
|
||||
break;
|
||||
|
||||
case '404':
|
||||
case 'default':
|
||||
default:
|
||||
abort(404);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* If application is already installed.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function alreadyInstalled()
|
||||
{
|
||||
return file_exists(storage_path('installed'));
|
||||
}
|
||||
}
|
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