FEATURE #2048: another work done on permissions
This commit is contained in:
@@ -1,19 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\CMS\Handlers;
|
namespace App\CMS\Handlers;
|
||||||
|
|
||||||
use App\CMS\Contracts\Modules\AppHandler;
|
use App\CMS\Contracts\Modules\AppHandler;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Models\FileManager\File;
|
||||||
use App\Models\Content\Content;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Handler
|
* Class Handler
|
||||||
*
|
|
||||||
* Handler is a class which handles module-specific behaviour which cannot be done by module itself, resp. cannot be
|
* Handler is a class which handles module-specific behaviour which cannot be done by module itself, resp. cannot be
|
||||||
* done by some abstract magic.
|
* done by some abstract magic.
|
||||||
*
|
|
||||||
* @package App\CMS\Handlers\
|
* @package App\CMS\Handlers\
|
||||||
*/
|
*/
|
||||||
abstract class Handler extends BaseHandler implements AppHandler
|
abstract class AdminHandler extends BaseHandler implements AppHandler
|
||||||
{
|
{
|
||||||
public static function getHistoryHandler()
|
public static function getHistoryHandler()
|
||||||
{
|
{
|
||||||
@@ -22,24 +20,36 @@ abstract class Handler extends BaseHandler implements AppHandler
|
|||||||
|
|
||||||
public static function getExtendedFormSections()
|
public static function getExtendedFormSections()
|
||||||
{
|
{
|
||||||
return [
|
$formParts = [
|
||||||
'basicInfo' => trans('admin/contents.basicInfo'),
|
'basicInfo' => trans('admin/contents.basicInfo'),
|
||||||
'meta' => trans('admin/contents.metaOptions'),
|
'meta' => trans('admin/contents.metaOptions'),
|
||||||
'publication' => trans('admin/contents.publicationOptions'),
|
'publication' => trans('admin/contents.publicationOptions'),
|
||||||
'appearance' => trans('admin/contents.appearance'),
|
'appearance' => trans('admin/contents.appearance'),
|
||||||
'files' => trans('admin/contents.files')
|
'files' => trans('admin/contents.files')
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (\Auth::user()->cannot('upload', File::class)) {
|
||||||
|
unset($formParts['files']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $formParts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getExtendedFormInputsCreate()
|
public static function getExtendedFormInputsCreate()
|
||||||
{
|
{
|
||||||
return [
|
$formParts = [
|
||||||
'basicInfo' => 'admin.content.formParts.basicInformation',
|
'basicInfo' => 'admin.content.formParts.basicInformation',
|
||||||
'meta' => 'admin.content.formParts.metaInformation',
|
'meta' => 'admin.content.formParts.metaInformation',
|
||||||
'publication' => 'admin.content.formParts.publicationSetup',
|
'publication' => 'admin.content.formParts.publicationSetup',
|
||||||
'appearance' => 'admin.content.formParts.appearance',
|
'appearance' => 'admin.content.formParts.appearance',
|
||||||
'files' => 'admin.content.formParts.files'
|
'files' => 'admin.content.formParts.files'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (\Auth::user()->cannot('upload', File::class)) {
|
||||||
|
unset($formParts['files']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $formParts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getExtendedFormInputsEdit()
|
public static function getExtendedFormInputsEdit()
|
||||||
@@ -6,6 +6,7 @@ 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\Models\ActionLog\ActionLogType;
|
use App\Models\ActionLog\ActionLogType;
|
||||||
|
use App\Models\Content\Content;
|
||||||
use App\Models\FileManager\File;
|
use App\Models\FileManager\File;
|
||||||
use App\Models\Settings;
|
use App\Models\Settings;
|
||||||
use App\Models\Templates\Template;
|
use App\Models\Templates\Template;
|
||||||
@@ -38,9 +39,11 @@ 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)) {
|
||||||
$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']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File manager
|
* File manager
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Middleware\Admin;
|
namespace App\Http\Middleware\Admin;
|
||||||
|
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\CMS\Repositories\Module as ModuleRepository;
|
use App\CMS\Repositories\Module as ModuleRepository;
|
||||||
use Closure;
|
use Closure;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@@ -26,7 +26,7 @@ class AdminMenuRegistrator
|
|||||||
|
|
||||||
// create menu
|
// create menu
|
||||||
$user = \Auth::user();
|
$user = \Auth::user();
|
||||||
Handler::registerAdminMenu($user);
|
AdminHandler::registerAdminMenu($user);
|
||||||
|
|
||||||
$modules = app(ModuleRepository::class)->all();
|
$modules = app(ModuleRepository::class)->all();
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ class ContentPolicy extends BasicPolicy
|
|||||||
*/
|
*/
|
||||||
public function update(User $user, Content $content)
|
public function update(User $user, Content $content)
|
||||||
{
|
{
|
||||||
if (!$user->hasAbility('update-contents-' . $content->module->alias)) {
|
// if (!$user->hasAbility('update-contents-' . $content->module->alias)) {
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if ($user->id != $content->user_id) {
|
if ($user->id != $content->user_id) {
|
||||||
return $user->hasAbility('update-contents') && $user->hasAbility('update-all-contents');
|
return $user->hasAbility('update-contents') && $user->hasAbility('update-all-contents');
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class FilesPolicy extends BasicPolicy
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function create(User $user, File $file)
|
public function upload(User $user)
|
||||||
{
|
{
|
||||||
return $user->hasAbility('upload-files');
|
return $user->hasAbility('upload-files');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace Modules\Blog\Article\Handlers;
|
|||||||
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
||||||
use App\CMS\Contracts\Content\ContentTitles;
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Contracts\Modules\InstallableModule;
|
use App\CMS\Contracts\Modules\InstallableModule;
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
use App\Models\ActionLog\ActionLogType;
|
use App\Models\ActionLog\ActionLogType;
|
||||||
@@ -14,7 +14,7 @@ use App\Models\User;
|
|||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Modules\Blog\Article\Entities\Comment;
|
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()
|
public static function getExtendedFormInputsCreate()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Modules\Blog\ArticleList\Handlers;
|
namespace Modules\Blog\ArticleList\Handlers;
|
||||||
|
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class ArticleList extends Handler
|
class ArticleList extends AdminHandler
|
||||||
{
|
{
|
||||||
public static function registerAdminMenu(User $user)
|
public static function registerAdminMenu(User $user)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ namespace Modules\ContactForm\Handlers;
|
|||||||
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
||||||
use App\CMS\Contracts\Content\ContentTitles;
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Enumerations\ModulesHandlerToId;
|
use App\CMS\Enumerations\ModulesHandlerToId;
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class ContactForm extends Handler implements ContentTitles, AdvancedContentModifier
|
class ContactForm extends AdminHandler implements ContentTitles, AdvancedContentModifier
|
||||||
{
|
{
|
||||||
public static function getHistoryHandler()
|
public static function getHistoryHandler()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ namespace Modules\Gallery\Handlers;
|
|||||||
|
|
||||||
use App\CMS\Contracts\Modules\AppHandler;
|
use App\CMS\Contracts\Modules\AppHandler;
|
||||||
use App\CMS\Enumerations\ModulesHandlerToId;
|
use App\CMS\Enumerations\ModulesHandlerToId;
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\CMS\Handlers\History;
|
use App\CMS\Handlers\History;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
@@ -137,7 +137,7 @@ class Gallery implements AppHandler
|
|||||||
*/
|
*/
|
||||||
public static function getExtendedFormSections()
|
public static function getExtendedFormSections()
|
||||||
{
|
{
|
||||||
$sections = Handler::getExtendedFormSections();
|
$sections = AdminHandler::getExtendedFormSections();
|
||||||
|
|
||||||
$sections['upload'] = trans('gallery::admin/content.upload');
|
$sections['upload'] = trans('gallery::admin/content.upload');
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ class Gallery implements AppHandler
|
|||||||
*/
|
*/
|
||||||
public static function getExtendedFormInputsCreate()
|
public static function getExtendedFormInputsCreate()
|
||||||
{
|
{
|
||||||
$parts = Handler::getExtendedFormInputsCreate();
|
$parts = AdminHandler::getExtendedFormInputsCreate();
|
||||||
$parts['upload'] = 'gallery::admin.content.newUpload';
|
$parts['upload'] = 'gallery::admin.content.newUpload';
|
||||||
|
|
||||||
return $parts;
|
return $parts;
|
||||||
@@ -168,7 +168,7 @@ class Gallery implements AppHandler
|
|||||||
*/
|
*/
|
||||||
public static function getExtendedFormInputsEdit()
|
public static function getExtendedFormInputsEdit()
|
||||||
{
|
{
|
||||||
$parts = Handler::getExtendedFormInputsCreate();
|
$parts = AdminHandler::getExtendedFormInputsCreate();
|
||||||
$parts['upload'] = 'gallery::admin.content.editUpload';
|
$parts['upload'] = 'gallery::admin.content.editUpload';
|
||||||
|
|
||||||
return $parts;
|
return $parts;
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
namespace Modules\StaticPages\Handlers;
|
namespace Modules\StaticPages\Handlers;
|
||||||
|
|
||||||
use App\CMS\Contracts\Content\ContentTitles;
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\AdminHandler;
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class StaticPage extends Handler implements ContentTitles
|
class StaticPage extends AdminHandler implements ContentTitles
|
||||||
{
|
{
|
||||||
public static function registerAdminMenu(User $user)
|
public static function registerAdminMenu(User $user)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,25 +4,30 @@
|
|||||||
class="col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3 col-sm-12 title-photo text-center">
|
class="col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3 col-sm-12 title-photo text-center">
|
||||||
<input type="hidden" id="existingTitlePhoto" value="{{$page->titlePhoto}}" name="existingTitlePhoto">
|
<input type="hidden" id="existingTitlePhoto" value="{{$page->titlePhoto}}" name="existingTitlePhoto">
|
||||||
<p><img src="@thumbnail($page->titlePhoto)" alt="" /></p>
|
<p><img src="@thumbnail($page->titlePhoto)" alt="" /></p>
|
||||||
|
@can('upload', \App\Models\FileManager\File::class)
|
||||||
<p>
|
<p>
|
||||||
<a href="javascript:void(0)" id="removeTitlePhoto" class="btn btn-warning" data-toggle="tooltip"
|
<a href="javascript:void(0)" id="removeTitlePhoto" class="btn btn-warning" data-toggle="tooltip"
|
||||||
title="@lang('admin/contents.deleteTitlePhoto')"><i
|
title="@lang('admin/contents.deleteTitlePhoto')"><i
|
||||||
class="fa fa-trash"></i></a>
|
class="fa fa-trash"></i></a>
|
||||||
</p>
|
</p>
|
||||||
|
@endcan
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="row">
|
@can('upload', \App\Models\FileManager\File::class)
|
||||||
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<label class="control-label">
|
<label class="control-label">
|
||||||
@lang('admin/contents.uploadTitleImage')
|
@lang('admin/contents.uploadTitleImage')
|
||||||
</label>
|
</label>
|
||||||
<input type="file" id="titlePhotoFile" accept=".jpg,.jpeg,.png" name="titlePhotoFile" class="form-control" />
|
<input type="file" id="titlePhotoFile" accept=".jpg,.jpeg,.png" name="titlePhotoFile"
|
||||||
|
class="form-control" />
|
||||||
|
|
||||||
@include('admin.snippets.hasError', ['field' => 'titlePhotoFile'])
|
@include('admin.snippets.hasError', ['field' => 'titlePhotoFile'])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@endcan
|
||||||
|
|
||||||
@if (count($templates))
|
@if (count($templates))
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||||
alt="{{$page->title}}" />
|
alt="{{$page->title}}" />
|
||||||
@endif
|
@endif
|
||||||
@endcannot
|
@endcan
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||||
@can('update', $page)
|
@can('update', $page)
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
<script src="{{asset('/resources/assets/js/vendor/ckeditor/ckeditor.js')}}"></script>
|
<script src="{{asset('/resources/assets/js/vendor/ckeditor/ckeditor.js')}}"></script>
|
||||||
|
|
||||||
<script type="application/javascript">
|
<script type="application/javascript">
|
||||||
CKEDITOR.on('instanceCreated', function(e) {
|
CKEDITOR.on ('instanceCreated', function (e) {
|
||||||
e.editor.on('change', function(event) {
|
e.editor.on ('change', function (event) {
|
||||||
var textarea = event.editor.element.$;
|
var textarea = event.editor.element.$;
|
||||||
$(textarea).val(event.editor.getData().trim());
|
$ (textarea).val (event.editor.getData ().trim ());
|
||||||
$(textarea.form).trigger('checkform.areYouSure');
|
$ (textarea.form).trigger ('checkform.areYouSure');
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
CKEDITOR.replace ('{{$textareaId}}', {
|
CKEDITOR.replace ('{{$textareaId}}', {
|
||||||
uiColor: "#F5F5F5",
|
uiColor: "#F5F5F5",
|
||||||
|
@can('upload', \App\Models\FileManager\File::class)
|
||||||
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
|
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
|
||||||
|
@endcan
|
||||||
forcePasteAsPlainText: true,
|
forcePasteAsPlainText: true,
|
||||||
entities: false,
|
entities: false,
|
||||||
basicEntities: false,
|
basicEntities: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user