diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 15177436..d5b08299 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -53,7 +53,6 @@ class Kernel extends HttpKernel \App\Http\Middleware\EncryptCookies::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\CheckInstalled::class, ], 'web' => [ diff --git a/app/Http/Middleware/CheckInstalled.php b/app/Http/Middleware/CheckInstalled.php deleted file mode 100644 index e756a97d..00000000 --- a/app/Http/Middleware/CheckInstalled.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @created 2023-04-07 15:46:13 - * @modified 2023-04-07 15:46:13 - */ - -namespace App\Http\Middleware; - -use Closure; -use Illuminate\Http\Request; - -class CheckInstalled -{ - public function handle(Request $request, Closure $next) - { - if (installed()) { - exit('Already installed'); - } - - return $next($request); - } -} diff --git a/beike/Installer/Controllers/BaseController.php b/beike/Installer/Controllers/BaseController.php new file mode 100644 index 00000000..9b5fa05c --- /dev/null +++ b/beike/Installer/Controllers/BaseController.php @@ -0,0 +1,17 @@ +checkInstalled(); DB::statement('SET FOREIGN_KEY_CHECKS = 0'); $rows = DB::select('SHOW TABLES'); $database = config('database.connections.mysql.database'); diff --git a/beike/Installer/Controllers/EnvironmentController.php b/beike/Installer/Controllers/EnvironmentController.php index c96f6192..0651e23d 100644 --- a/beike/Installer/Controllers/EnvironmentController.php +++ b/beike/Installer/Controllers/EnvironmentController.php @@ -5,12 +5,11 @@ namespace Beike\Installer\Controllers; use Beike\Installer\Helpers\EnvironmentManager; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; -use Illuminate\Routing\Controller; use Illuminate\Routing\Redirector; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; -class EnvironmentController extends Controller +class EnvironmentController extends BaseController { /** * @var EnvironmentManager @@ -32,6 +31,7 @@ class EnvironmentController extends Controller */ public function index() { + $this->checkInstalled(); $steps = 4; return view('installer::environment-wizard', compact('steps')); @@ -46,6 +46,7 @@ class EnvironmentController extends Controller */ public function saveWizard(Request $request, Redirector $redirect): RedirectResponse { + $this->checkInstalled(); $rules = config('installer.environment.form.rules'); $messages = [ 'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'), @@ -78,6 +79,7 @@ class EnvironmentController extends Controller */ public function validateDatabase(Request $request): array { + $this->checkInstalled(); $rules = config('installer.environment.form.rules'); $messages = [ 'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'), @@ -108,6 +110,7 @@ class EnvironmentController extends Controller */ private function checkDatabaseConnection(Request $request): bool|array { + $this->checkInstalled(); $connection = $request->input('database_connection'); $settings = config("database.connections.$connection"); diff --git a/beike/Installer/Controllers/FinalController.php b/beike/Installer/Controllers/FinalController.php index 4fb40035..e8e57148 100644 --- a/beike/Installer/Controllers/FinalController.php +++ b/beike/Installer/Controllers/FinalController.php @@ -5,9 +5,8 @@ namespace Beike\Installer\Controllers; use Beike\Installer\Helpers\EnvironmentManager; use Beike\Installer\Helpers\FinalInstallManager; use Beike\Installer\Helpers\InstalledFileManager; -use Illuminate\Routing\Controller; -class FinalController extends Controller +class FinalController extends BaseController { /** * Update installed file and display finished view. @@ -19,6 +18,8 @@ class FinalController extends Controller */ public function index(InstalledFileManager $fileManager, FinalInstallManager $finalInstall, EnvironmentManager $environment) { + $this->checkInstalled(); + $finalMessages = $finalInstall->runFinal(); $finalStatusMessage = $fileManager->update(); $finalEnvFile = $environment->getEnvContent(); diff --git a/beike/Installer/Controllers/PermissionsController.php b/beike/Installer/Controllers/PermissionsController.php index 9501a293..2ddaf115 100644 --- a/beike/Installer/Controllers/PermissionsController.php +++ b/beike/Installer/Controllers/PermissionsController.php @@ -3,9 +3,8 @@ namespace Beike\Installer\Controllers; use Beike\Installer\Helpers\PermissionsChecker; -use Illuminate\Routing\Controller; -class PermissionsController extends Controller +class PermissionsController extends BaseController { /** * @var PermissionsChecker @@ -17,9 +16,6 @@ class PermissionsController extends Controller */ public function __construct(PermissionsChecker $checker) { - if (installed()) { - exit('Already installed'); - } $this->permissions = $checker; } @@ -30,6 +26,7 @@ class PermissionsController extends Controller */ public function index() { + $this->checkInstalled(); $permissions = $this->permissions->check( config('installer.permissions') ); diff --git a/beike/Installer/Controllers/RequirementsController.php b/beike/Installer/Controllers/RequirementsController.php index 9cc27bb2..8d848972 100644 --- a/beike/Installer/Controllers/RequirementsController.php +++ b/beike/Installer/Controllers/RequirementsController.php @@ -3,9 +3,8 @@ namespace Beike\Installer\Controllers; use Beike\Installer\Helpers\RequirementsChecker; -use Illuminate\Routing\Controller; -class RequirementsController extends Controller +class RequirementsController extends BaseController { /** * @var RequirementsChecker @@ -17,9 +16,6 @@ class RequirementsController extends Controller */ public function __construct(RequirementsChecker $checker) { - if (installed()) { - exit('Already installed'); - } $this->requirements = $checker; } @@ -30,6 +26,7 @@ class RequirementsController extends Controller */ public function index() { + $this->checkInstalled(); $phpSupportInfo = $this->requirements->checkPHPversion( config('installer.core.minPhpVersion') ); diff --git a/beike/Installer/Controllers/WelcomeController.php b/beike/Installer/Controllers/WelcomeController.php index 34fa95f3..8b76c6db 100644 --- a/beike/Installer/Controllers/WelcomeController.php +++ b/beike/Installer/Controllers/WelcomeController.php @@ -11,10 +11,9 @@ namespace Beike\Installer\Controllers; -use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Redirect; -class WelcomeController extends Controller +class WelcomeController extends BaseController { private $languages = [ 'zh_cn' => '简体中文', @@ -23,10 +22,7 @@ class WelcomeController extends Controller public function index() { - if (installed()) { - exit('Already installed'); - } - + $this->checkInstalled(); $data['languages'] = $this->languages; $data['locale'] = $_COOKIE['locale'] ?? 'zh_cn'; $data['steps'] = 1;