diff --git a/app/CMS/Handlers/BaseHandler.php b/app/CMS/Handlers/BaseHandler.php index a86169d5..7bca4c1f 100644 --- a/app/CMS/Handlers/BaseHandler.php +++ b/app/CMS/Handlers/BaseHandler.php @@ -5,6 +5,7 @@ namespace App\CMS\Handlers; use App\CMS\Contracts\Modules\BaseModuleHandler; use App\CMS\Enumerations\TemplatePathsHumanReadableRootOnly; use App\CMS\Enumerations\WidgetTypes; +use App\CMS\Repositories\Module; use App\Models\ActionLog\ActionLog; use App\Models\Content\Content; use App\Models\FileManager\File; @@ -39,7 +40,9 @@ abstract class BaseHandler implements BaseModuleHandler * Content pages * Submenus can be registered later */ - if ($user->can('manage', Content::class)) { + $contentModules = app(Module::class)->getContentModules(); + + if ($user->can('manage', Content::class) && !$contentModules->isEmpty()) { $menu->dropdown(trans('admin/mainMenu.contentPages'), function ($sub) { $sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 10000, ['icon' => 'fa fa-fw fa-list']); }, 20, ['icon' => 'fa fa-fw fa-database']); diff --git a/app/ModuleManager/Installer.php b/app/CMS/ModuleManager/Installer.php similarity index 98% rename from app/ModuleManager/Installer.php rename to app/CMS/ModuleManager/Installer.php index d58b0898..7c8f473a 100644 --- a/app/ModuleManager/Installer.php +++ b/app/CMS/ModuleManager/Installer.php @@ -1,6 +1,6 @@ getOnlyModules(); +// dd($modules); + // iterate over all modules and enable or disable them foreach ($modules as $module) { if (isset($module->module_settings['providers']) && !empty($module->module_settings['providers'])) { diff --git a/app/ModuleManager/Uninstaller.php b/app/CMS/ModuleManager/Uninstaller.php similarity index 97% rename from app/ModuleManager/Uninstaller.php rename to app/CMS/ModuleManager/Uninstaller.php index 8cc49f3a..1406cbe5 100644 --- a/app/ModuleManager/Uninstaller.php +++ b/app/CMS/ModuleManager/Uninstaller.php @@ -1,5 +1,5 @@ where('manages_content', true) + ->get(); + }); + } + public function getCreateContentTitle(ModuleModel $module) { $pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]); @@ -64,8 +73,8 @@ class Module extends Repository implements IModule { return Cache::rememberForever('enabled-modules', function () { return ModuleModel::where('enabled', true) - ->where('is_template', false) - ->get(); + ->where('is_template', false) + ->get(); }); } diff --git a/app/Console/Commands/Modules/InstallModule.php b/app/Console/Commands/Modules/InstallModule.php index c5eb64a4..7dca198b 100644 --- a/app/Console/Commands/Modules/InstallModule.php +++ b/app/Console/Commands/Modules/InstallModule.php @@ -2,8 +2,8 @@ namespace App\Console\Commands\Modules; +use App\CMS\ModuleManager\Installer; use App\Models\Module; -use App\ModuleManager\Installer; use Illuminate\Console\Command; use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Support\Facades\Cache; diff --git a/app/Console/Commands/UninstallModule.php b/app/Console/Commands/Modules/UninstallModule.php similarity index 100% rename from app/Console/Commands/UninstallModule.php rename to app/Console/Commands/Modules/UninstallModule.php diff --git a/app/Http/Controllers/Admin/Dashboard/Dashboard.php b/app/Http/Controllers/Admin/Dashboard/Dashboard.php index f4979f7f..5dc5eef7 100644 --- a/app/Http/Controllers/Admin/Dashboard/Dashboard.php +++ b/app/Http/Controllers/Admin/Dashboard/Dashboard.php @@ -2,19 +2,22 @@ namespace App\Http\Controllers\Admin\Dashboard; +use App\CMS\Repositories\Module; use App\Http\Controllers\Admin\Controller; +use App\Models\Content\Content; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class Dashboard extends Controller { public function index(Request $request) { -// $data = unserialize(file_get_contents('/home/michal/decoded.bin')); -// -// dd($data); + $contentModules = app(Module::class)->getContentModules(); - - - return redirect()->route('content.overview'); + if (\Auth::user()->can('manage', Content::class) && !$contentModules->isEmpty()) { + return redirect()->route('content.overview'); + } else { + return redirect()->route('users.detail', ['user' => Auth::user()]); + } } } diff --git a/app/Http/Middleware/Admin/AdminMenuRegistrator.php b/app/Http/Middleware/Admin/AdminMenuRegistrator.php index 6baad6be..873b5bb2 100644 --- a/app/Http/Middleware/Admin/AdminMenuRegistrator.php +++ b/app/Http/Middleware/Admin/AdminMenuRegistrator.php @@ -38,7 +38,7 @@ class AdminMenuRegistrator // try to register menus try { -// call_user_func([$module->handler, 'registerAdminMenu'], $user); + call_user_func([$module->handler, 'registerAdminMenu'], $user); } catch (\Exception $e) { Log::debug('Error in ' . $module->handler . '::registerAdminMenu: ' . $e->getMessage()); } diff --git a/app/ModuleManager/Config/modules.php b/app/ModuleManager/Config/modules.php deleted file mode 100644 index 529abbaf..00000000 --- a/app/ModuleManager/Config/modules.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Modules', - 'paths' => [ - 'modules' => base_path('modules'), - 'assets' => public_path('modules'), - 'stubs' => base_path('app/CMS/Modules/Stubs'), - ] -]; diff --git a/config/app.php b/config/app.php index 106c737a..9e85b3c5 100644 --- a/config/app.php +++ b/config/app.php @@ -155,7 +155,7 @@ return [ Illuminate\View\ViewServiceProvider::class, Illuminate\Notifications\NotificationServiceProvider::class, Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class, - \App\ModuleManager\Providers\ModuleManager::class, + \App\CMS\ModuleManager\Providers\ModuleManager::class, \Nwidart\Menus\MenusServiceProvider::class, Franzose\ClosureTable\ClosureTableServiceProvider::class, \Watson\Sitemap\SitemapServiceProvider::class, diff --git a/config/modules.php b/config/modules.php index be87f6b5..5f975664 100644 --- a/config/modules.php +++ b/config/modules.php @@ -5,6 +5,6 @@ return [ 'paths' => [ 'modules' => base_path('modules'), 'assets' => public_path('modules'), - 'stubs' => base_path('app/ModuleManager/Stubs'), + 'stubs' => base_path('app/CMS/ModuleManager/Stubs'), ] ];