FEATURE #2048: add missing policies
This commit is contained in:
@@ -5,7 +5,7 @@ namespace App\CMS\Handlers;
|
||||
use App\CMS\Contracts\Modules\BaseModuleHandler;
|
||||
use App\CMS\Enumerations\TemplatePathsHumanReadableRootOnly;
|
||||
use App\CMS\Enumerations\WidgetTypes;
|
||||
use App\Models\ActionLog\ActionLogType;
|
||||
use App\Models\ActionLog\ActionLog;
|
||||
use App\Models\Content\Content;
|
||||
use App\Models\FileManager\File;
|
||||
use App\Models\Settings;
|
||||
@@ -60,7 +60,7 @@ abstract class BaseHandler implements BaseModuleHandler
|
||||
// create list of all widget types
|
||||
$widgets = WidgetTypes::getWithTranslations();
|
||||
|
||||
if (!empty($widgets) && $user->can('create-widgets', Widget::class)) {
|
||||
if (!empty($widgets) && $user->can('create', Widget::class)) {
|
||||
$sub->dropdown(trans('admin/mainMenu.newWidget'), function ($sub) use ($widgets) {
|
||||
$i = 1;
|
||||
foreach ($widgets as $type => $name) {
|
||||
@@ -117,7 +117,7 @@ abstract class BaseHandler implements BaseModuleHandler
|
||||
}
|
||||
}
|
||||
|
||||
if ($user->can('manage', ActionLogType::class)) {
|
||||
if ($user->can('manage', ActionLog::class)) {
|
||||
$sub->route('log.overview', trans('admin/mainMenu.actionLog'), [], 70, ['icon' => 'fa fa-fw fa-history']);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class ActionLogPolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
protected $entity = 'actions';
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\FileManager\Directory;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class DirectoriesPolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
protected $entity = 'directories';
|
||||
|
||||
/**
|
||||
* Determine whether the user can create directories.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(User $user)
|
||||
{
|
||||
return $user->hasAbility('create-directories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the directory.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param \App\Directory $directory
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(User $user, Directory $directory)
|
||||
{
|
||||
return $user->hasAbility('update-directories');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class SettingsPolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
protected $entity = 'settings';
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\Templates\Template;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class TemplatePolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
|
||||
protected $entity = 'templates';
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the template.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param \App\Template $template
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function copy(User $user, Template $template)
|
||||
{
|
||||
return $user->hasAbility('copy-templates');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the template.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param \App\Template $template
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(User $user, Template $template)
|
||||
{
|
||||
return $user->hasAbility('edit-templates');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Widgets\WidgetArea;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class WidgetAreaPolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
protected $entity = 'widgetareas';
|
||||
|
||||
/**
|
||||
* Determine whether the user can create widgetAreas.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(User $user)
|
||||
{
|
||||
return $user->hasAbility('create-widgetareas');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the widgetArea.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param \App\WidgetArea $widgetArea
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(User $user, WidgetArea $widgetArea)
|
||||
{
|
||||
return $user->hasAbility('edit-widgetareas');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Widgets\Widget;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
|
||||
class WidgetsPolicy extends BasicPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
protected $entity = 'widgets';
|
||||
|
||||
/**
|
||||
* Determine whether the user can create widgets.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(User $user)
|
||||
{
|
||||
return $user->hasAbility('create-widgets');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the widget.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param \App\Widget $widget
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(User $user, Widget $widget)
|
||||
{
|
||||
return $user->id == $widget->user_id || $user->hasAbility('edit-widgets');
|
||||
}
|
||||
|
||||
public function assign(User $user, Widget $widget)
|
||||
{
|
||||
return $user->hasAbility('assign-widgets');
|
||||
}
|
||||
|
||||
public function unassign(User $user, Widget $widget)
|
||||
{
|
||||
return $user->hasAbility('unassign-widgets');
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ use App\CMS\Repositories\Module as ModuleRepository;
|
||||
use App\CMS\Repositories\Templates\Template as TemplateRepository;
|
||||
use App\CMS\Widgets\HtmlCode\HtmlCode;
|
||||
use App\CMS\Widgets\Menu\Menu;
|
||||
use App\CMS\Widgets\SocialButtons\SocialButtons;
|
||||
use Barryvdh\Debugbar\ServiceProvider as DebugBarServiceProvider;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
@@ -106,6 +107,7 @@ class AppServiceProvider extends ServiceProvider
|
||||
// register all available widgets
|
||||
$registrator->register(HtmlCode::class);
|
||||
$registrator->register(Menu::class);
|
||||
$registrator->register(SocialButtons::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,14 +2,26 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\ActionLog\ActionLog;
|
||||
use App\Models\Content\Content;
|
||||
use App\Models\FileManager\Directory;
|
||||
use App\Models\FileManager\File;
|
||||
use App\Models\Module;
|
||||
use App\Models\Settings;
|
||||
use App\Models\Templates\Template;
|
||||
use App\Models\User;
|
||||
use App\Models\Widgets\Widget;
|
||||
use App\Models\Widgets\WidgetArea;
|
||||
use App\Policies\ActionLogPolicy;
|
||||
use App\Policies\ContentPolicy;
|
||||
use App\Policies\DirectoriesPolicy;
|
||||
use App\Policies\FilesPolicy;
|
||||
use App\Policies\ModulePolicy;
|
||||
use App\Policies\SettingsPolicy;
|
||||
use App\Policies\TemplatePolicy;
|
||||
use App\Policies\UserPolicy;
|
||||
use App\Policies\WidgetAreaPolicy;
|
||||
use App\Policies\WidgetsPolicy;
|
||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as IlluminateAuthServiceProvider;
|
||||
|
||||
class AuthServiceProvider extends IlluminateAuthServiceProvider
|
||||
@@ -19,10 +31,17 @@ class AuthServiceProvider extends IlluminateAuthServiceProvider
|
||||
* @var array
|
||||
*/
|
||||
protected $policies = [
|
||||
Content::class => ContentPolicy::class,
|
||||
User::class => UserPolicy::class,
|
||||
Module::class => ModulePolicy::class,
|
||||
File::class => FilesPolicy::class,
|
||||
Content::class => ContentPolicy::class,
|
||||
User::class => UserPolicy::class,
|
||||
Module::class => ModulePolicy::class,
|
||||
File::class => FilesPolicy::class,
|
||||
ActionLog::class => ActionLogPolicy::class,
|
||||
Template::class => TemplatePolicy::class,
|
||||
Directory::class => DirectoriesPolicy::class,
|
||||
Settings::class => SettingsPolicy::class,
|
||||
Widget::class => WidgetsPolicy::class,
|
||||
WidgetArea::class => WidgetAreaPolicy::class,
|
||||
ActionLog::class => ActionLogPolicy::class,
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user