FEATURE: do not require template to be set in admin

This commit is contained in:
Michal Kváček
2017-08-24 02:08:28 +02:00
parent 49bd38db50
commit ac8e3aeacc
3 changed files with 39 additions and 8 deletions
+3 -1
View File
@@ -2,6 +2,7 @@
namespace App\Http;
use App\Http\Middleware\TemplateChecker;
use App\Http\Middleware\Web\IncrementWidgetsViews;
use Illuminate\Auth\Middleware\Authorize;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
@@ -36,8 +37,9 @@ class Kernel extends HttpKernel
protected $middlewareGroups = [
'web' => [
CheckForMaintenanceMode::class,
TemplateChecker::class,
AddQueuedCookiesToResponse::class,
IncrementWidgetsViews::class
IncrementWidgetsViews::class,
],
'admin' => [
Middleware\Admin\Authenticate::class,
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Middleware;
use App\CMS\Helpers\CurrentTemplate;
use Closure;
class TemplateChecker
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
$template = CurrentTemplate::get();
if (!$template) {
throw new \ErrorException('Template is not set, cannot continue');
}
return $next($request);
}
}
+8 -7
View File
@@ -13,19 +13,15 @@ class TemplateServiceProvider extends ServiceProvider
{
public function boot()
{
$template = CurrentTemplate::get();
// ignore running from artisan
if (App::runningInConsole() || App::environment('testing')) {
if (App::runningInConsole() || App::environment('testing') || !$template) {
$this->publishViewResources();
return;
}
$template = CurrentTemplate::get();
if (!$template) {
throw new \ErrorException('Template is not set, cannot continue');
}
// include files
$files = isset($template->moduleSettings->files) ? $template->moduleSettings->files : [];
@@ -43,6 +39,11 @@ class TemplateServiceProvider extends ServiceProvider
$this->registerTemplatePaths($publicTemplates);
}
/**
* Register template paths from public templates
*
* @param $publicTemplates
*/
public function registerTemplatePaths($publicTemplates)
{
$modules = app(Module::class)