/** * Bootstrap the application events. * * @param Router $router * @param Kernel $kernel * @return void */ public function boot(Router $router, Kernel $kernel) { // add router middleware $globalMiddleware = [UploadChecks::class]; $routerMiddleware = ['coaster.admin' => AdminAuth::class, 'coaster.guest' => GuestAuth::class]; event(new LoadMiddleware($globalMiddleware, $routerMiddleware)); foreach ($globalMiddleware as $globalMiddlewareClass) { $kernel->pushMiddleware($globalMiddlewareClass); } foreach ($routerMiddleware as $routerMiddlewareName => $routerMiddlewareClass) { $router->middleware($routerMiddlewareName, $routerMiddlewareClass); } // use coater guard and user provider $authGuard = Helpers\Cms\CoasterGuard::class; $authUserProvider = Providers\CoasterAuthUserProvider::class; event(new LoadAuth($authGuard, $authUserProvider)); if ($authGuard && $authUserProvider) { Auth::extend('coaster', function ($app) use($authGuard, $authUserProvider) { return new $authGuard('coasterguard', new $authUserProvider(), $app['session.store'], $app['request']); }); } // set cookie jar for cookies Auth::setCookieJar($this->app['cookie']); // load coaster views $adminViews = [base_path(trim(config('coaster::admin.view'), '/'))]; $frontendViews = [base_path(trim(config('coaster::frontend.view'), '/'))]; event(new SetViewPaths($adminViews, $frontendViews)); $this->loadViewsFrom($adminViews, 'coaster'); $this->loadViewsFrom($frontendViews, 'coasterCms'); // run routes if not in console $routeFile = __DIR__ . '/Http/routes.php'; event(new LoadRouteFile($routeFile)); if ($routeFile && file_exists($routeFile)) { include $routeFile; } // if in console and not installed, display notice if (App::runningInConsole() && !Install::isComplete()) { echo "Coaster Framework: CMS awaiting install, go to a web browser to complete installation\r\n"; } }
/** * Bootstrap the application events. * * @return void */ public function boot() { $db = false; try { if (Schema::hasTable('settings')) { $db = true; } } catch (\PDOException $e) { } $configFile = __DIR__ . '/../../config'; $useDatabaseSettings = $db; event(new LoadConfig($configFile, $useDatabaseSettings)); Setting::loadAll($configFile, 'coaster', $useDatabaseSettings); $overrideConfigValues = ['auth.guards.web.driver' => 'coaster', 'auth.providers.users.model' => User::class, 'croppa.src_dir' => public_path(), 'croppa.crops_dir' => public_path() . '/cache', 'croppa.path' => 'cache/(' . config('coaster::frontend.croppa_handle') . ')$']; event(new LoadedConfig($overrideConfigValues)); foreach ($overrideConfigValues as $attribute => $value) { app()->config->set($attribute, $value); } if (Install::isComplete()) { if (!$db) { abort(503, 'Database error, settings table could not be found'); } } }
} $updatesFile = storage_path(config('coaster::site.storage_path') . '/updates.json'); if (file_exists($updatesFile)) { $updateStatus = file_get_contents($updatesFile); $updateStatus = json_decode($updateStatus, true); } else { $updateStatus = []; } if (empty($updateStatus['storage']) || version_compare($updateStatus['storage'], 'v.5.2.39', '<')) { include __DIR__ . '/storageMove.php'; $updateStatus['storage'] = config('coaster::site.version'); file_put_contents($updatesFile, json_encode($updateStatus)); } if (empty($updateStatus['fileManager']) || version_compare($updateStatus['fileManager'], 'v.5.3.1', '<')) { include __DIR__ . '/fileManagerConfig.php'; $updateStatus['fileManager'] = config('coaster::site.version'); file_put_contents($updatesFile, json_encode($updateStatus)); } if (\CoasterCms\Helpers\Cms\Install::isComplete()) { if (empty($updateStatus['gallery']) || version_compare($updateStatus['gallery'], 'v.5.2.27', '<')) { include __DIR__ . '/galleryMoveFiles.php'; $updateStatus['gallery'] = config('coaster::site.version'); file_put_contents($updatesFile, json_encode($updateStatus)); } if (empty($updateStatus['migrations']) || version_compare($updateStatus['migrations'], config('coaster::site.version'), '<')) { include __DIR__ . '/databaseMigrations.php'; $updateStatus['migrations'] = config('coaster::site.version'); file_put_contents($updatesFile, json_encode($updateStatus)); } } include __DIR__ . '/publicAssets.php';