FEATURE #2048: another work done on permissions
This commit is contained in:
@@ -1,19 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\CMS\Handlers;
|
||||
|
||||
use App\CMS\Contracts\Modules\AppHandler;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Content\Content;
|
||||
use App\Models\FileManager\File;
|
||||
|
||||
/**
|
||||
* Class Handler
|
||||
*
|
||||
* Handler is a class which handles module-specific behaviour which cannot be done by module itself, resp. cannot be
|
||||
* done by some abstract magic.
|
||||
*
|
||||
* @package App\CMS\Handlers\
|
||||
*/
|
||||
abstract class Handler extends BaseHandler implements AppHandler
|
||||
abstract class AdminHandler extends BaseHandler implements AppHandler
|
||||
{
|
||||
public static function getHistoryHandler()
|
||||
{
|
||||
@@ -22,26 +20,38 @@ abstract class Handler extends BaseHandler implements AppHandler
|
||||
|
||||
public static function getExtendedFormSections()
|
||||
{
|
||||
return [
|
||||
$formParts = [
|
||||
'basicInfo' => trans('admin/contents.basicInfo'),
|
||||
'meta' => trans('admin/contents.metaOptions'),
|
||||
'publication' => trans('admin/contents.publicationOptions'),
|
||||
'appearance' => trans('admin/contents.appearance'),
|
||||
'files' => trans('admin/contents.files')
|
||||
];
|
||||
|
||||
if (\Auth::user()->cannot('upload', File::class)) {
|
||||
unset($formParts['files']);
|
||||
}
|
||||
|
||||
return $formParts;
|
||||
}
|
||||
|
||||
public static function getExtendedFormInputsCreate()
|
||||
{
|
||||
return [
|
||||
$formParts = [
|
||||
'basicInfo' => 'admin.content.formParts.basicInformation',
|
||||
'meta' => 'admin.content.formParts.metaInformation',
|
||||
'publication' => 'admin.content.formParts.publicationSetup',
|
||||
'appearance' => 'admin.content.formParts.appearance',
|
||||
'files' => 'admin.content.formParts.files'
|
||||
];
|
||||
|
||||
if (\Auth::user()->cannot('upload', File::class)) {
|
||||
unset($formParts['files']);
|
||||
}
|
||||
|
||||
return $formParts;
|
||||
}
|
||||
|
||||
|
||||
public static function getExtendedFormInputsEdit()
|
||||
{
|
||||
return self::getExtendedFormInputsCreate();
|
||||
@@ -6,6 +6,7 @@ use App\CMS\Contracts\Modules\BaseModuleHandler;
|
||||
use App\CMS\Enumerations\TemplatePathsHumanReadableRootOnly;
|
||||
use App\CMS\Enumerations\WidgetTypes;
|
||||
use App\Models\ActionLog\ActionLogType;
|
||||
use App\Models\Content\Content;
|
||||
use App\Models\FileManager\File;
|
||||
use App\Models\Settings;
|
||||
use App\Models\Templates\Template;
|
||||
@@ -38,9 +39,11 @@ abstract class BaseHandler implements BaseModuleHandler
|
||||
* Content pages
|
||||
* Submenus can be registered later
|
||||
*/
|
||||
$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']);
|
||||
if ($user->can('manage', Content::class)) {
|
||||
$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']);
|
||||
}
|
||||
|
||||
/**
|
||||
* File manager
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\CMS\Handlers\Handler;
|
||||
use App\CMS\Handlers\AdminHandler;
|
||||
use App\CMS\Repositories\Module as ModuleRepository;
|
||||
use Closure;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -26,7 +26,7 @@ class AdminMenuRegistrator
|
||||
|
||||
// create menu
|
||||
$user = \Auth::user();
|
||||
Handler::registerAdminMenu($user);
|
||||
AdminHandler::registerAdminMenu($user);
|
||||
|
||||
$modules = app(ModuleRepository::class)->all();
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ class ContentPolicy extends BasicPolicy
|
||||
*/
|
||||
public function update(User $user, Content $content)
|
||||
{
|
||||
if (!$user->hasAbility('update-contents-' . $content->module->alias)) {
|
||||
return false;
|
||||
}
|
||||
// if (!$user->hasAbility('update-contents-' . $content->module->alias)) {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
if ($user->id != $content->user_id) {
|
||||
return $user->hasAbility('update-contents') && $user->hasAbility('update-all-contents');
|
||||
|
||||
@@ -19,7 +19,7 @@ class FilesPolicy extends BasicPolicy
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(User $user, File $file)
|
||||
public function upload(User $user)
|
||||
{
|
||||
return $user->hasAbility('upload-files');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user