diff --git a/app/CMS/Handlers/Handler.php b/app/CMS/Handlers/AdminHandler.php similarity index 75% rename from app/CMS/Handlers/Handler.php rename to app/CMS/Handlers/AdminHandler.php index 420fae52..4b3533a1 100644 --- a/app/CMS/Handlers/Handler.php +++ b/app/CMS/Handlers/AdminHandler.php @@ -1,19 +1,17 @@ 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(); diff --git a/app/CMS/Handlers/BaseHandler.php b/app/CMS/Handlers/BaseHandler.php index 40357e35..e52a4ec3 100644 --- a/app/CMS/Handlers/BaseHandler.php +++ b/app/CMS/Handlers/BaseHandler.php @@ -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 diff --git a/app/Http/Middleware/Admin/AdminMenuRegistrator.php b/app/Http/Middleware/Admin/AdminMenuRegistrator.php index 3291a92f..873b5bb2 100644 --- a/app/Http/Middleware/Admin/AdminMenuRegistrator.php +++ b/app/Http/Middleware/Admin/AdminMenuRegistrator.php @@ -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(); diff --git a/app/Policies/ContentPolicy.php b/app/Policies/ContentPolicy.php index a22587cd..86f5fb3e 100644 --- a/app/Policies/ContentPolicy.php +++ b/app/Policies/ContentPolicy.php @@ -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'); diff --git a/app/Policies/FilesPolicy.php b/app/Policies/FilesPolicy.php index 1c6c0841..7c8e5545 100644 --- a/app/Policies/FilesPolicy.php +++ b/app/Policies/FilesPolicy.php @@ -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'); } diff --git a/modules/Blog/Article/Handlers/Article.php b/modules/Blog/Article/Handlers/Article.php index 9a2b2615..f09ee57d 100644 --- a/modules/Blog/Article/Handlers/Article.php +++ b/modules/Blog/Article/Handlers/Article.php @@ -4,7 +4,7 @@ namespace Modules\Blog\Article\Handlers; use App\CMS\Contracts\Content\AdvancedContentModifier; use App\CMS\Contracts\Content\ContentTitles; use App\CMS\Contracts\Modules\InstallableModule; -use App\CMS\Handlers\Handler; +use App\CMS\Handlers\AdminHandler; use App\Http\Controllers\Controller; use App\Http\Requests\Request; use App\Models\ActionLog\ActionLogType; @@ -14,7 +14,7 @@ use App\Models\User; use Illuminate\Support\Collection; use Modules\Blog\Article\Entities\Comment; -class Article extends Handler implements ContentTitles, AdvancedContentModifier, InstallableModule +class Article extends AdminHandler implements ContentTitles, AdvancedContentModifier, InstallableModule { public static function getExtendedFormInputsCreate() { diff --git a/modules/Blog/ArticleList/Handlers/ArticleList.php b/modules/Blog/ArticleList/Handlers/ArticleList.php index 2f67d703..5641925c 100644 --- a/modules/Blog/ArticleList/Handlers/ArticleList.php +++ b/modules/Blog/ArticleList/Handlers/ArticleList.php @@ -1,10 +1,10 @@

-

- -

+ @can('upload', \App\Models\FileManager\File::class) +

+ +

+ @endcan @endif -
-
- - +@can('upload', \App\Models\FileManager\File::class) +
+
+ + - @include('admin.snippets.hasError', ['field' => 'titlePhotoFile']) + @include('admin.snippets.hasError', ['field' => 'titlePhotoFile']) +
-
+@endcan @if (count($templates))
diff --git a/resources/views/admin/content/overview.blade.php b/resources/views/admin/content/overview.blade.php index c0b649b0..ce84dd0c 100644 --- a/resources/views/admin/content/overview.blade.php +++ b/resources/views/admin/content/overview.blade.php @@ -59,7 +59,7 @@ {{$page->title}} @endif - @endcannot + @endcan
@can('update', $page) diff --git a/resources/views/admin/snippets/ckEditor.blade.php b/resources/views/admin/snippets/ckEditor.blade.php index 36e7eee6..785794d6 100644 --- a/resources/views/admin/snippets/ckEditor.blade.php +++ b/resources/views/admin/snippets/ckEditor.blade.php @@ -1,18 +1,20 @@