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\Contracts\Modules\BaseModuleHandler;
|
||||||
use App\CMS\Enumerations\TemplatePathsHumanReadableRootOnly;
|
use App\CMS\Enumerations\TemplatePathsHumanReadableRootOnly;
|
||||||
use App\CMS\Enumerations\WidgetTypes;
|
use App\CMS\Enumerations\WidgetTypes;
|
||||||
|
use App\CMS\Repositories\Module;
|
||||||
use App\Models\ActionLog\ActionLog;
|
use App\Models\ActionLog\ActionLog;
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\FileManager\File;
|
use App\Models\FileManager\File;
|
||||||
@@ -39,7 +40,9 @@ abstract class BaseHandler implements BaseModuleHandler
|
|||||||
* Content pages
|
* Content pages
|
||||||
* Submenus can be registered later
|
* 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) {
|
$menu->dropdown(trans('admin/mainMenu.contentPages'), function ($sub) {
|
||||||
$sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 10000, ['icon' => 'fa fa-fw fa-list']);
|
$sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 10000, ['icon' => 'fa fa-fw fa-list']);
|
||||||
}, 20, ['icon' => 'fa fa-fw fa-database']);
|
}, 20, ['icon' => 'fa fa-fw fa-database']);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\ModuleManager;
|
namespace App\CMS\ModuleManager;
|
||||||
|
|
||||||
use App\CMS\Contracts\Modules\AppHandler;
|
use App\CMS\Contracts\Modules\AppHandler;
|
||||||
use App\CMS\Contracts\Modules\TemplateHandler;
|
use App\CMS\Contracts\Modules\TemplateHandler;
|
||||||
+3
-3
@@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\ModuleManager\Providers;
|
namespace App\CMS\ModuleManager\Providers;
|
||||||
|
|
||||||
use App\CMS\Repositories\Module as ModuleRepository;
|
use App\CMS\Repositories\Module as ModuleRepository;
|
||||||
use App\Models\Module;
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class ModuleManager extends 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
|
// this service provider needs published config - config is merged right after this service provider
|
||||||
$modules = app(ModuleRepository::class)->getOnlyModules();
|
$modules = app(ModuleRepository::class)->getOnlyModules();
|
||||||
|
|
||||||
|
// dd($modules);
|
||||||
|
|
||||||
// iterate over all modules and enable or disable them
|
// iterate over all modules and enable or disable them
|
||||||
foreach ($modules as $module) {
|
foreach ($modules as $module) {
|
||||||
if (isset($module->module_settings['providers']) && !empty($module->module_settings['providers'])) {
|
if (isset($module->module_settings['providers']) && !empty($module->module_settings['providers'])) {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\ModuleManager;
|
namespace App\CMS\ModuleManager;
|
||||||
|
|
||||||
use App\Models\Module;
|
use App\Models\Module;
|
||||||
use App\Models\Templates\TemplatePath;
|
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)
|
public function getCreateContentTitle(ModuleModel $module)
|
||||||
{
|
{
|
||||||
$pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]);
|
$pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]);
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Console\Commands\Modules;
|
namespace App\Console\Commands\Modules;
|
||||||
|
|
||||||
|
use App\CMS\ModuleManager\Installer;
|
||||||
use App\Models\Module;
|
use App\Models\Module;
|
||||||
use App\ModuleManager\Installer;
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|||||||
@@ -2,19 +2,22 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Dashboard;
|
namespace App\Http\Controllers\Admin\Dashboard;
|
||||||
|
|
||||||
|
use App\CMS\Repositories\Module;
|
||||||
use App\Http\Controllers\Admin\Controller;
|
use App\Http\Controllers\Admin\Controller;
|
||||||
|
use App\Models\Content\Content;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class Dashboard extends Controller
|
class Dashboard extends Controller
|
||||||
{
|
{
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
// $data = unserialize(file_get_contents('/home/michal/decoded.bin'));
|
$contentModules = app(Module::class)->getContentModules();
|
||||||
//
|
|
||||||
// dd($data);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (\Auth::user()->can('manage', Content::class) && !$contentModules->isEmpty()) {
|
||||||
return redirect()->route('content.overview');
|
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 to register menus
|
||||||
try {
|
try {
|
||||||
// call_user_func([$module->handler, 'registerAdminMenu'], $user);
|
call_user_func([$module->handler, 'registerAdminMenu'], $user);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::debug('Error in ' . $module->handler . '::registerAdminMenu: ' . $e->getMessage());
|
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\View\ViewServiceProvider::class,
|
||||||
Illuminate\Notifications\NotificationServiceProvider::class,
|
Illuminate\Notifications\NotificationServiceProvider::class,
|
||||||
Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class,
|
Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class,
|
||||||
\App\ModuleManager\Providers\ModuleManager::class,
|
\App\CMS\ModuleManager\Providers\ModuleManager::class,
|
||||||
\Nwidart\Menus\MenusServiceProvider::class,
|
\Nwidart\Menus\MenusServiceProvider::class,
|
||||||
Franzose\ClosureTable\ClosureTableServiceProvider::class,
|
Franzose\ClosureTable\ClosureTableServiceProvider::class,
|
||||||
\Watson\Sitemap\SitemapServiceProvider::class,
|
\Watson\Sitemap\SitemapServiceProvider::class,
|
||||||
|
|||||||
+1
-1
@@ -5,6 +5,6 @@ return [
|
|||||||
'paths' => [
|
'paths' => [
|
||||||
'modules' => base_path('modules'),
|
'modules' => base_path('modules'),
|
||||||
'assets' => public_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