Merge branch 'authorization' into separate_modules
This commit is contained in:
@@ -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']);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\ModuleManager;
|
||||
namespace App\CMS\ModuleManager;
|
||||
|
||||
use App\CMS\Contracts\Modules\AppHandler;
|
||||
use App\CMS\Contracts\Modules\TemplateHandler;
|
||||
+3
-3
@@ -1,10 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\ModuleManager\Providers;
|
||||
namespace App\CMS\ModuleManager\Providers;
|
||||
|
||||
use App\CMS\Repositories\Module as ModuleRepository;
|
||||
use App\Models\Module;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class ModuleManager extends ServiceProvider
|
||||
@@ -18,6 +16,8 @@ class ModuleManager extends ServiceProvider
|
||||
// this service provider needs published config - config is merged right after this service provider
|
||||
$modules = app(ModuleRepository::class)->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'])) {
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace App\ModuleManager;
|
||||
namespace App\CMS\ModuleManager;
|
||||
|
||||
use App\Models\Module;
|
||||
use App\Models\Templates\TemplatePath;
|
||||
@@ -28,6 +28,15 @@ class Module extends Repository implements IModule
|
||||
}
|
||||
}
|
||||
|
||||
public function getContentModules()
|
||||
{
|
||||
return Cache::remember('enabled-content-modules', 3600, function () {
|
||||
return ModuleModel::where('enabled', true)
|
||||
->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();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'namespace' => 'Modules',
|
||||
'paths' => [
|
||||
'modules' => base_path('modules'),
|
||||
'assets' => public_path('modules'),
|
||||
'stubs' => base_path('app/CMS/Modules/Stubs'),
|
||||
]
|
||||
];
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+1
-1
@@ -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'),
|
||||
]
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user