feat: Implement granular access control and permissions for Filament widgets, pages, and data change requests using Filament Shield and a new policy.
This commit is contained in:
parent
a281e092bb
commit
98d30a80e6
@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Pages;
|
||||
|
||||
use App\Enums\RoleEnum;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasPageShield;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Pages\Dashboard as BaseDashboard;
|
||||
@ -12,7 +14,7 @@
|
||||
|
||||
class Dashboard extends BaseDashboard
|
||||
{
|
||||
use HasFiltersForm;
|
||||
use HasFiltersForm, HasPageShield;
|
||||
|
||||
public function filtersForm(Schema $schema): Schema
|
||||
{
|
||||
@ -33,7 +35,8 @@ public function filtersForm(Schema $schema): Schema
|
||||
->displayFormat('l, d F Y'),
|
||||
])
|
||||
->columns(2)
|
||||
->columnSpanFull(),
|
||||
->columnSpanFull()
|
||||
->visible(fn () => auth()->user()->hasRole(RoleEnum::DEVELOPER->value) || auth()->user()->hasRole(RoleEnum::ADMINISTRATOR->value)),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -4,11 +4,13 @@
|
||||
|
||||
use App\Enums\CooperationStatus;
|
||||
use App\Models\Cooperation;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class CooperationStatusChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Status Kerjasama';
|
||||
|
||||
|
||||
@ -4,12 +4,14 @@
|
||||
|
||||
use App\Models\IssueManagement;
|
||||
use App\Models\Location;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class IssueLocationChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Sebaran Isu Berdasarkan Wilayah';
|
||||
|
||||
|
||||
@ -4,13 +4,15 @@
|
||||
|
||||
use App\Models\Journalist;
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
|
||||
use Filament\Widgets\StatsOverviewWidget\Stat;
|
||||
|
||||
class JournalistMetricsStats extends BaseWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected static ?int $sort = 7;
|
||||
|
||||
|
||||
@ -3,13 +3,15 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\Journalist;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class JournalistRegistrationChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Tren Pertambahan Jurnalis';
|
||||
|
||||
|
||||
@ -3,11 +3,13 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\Journalist;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class JournalistUkwChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Status Sertifikasi UKW Jurnalis';
|
||||
|
||||
|
||||
@ -4,11 +4,13 @@
|
||||
|
||||
use App\Enums\MediaClassification;
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class MediaClassificationChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Klasifikasi Media';
|
||||
|
||||
|
||||
@ -4,12 +4,14 @@
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class MediaCooperationRankingChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Ranking Media (Kerjasama Disetujui)';
|
||||
|
||||
|
||||
@ -3,13 +3,15 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class MediaRegistrationChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Tren Pendaftaran Media';
|
||||
|
||||
|
||||
@ -4,11 +4,13 @@
|
||||
|
||||
use App\Enums\MediaType;
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class MediaTypeChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Distribusi Jenis Media';
|
||||
|
||||
|
||||
@ -8,13 +8,15 @@
|
||||
use App\Models\PartnerMedia;
|
||||
use App\Models\VerificationRequest;
|
||||
use App\Models\Visitor;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
|
||||
use Filament\Widgets\StatsOverviewWidget\Stat;
|
||||
|
||||
class OverviewStats extends BaseWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected static ?int $sort = 1;
|
||||
|
||||
|
||||
@ -3,11 +3,13 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\News;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class PopularNewsChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Berita Terpopuler';
|
||||
|
||||
|
||||
@ -3,13 +3,15 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\Report;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TaskRealizationChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Realisasi Penugasan (Laporan)';
|
||||
|
||||
|
||||
@ -3,11 +3,13 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\PartnerMedia;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
|
||||
class TopMediaJournalistChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Top Media Berdasarkan Jumlah Jurnalis';
|
||||
|
||||
|
||||
@ -4,13 +4,15 @@
|
||||
|
||||
use App\Enums\VerificationStatus;
|
||||
use App\Models\VerificationRequest;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class VerificationPerformanceChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Performa Verifikasi (Approved vs Rejected)';
|
||||
|
||||
|
||||
@ -3,13 +3,15 @@
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\Visitor;
|
||||
use BezhanSalleh\FilamentShield\Traits\HasWidgetShield;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Widgets\ChartWidget;
|
||||
use Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class VisitorTrafficChart extends ChartWidget
|
||||
{
|
||||
use \Filament\Widgets\Concerns\InteractsWithPageFilters;
|
||||
use HasWidgetShield, InteractsWithPageFilters;
|
||||
|
||||
protected ?string $heading = 'Traffic Pengunjung';
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ protected function casts(): array
|
||||
|
||||
public function canAccessPanel(Panel $panel): bool
|
||||
{
|
||||
return true;
|
||||
return $this->is_active === IsActive::ACTIVE;
|
||||
}
|
||||
|
||||
#[Scope]
|
||||
|
||||
69
app/Policies/DataChangeRequestPolicy.php
Normal file
69
app/Policies/DataChangeRequestPolicy.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\DataChangeRequest;
|
||||
use Illuminate\Auth\Access\HandlesAuthorization;
|
||||
use Illuminate\Foundation\Auth\User as AuthUser;
|
||||
|
||||
class DataChangeRequestPolicy
|
||||
{
|
||||
use HandlesAuthorization;
|
||||
|
||||
public function viewAny(AuthUser $authUser): bool
|
||||
{
|
||||
return $authUser->can('ViewAny:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function view(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('View:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function create(AuthUser $authUser): bool
|
||||
{
|
||||
return $authUser->can('Create:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function update(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('Update:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function delete(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('Delete:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function restore(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('Restore:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function forceDelete(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('ForceDelete:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function forceDeleteAny(AuthUser $authUser): bool
|
||||
{
|
||||
return $authUser->can('ForceDeleteAny:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function restoreAny(AuthUser $authUser): bool
|
||||
{
|
||||
return $authUser->can('RestoreAny:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function replicate(AuthUser $authUser, DataChangeRequest $dataChangeRequest): bool
|
||||
{
|
||||
return $authUser->can('Replicate:DataChangeRequest');
|
||||
}
|
||||
|
||||
public function reorder(AuthUser $authUser): bool
|
||||
{
|
||||
return $authUser->can('Reorder:DataChangeRequest');
|
||||
}
|
||||
}
|
||||
@ -16,6 +16,7 @@
|
||||
use Filament\PanelProvider;
|
||||
use Filament\Support\Colors\Color;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Widgets\AccountWidget;
|
||||
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies;
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||||
@ -68,7 +69,9 @@ public function panel(Panel $panel): Panel
|
||||
Dashboard::class,
|
||||
])
|
||||
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
|
||||
->widgets([])
|
||||
->widgets([
|
||||
AccountWidget::class,
|
||||
])
|
||||
->middleware([
|
||||
EncryptCookies::class,
|
||||
AddQueuedCookiesToResponse::class,
|
||||
|
||||
@ -18,94 +18,8 @@ public function run(): void
|
||||
"name": "Developer",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"ViewAny:Role",
|
||||
"View:Role",
|
||||
"Create:Role",
|
||||
"Update:Role",
|
||||
"Delete:Role",
|
||||
"Restore:Role",
|
||||
"ForceDelete:Role",
|
||||
"ForceDeleteAny:Role",
|
||||
"RestoreAny:Role",
|
||||
"Replicate:Role",
|
||||
"Reorder:Role",
|
||||
"ViewAny:Theme",
|
||||
"View:Theme",
|
||||
"Create:Theme",
|
||||
"Update:Theme",
|
||||
"Delete:Theme",
|
||||
"Restore:Theme",
|
||||
"ForceDelete:Theme",
|
||||
"ForceDeleteAny:Theme",
|
||||
"RestoreAny:Theme",
|
||||
"Replicate:Theme",
|
||||
"Reorder:Theme",
|
||||
"ViewAny:Classification",
|
||||
"View:Classification",
|
||||
"Create:Classification",
|
||||
"Update:Classification",
|
||||
"Delete:Classification",
|
||||
"Restore:Classification",
|
||||
"ForceDelete:Classification",
|
||||
"ForceDeleteAny:Classification",
|
||||
"RestoreAny:Classification",
|
||||
"Replicate:Classification",
|
||||
"Reorder:Classification",
|
||||
"ViewAny:Department",
|
||||
"View:Department",
|
||||
"Create:Department",
|
||||
"Update:Department",
|
||||
"Delete:Department",
|
||||
"Restore:Department",
|
||||
"ForceDelete:Department",
|
||||
"ForceDeleteAny:Department",
|
||||
"RestoreAny:Department",
|
||||
"Replicate:Department",
|
||||
"Reorder:Department",
|
||||
"ViewAny:Location",
|
||||
"View:Location",
|
||||
"Create:Location",
|
||||
"Update:Location",
|
||||
"Delete:Location",
|
||||
"Restore:Location",
|
||||
"ForceDelete:Location",
|
||||
"ForceDeleteAny:Location",
|
||||
"RestoreAny:Location",
|
||||
"Replicate:Location",
|
||||
"Reorder:Location",
|
||||
"ViewAny:SubClassification",
|
||||
"View:SubClassification",
|
||||
"Create:SubClassification",
|
||||
"Update:SubClassification",
|
||||
"Delete:SubClassification",
|
||||
"Restore:SubClassification",
|
||||
"ForceDelete:SubClassification",
|
||||
"ForceDeleteAny:SubClassification",
|
||||
"RestoreAny:SubClassification",
|
||||
"Replicate:SubClassification",
|
||||
"Reorder:SubClassification",
|
||||
"ViewAny:SubLocation",
|
||||
"View:SubLocation",
|
||||
"Create:SubLocation",
|
||||
"Update:SubLocation",
|
||||
"Delete:SubLocation",
|
||||
"Restore:SubLocation",
|
||||
"ForceDelete:SubLocation",
|
||||
"ForceDeleteAny:SubLocation",
|
||||
"RestoreAny:SubLocation",
|
||||
"Replicate:SubLocation",
|
||||
"Reorder:SubLocation",
|
||||
"ViewAny:User",
|
||||
"View:User",
|
||||
"Create:User",
|
||||
"Update:User",
|
||||
"Delete:User",
|
||||
"Restore:User",
|
||||
"ForceDelete:User",
|
||||
"ForceDeleteAny:User",
|
||||
"RestoreAny:User",
|
||||
"Replicate:User",
|
||||
"Reorder:User",
|
||||
"View:AdminVerification",
|
||||
|
||||
"ViewAny:Announcement",
|
||||
"View:Announcement",
|
||||
"Create:Announcement",
|
||||
@ -117,89 +31,19 @@ public function run(): void
|
||||
"RestoreAny:Announcement",
|
||||
"Replicate:Announcement",
|
||||
"Reorder:Announcement",
|
||||
"ViewAny:ContentRecap",
|
||||
"View:ContentRecap",
|
||||
"Create:ContentRecap",
|
||||
"Update:ContentRecap",
|
||||
"Delete:ContentRecap",
|
||||
"Restore:ContentRecap",
|
||||
"ForceDelete:ContentRecap",
|
||||
"ForceDeleteAny:ContentRecap",
|
||||
"RestoreAny:ContentRecap",
|
||||
"Replicate:ContentRecap",
|
||||
"Reorder:ContentRecap",
|
||||
"ViewAny:Cooperation",
|
||||
"View:Cooperation",
|
||||
"Create:Cooperation",
|
||||
"Update:Cooperation",
|
||||
"Delete:Cooperation",
|
||||
"Restore:Cooperation",
|
||||
"ForceDelete:Cooperation",
|
||||
"ForceDeleteAny:Cooperation",
|
||||
"RestoreAny:Cooperation",
|
||||
"Replicate:Cooperation",
|
||||
"Reorder:Cooperation",
|
||||
"ViewAny:IssueManagement",
|
||||
"View:IssueManagement",
|
||||
"Create:IssueManagement",
|
||||
"Update:IssueManagement",
|
||||
"Delete:IssueManagement",
|
||||
"Restore:IssueManagement",
|
||||
"ForceDelete:IssueManagement",
|
||||
"ForceDeleteAny:IssueManagement",
|
||||
"RestoreAny:IssueManagement",
|
||||
"Replicate:IssueManagement",
|
||||
"Reorder:IssueManagement",
|
||||
"ViewAny:MediaMonitoring",
|
||||
"View:MediaMonitoring",
|
||||
"Create:MediaMonitoring",
|
||||
"Update:MediaMonitoring",
|
||||
"Delete:MediaMonitoring",
|
||||
"Restore:MediaMonitoring",
|
||||
"ForceDelete:MediaMonitoring",
|
||||
"ForceDeleteAny:MediaMonitoring",
|
||||
"RestoreAny:MediaMonitoring",
|
||||
"Replicate:MediaMonitoring",
|
||||
"Reorder:MediaMonitoring",
|
||||
"ViewAny:News",
|
||||
"View:News",
|
||||
"Create:News",
|
||||
"Update:News",
|
||||
"Delete:News",
|
||||
"Restore:News",
|
||||
"ForceDelete:News",
|
||||
"ForceDeleteAny:News",
|
||||
"RestoreAny:News",
|
||||
"Replicate:News",
|
||||
"Reorder:News"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Administrator",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"ViewAny:Role",
|
||||
"View:Role",
|
||||
"Create:Role",
|
||||
"Update:Role",
|
||||
"Delete:Role",
|
||||
"Restore:Role",
|
||||
"ForceDelete:Role",
|
||||
"ForceDeleteAny:Role",
|
||||
"RestoreAny:Role",
|
||||
"Replicate:Role",
|
||||
"Reorder:Role",
|
||||
"ViewAny:Theme",
|
||||
"View:Theme",
|
||||
"Create:Theme",
|
||||
"Update:Theme",
|
||||
"Delete:Theme",
|
||||
"Restore:Theme",
|
||||
"ForceDelete:Theme",
|
||||
"ForceDeleteAny:Theme",
|
||||
"RestoreAny:Theme",
|
||||
"Replicate:Theme",
|
||||
"Reorder:Theme",
|
||||
|
||||
"ViewAny:Category",
|
||||
"View:Category",
|
||||
"Create:Category",
|
||||
"Update:Category",
|
||||
"Delete:Category",
|
||||
"Restore:Category",
|
||||
"ForceDelete:Category",
|
||||
"ForceDeleteAny:Category",
|
||||
"RestoreAny:Category",
|
||||
"Replicate:Category",
|
||||
"Reorder:Category",
|
||||
|
||||
"ViewAny:Classification",
|
||||
"View:Classification",
|
||||
"Create:Classification",
|
||||
@ -211,72 +55,19 @@ public function run(): void
|
||||
"RestoreAny:Classification",
|
||||
"Replicate:Classification",
|
||||
"Reorder:Classification",
|
||||
"ViewAny:Department",
|
||||
"View:Department",
|
||||
"Create:Department",
|
||||
"Update:Department",
|
||||
"Delete:Department",
|
||||
"Restore:Department",
|
||||
"ForceDelete:Department",
|
||||
"ForceDeleteAny:Department",
|
||||
"RestoreAny:Department",
|
||||
"Replicate:Department",
|
||||
"Reorder:Department",
|
||||
"ViewAny:Location",
|
||||
"View:Location",
|
||||
"Create:Location",
|
||||
"Update:Location",
|
||||
"Delete:Location",
|
||||
"Restore:Location",
|
||||
"ForceDelete:Location",
|
||||
"ForceDeleteAny:Location",
|
||||
"RestoreAny:Location",
|
||||
"Replicate:Location",
|
||||
"Reorder:Location",
|
||||
"ViewAny:SubClassification",
|
||||
"View:SubClassification",
|
||||
"Create:SubClassification",
|
||||
"Update:SubClassification",
|
||||
"Delete:SubClassification",
|
||||
"Restore:SubClassification",
|
||||
"ForceDelete:SubClassification",
|
||||
"ForceDeleteAny:SubClassification",
|
||||
"RestoreAny:SubClassification",
|
||||
"Replicate:SubClassification",
|
||||
"Reorder:SubClassification",
|
||||
"ViewAny:SubLocation",
|
||||
"View:SubLocation",
|
||||
"Create:SubLocation",
|
||||
"Update:SubLocation",
|
||||
"Delete:SubLocation",
|
||||
"Restore:SubLocation",
|
||||
"ForceDelete:SubLocation",
|
||||
"ForceDeleteAny:SubLocation",
|
||||
"RestoreAny:SubLocation",
|
||||
"Replicate:SubLocation",
|
||||
"Reorder:SubLocation",
|
||||
"ViewAny:User",
|
||||
"View:User",
|
||||
"Create:User",
|
||||
"Update:User",
|
||||
"Delete:User",
|
||||
"Restore:User",
|
||||
"ForceDelete:User",
|
||||
"ForceDeleteAny:User",
|
||||
"RestoreAny:User",
|
||||
"Replicate:User",
|
||||
"Reorder:User",
|
||||
"ViewAny:Announcement",
|
||||
"View:Announcement",
|
||||
"Create:Announcement",
|
||||
"Update:Announcement",
|
||||
"Delete:Announcement",
|
||||
"Restore:Announcement",
|
||||
"ForceDelete:Announcement",
|
||||
"ForceDeleteAny:Announcement",
|
||||
"RestoreAny:Announcement",
|
||||
"Replicate:Announcement",
|
||||
"Reorder:Announcement",
|
||||
|
||||
"ViewAny:Contact",
|
||||
"View:Contact",
|
||||
"Create:Contact",
|
||||
"Update:Contact",
|
||||
"Delete:Contact",
|
||||
"Restore:Contact",
|
||||
"ForceDelete:Contact",
|
||||
"ForceDeleteAny:Contact",
|
||||
"RestoreAny:Contact",
|
||||
"Replicate:Contact",
|
||||
"Reorder:Contact",
|
||||
|
||||
"ViewAny:ContentRecap",
|
||||
"View:ContentRecap",
|
||||
"Create:ContentRecap",
|
||||
@ -288,6 +79,7 @@ public function run(): void
|
||||
"RestoreAny:ContentRecap",
|
||||
"Replicate:ContentRecap",
|
||||
"Reorder:ContentRecap",
|
||||
|
||||
"ViewAny:Cooperation",
|
||||
"View:Cooperation",
|
||||
"Create:Cooperation",
|
||||
@ -299,6 +91,37 @@ public function run(): void
|
||||
"RestoreAny:Cooperation",
|
||||
"Replicate:Cooperation",
|
||||
"Reorder:Cooperation",
|
||||
|
||||
"View:CooperationStatusChart",
|
||||
|
||||
"View:Dashboard",
|
||||
|
||||
"ViewAny:DataChangeRequest",
|
||||
"View:DataChangeRequest",
|
||||
"Create:DataChangeRequest",
|
||||
"Update:DataChangeRequest",
|
||||
"Delete:DataChangeRequest",
|
||||
"Restore:DataChangeRequest",
|
||||
"ForceDelete:DataChangeRequest",
|
||||
"ForceDeleteAny:DataChangeRequest",
|
||||
"RestoreAny:DataChangeRequest",
|
||||
"Replicate:DataChangeRequest",
|
||||
"Reorder:DataChangeRequest",
|
||||
|
||||
"ViewAny:Department",
|
||||
"View:Department",
|
||||
"Create:Department",
|
||||
"Update:Department",
|
||||
"Delete:Department",
|
||||
"Restore:Department",
|
||||
"ForceDelete:Department",
|
||||
"ForceDeleteAny:Department",
|
||||
"RestoreAny:Department",
|
||||
"Replicate:Department",
|
||||
"Reorder:Department",
|
||||
|
||||
"View:IssueLocationChart",
|
||||
|
||||
"ViewAny:IssueManagement",
|
||||
"View:IssueManagement",
|
||||
"Create:IssueManagement",
|
||||
@ -310,6 +133,35 @@ public function run(): void
|
||||
"RestoreAny:IssueManagement",
|
||||
"Replicate:IssueManagement",
|
||||
"Reorder:IssueManagement",
|
||||
|
||||
"View:JournalistMetricsStats",
|
||||
|
||||
"View:JournalistRegistrationChart",
|
||||
|
||||
"View:JournalistUkwChart",
|
||||
|
||||
"ViewAny:Location",
|
||||
"View:Location",
|
||||
"Create:Location",
|
||||
"Update:Location",
|
||||
"Delete:Location",
|
||||
"Restore:Location",
|
||||
"ForceDelete:Location",
|
||||
"ForceDeleteAny:Location",
|
||||
"RestoreAny:Location",
|
||||
"Replicate:Location",
|
||||
"Reorder:Location",
|
||||
|
||||
"View:ManageGeneralSettings",
|
||||
|
||||
"View:ManageSeoSettings",
|
||||
|
||||
"View:ManageSocialMediaSettings",
|
||||
|
||||
"View:MediaClassificationChart",
|
||||
|
||||
"View:MediaCooperationRankingChart",
|
||||
|
||||
"ViewAny:MediaMonitoring",
|
||||
"View:MediaMonitoring",
|
||||
"Create:MediaMonitoring",
|
||||
@ -321,45 +173,11 @@ public function run(): void
|
||||
"RestoreAny:MediaMonitoring",
|
||||
"Replicate:MediaMonitoring",
|
||||
"Reorder:MediaMonitoring",
|
||||
"ViewAny:News",
|
||||
"View:News",
|
||||
"Create:News",
|
||||
"Update:News",
|
||||
"Delete:News",
|
||||
"Restore:News",
|
||||
"ForceDelete:News",
|
||||
"ForceDeleteAny:News",
|
||||
"RestoreAny:News",
|
||||
"Replicate:News",
|
||||
"Reorder:News"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Admin Monitoring",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"ViewAny:MediaMonitoring",
|
||||
"View:MediaMonitoring",
|
||||
"Create:MediaMonitoring",
|
||||
"Update:MediaMonitoring",
|
||||
"Delete:MediaMonitoring",
|
||||
"Restore:MediaMonitoring",
|
||||
"ForceDelete:MediaMonitoring",
|
||||
"ForceDeleteAny:MediaMonitoring",
|
||||
"RestoreAny:MediaMonitoring",
|
||||
"Replicate:MediaMonitoring",
|
||||
"Reorder:MediaMonitoring",
|
||||
"ViewAny:IssueManagement",
|
||||
"View:IssueManagement",
|
||||
"Create:IssueManagement",
|
||||
"Update:IssueManagement",
|
||||
"Delete:IssueManagement",
|
||||
"Restore:IssueManagement",
|
||||
"ForceDelete:IssueManagement",
|
||||
"ForceDeleteAny:IssueManagement",
|
||||
"RestoreAny:IssueManagement",
|
||||
"Replicate:IssueManagement",
|
||||
"Reorder:IssueManagement",
|
||||
|
||||
"View:MediaRegistrationChart",
|
||||
|
||||
"View:MediaTypeChart",
|
||||
|
||||
"ViewAny:News",
|
||||
"View:News",
|
||||
"Create:News",
|
||||
@ -371,33 +189,98 @@ public function run(): void
|
||||
"RestoreAny:News",
|
||||
"Replicate:News",
|
||||
"Reorder:News",
|
||||
"ViewAny:Classification",
|
||||
"View:Classification",
|
||||
|
||||
"View:OverviewStats",
|
||||
|
||||
"View:PopularNewsChart",
|
||||
|
||||
"ViewAny:Role",
|
||||
"View:Role",
|
||||
"Create:Role",
|
||||
"Update:Role",
|
||||
"Delete:Role",
|
||||
"Restore:Role",
|
||||
"ForceDelete:Role",
|
||||
"ForceDeleteAny:Role",
|
||||
"RestoreAny:Role",
|
||||
"Replicate:Role",
|
||||
"Reorder:Role",
|
||||
|
||||
"ViewAny:SubClassification",
|
||||
"View:SubClassification",
|
||||
"ViewAny:Location",
|
||||
"View:Location",
|
||||
"Create:SubClassification",
|
||||
"Update:SubClassification",
|
||||
"Delete:SubClassification",
|
||||
"Restore:SubClassification",
|
||||
"ForceDelete:SubClassification",
|
||||
"ForceDeleteAny:SubClassification",
|
||||
"RestoreAny:SubClassification",
|
||||
"Replicate:SubClassification",
|
||||
"Reorder:SubClassification",
|
||||
|
||||
"ViewAny:SubLocation",
|
||||
"View:SubLocation",
|
||||
"ViewAny:Department",
|
||||
"View:Department"
|
||||
"Create:SubLocation",
|
||||
"Update:SubLocation",
|
||||
"Delete:SubLocation",
|
||||
"Restore:SubLocation",
|
||||
"ForceDelete:SubLocation",
|
||||
"ForceDeleteAny:SubLocation",
|
||||
"RestoreAny:SubLocation",
|
||||
"Replicate:SubLocation",
|
||||
"Reorder:SubLocation",
|
||||
|
||||
"View:TaskRealizationChart",
|
||||
|
||||
"ViewAny:Theme",
|
||||
"View:Theme",
|
||||
"Create:Theme",
|
||||
"Update:Theme",
|
||||
"Delete:Theme",
|
||||
"Restore:Theme",
|
||||
"ForceDelete:Theme",
|
||||
"ForceDeleteAny:Theme",
|
||||
"RestoreAny:Theme",
|
||||
"Replicate:Theme",
|
||||
"Reorder:Theme",
|
||||
|
||||
"View:TopMediaJournalistChart",
|
||||
|
||||
"ViewAny:User",
|
||||
"View:User",
|
||||
"Create:User",
|
||||
"Update:User",
|
||||
"Delete:User",
|
||||
"Restore:User",
|
||||
"ForceDelete:User",
|
||||
"ForceDeleteAny:User",
|
||||
"RestoreAny:User",
|
||||
"Replicate:User",
|
||||
"Reorder:User",
|
||||
|
||||
"View:VerificationPerformanceChart",
|
||||
|
||||
"ViewAny:Visitor",
|
||||
"View:Visitor",
|
||||
"Create:Visitor",
|
||||
"Update:Visitor",
|
||||
"Delete:Visitor",
|
||||
"Restore:Visitor",
|
||||
"ForceDelete:Visitor",
|
||||
"ForceDeleteAny:Visitor",
|
||||
"RestoreAny:Visitor",
|
||||
"Replicate:Visitor",
|
||||
"Reorder:Visitor",
|
||||
|
||||
"View:VisitorTrafficChart"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Admin Konten",
|
||||
"name": "Administrator",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"ViewAny:ContentRecap",
|
||||
"View:ContentRecap",
|
||||
"Create:ContentRecap",
|
||||
"Update:ContentRecap",
|
||||
"Delete:ContentRecap",
|
||||
"Restore:ContentRecap",
|
||||
"ForceDelete:ContentRecap",
|
||||
"ForceDeleteAny:ContentRecap",
|
||||
"RestoreAny:ContentRecap",
|
||||
"Replicate:ContentRecap",
|
||||
"Reorder:ContentRecap",
|
||||
"View:AdminVerification",
|
||||
|
||||
"ViewAny:Announcement",
|
||||
"View:Announcement",
|
||||
"Create:Announcement",
|
||||
@ -409,14 +292,371 @@ public function run(): void
|
||||
"RestoreAny:Announcement",
|
||||
"Replicate:Announcement",
|
||||
"Reorder:Announcement",
|
||||
|
||||
"ViewAny:Category",
|
||||
"View:Category",
|
||||
"Create:Category",
|
||||
"Update:Category",
|
||||
"Delete:Category",
|
||||
"Restore:Category",
|
||||
"ForceDelete:Category",
|
||||
"ForceDeleteAny:Category",
|
||||
"RestoreAny:Category",
|
||||
"Replicate:Category",
|
||||
"Reorder:Category",
|
||||
|
||||
"ViewAny:Classification",
|
||||
"View:Classification",
|
||||
"Create:Classification",
|
||||
"Update:Classification",
|
||||
"Delete:Classification",
|
||||
"Restore:Classification",
|
||||
"ForceDelete:Classification",
|
||||
"ForceDeleteAny:Classification",
|
||||
"RestoreAny:Classification",
|
||||
"Replicate:Classification",
|
||||
"Reorder:Classification",
|
||||
|
||||
"ViewAny:Contact",
|
||||
"View:Contact",
|
||||
"Create:Contact",
|
||||
"Update:Contact",
|
||||
"Delete:Contact",
|
||||
"Restore:Contact",
|
||||
"ForceDelete:Contact",
|
||||
"ForceDeleteAny:Contact",
|
||||
"RestoreAny:Contact",
|
||||
"Replicate:Contact",
|
||||
"Reorder:Contact",
|
||||
|
||||
"ViewAny:ContentRecap",
|
||||
"View:ContentRecap",
|
||||
"Create:ContentRecap",
|
||||
"Update:ContentRecap",
|
||||
"Delete:ContentRecap",
|
||||
"Restore:ContentRecap",
|
||||
"ForceDelete:ContentRecap",
|
||||
"ForceDeleteAny:ContentRecap",
|
||||
"RestoreAny:ContentRecap",
|
||||
"Replicate:ContentRecap",
|
||||
"Reorder:ContentRecap",
|
||||
|
||||
"ViewAny:Cooperation",
|
||||
"View:Cooperation",
|
||||
"Create:Cooperation",
|
||||
"Update:Cooperation",
|
||||
"Delete:Cooperation",
|
||||
"Restore:Cooperation",
|
||||
"ForceDelete:Cooperation",
|
||||
"ForceDeleteAny:Cooperation",
|
||||
"RestoreAny:Cooperation",
|
||||
"Replicate:Cooperation",
|
||||
"Reorder:Cooperation",
|
||||
|
||||
"View:CooperationStatusChart",
|
||||
|
||||
"View:Dashboard",
|
||||
|
||||
"ViewAny:DataChangeRequest",
|
||||
"View:DataChangeRequest",
|
||||
"Create:DataChangeRequest",
|
||||
"Update:DataChangeRequest",
|
||||
"Delete:DataChangeRequest",
|
||||
"Restore:DataChangeRequest",
|
||||
"ForceDelete:DataChangeRequest",
|
||||
"ForceDeleteAny:DataChangeRequest",
|
||||
"RestoreAny:DataChangeRequest",
|
||||
"Replicate:DataChangeRequest",
|
||||
"Reorder:DataChangeRequest",
|
||||
|
||||
"ViewAny:Department",
|
||||
"View:Department",
|
||||
"Create:Department",
|
||||
"Update:Department",
|
||||
"Delete:Department",
|
||||
"Restore:Department",
|
||||
"ForceDelete:Department",
|
||||
"ForceDeleteAny:Department",
|
||||
"RestoreAny:Department",
|
||||
"Replicate:Department",
|
||||
"Reorder:Department",
|
||||
|
||||
"View:IssueLocationChart",
|
||||
|
||||
"ViewAny:IssueManagement",
|
||||
"View:IssueManagement",
|
||||
"Create:IssueManagement",
|
||||
"Update:IssueManagement",
|
||||
"Delete:IssueManagement",
|
||||
"Restore:IssueManagement",
|
||||
"ForceDelete:IssueManagement",
|
||||
"ForceDeleteAny:IssueManagement",
|
||||
"RestoreAny:IssueManagement",
|
||||
"Replicate:IssueManagement",
|
||||
"Reorder:IssueManagement",
|
||||
|
||||
"View:JournalistMetricsStats",
|
||||
|
||||
"View:JournalistRegistrationChart",
|
||||
|
||||
"View:JournalistUkwChart",
|
||||
|
||||
"ViewAny:Location",
|
||||
"View:Location",
|
||||
"Create:Location",
|
||||
"Update:Location",
|
||||
"Delete:Location",
|
||||
"Restore:Location",
|
||||
"ForceDelete:Location",
|
||||
"ForceDeleteAny:Location",
|
||||
"RestoreAny:Location",
|
||||
"Replicate:Location",
|
||||
"Reorder:Location",
|
||||
|
||||
"View:ManageGeneralSettings",
|
||||
|
||||
"View:ManageSeoSettings",
|
||||
|
||||
"View:ManageSocialMediaSettings",
|
||||
|
||||
"View:MediaClassificationChart",
|
||||
|
||||
"View:MediaCooperationRankingChart",
|
||||
|
||||
"ViewAny:MediaMonitoring",
|
||||
"View:MediaMonitoring",
|
||||
"Create:MediaMonitoring",
|
||||
"Update:MediaMonitoring",
|
||||
"Delete:MediaMonitoring",
|
||||
"Restore:MediaMonitoring",
|
||||
"ForceDelete:MediaMonitoring",
|
||||
"ForceDeleteAny:MediaMonitoring",
|
||||
"RestoreAny:MediaMonitoring",
|
||||
"Replicate:MediaMonitoring",
|
||||
"Reorder:MediaMonitoring",
|
||||
|
||||
"View:MediaRegistrationChart",
|
||||
|
||||
"View:MediaTypeChart",
|
||||
|
||||
"ViewAny:News",
|
||||
"View:News",
|
||||
"Create:News",
|
||||
"Update:News",
|
||||
"Delete:News",
|
||||
"Restore:News",
|
||||
"ForceDelete:News",
|
||||
"ForceDeleteAny:News",
|
||||
"RestoreAny:News",
|
||||
"Replicate:News",
|
||||
"Reorder:News",
|
||||
|
||||
"View:OverviewStats",
|
||||
|
||||
"View:PopularNewsChart",
|
||||
|
||||
"ViewAny:SubClassification",
|
||||
"View:SubClassification",
|
||||
"Create:SubClassification",
|
||||
"Update:SubClassification",
|
||||
"Delete:SubClassification",
|
||||
"Restore:SubClassification",
|
||||
"ForceDelete:SubClassification",
|
||||
"ForceDeleteAny:SubClassification",
|
||||
"RestoreAny:SubClassification",
|
||||
"Replicate:SubClassification",
|
||||
"Reorder:SubClassification",
|
||||
|
||||
"ViewAny:SubLocation",
|
||||
"View:SubLocation",
|
||||
"Create:SubLocation",
|
||||
"Update:SubLocation",
|
||||
"Delete:SubLocation",
|
||||
"Restore:SubLocation",
|
||||
"ForceDelete:SubLocation",
|
||||
"ForceDeleteAny:SubLocation",
|
||||
"RestoreAny:SubLocation",
|
||||
"Replicate:SubLocation",
|
||||
"Reorder:SubLocation",
|
||||
|
||||
"View:TaskRealizationChart",
|
||||
|
||||
"ViewAny:Theme",
|
||||
"View:Theme",
|
||||
"Create:Theme",
|
||||
"Update:Theme",
|
||||
"Delete:Theme",
|
||||
"Restore:Theme",
|
||||
"ForceDelete:Theme",
|
||||
"ForceDeleteAny:Theme",
|
||||
"RestoreAny:Theme",
|
||||
"Replicate:Theme",
|
||||
"Reorder:Theme",
|
||||
|
||||
"View:TopMediaJournalistChart",
|
||||
|
||||
"ViewAny:User",
|
||||
"View:User",
|
||||
"Create:User",
|
||||
"Update:User",
|
||||
"Delete:User",
|
||||
"Restore:User",
|
||||
"ForceDelete:User",
|
||||
"ForceDeleteAny:User",
|
||||
"RestoreAny:User",
|
||||
"Replicate:User",
|
||||
"Reorder:User",
|
||||
|
||||
"View:VerificationPerformanceChart",
|
||||
|
||||
"ViewAny:Visitor",
|
||||
"View:Visitor",
|
||||
"Create:Visitor",
|
||||
"Update:Visitor",
|
||||
"Delete:Visitor",
|
||||
"Restore:Visitor",
|
||||
"ForceDelete:Visitor",
|
||||
"ForceDeleteAny:Visitor",
|
||||
"RestoreAny:Visitor",
|
||||
"Replicate:Visitor",
|
||||
"Reorder:Visitor",
|
||||
|
||||
"View:VisitorTrafficChart"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Admin Monitoring",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"View:Dashboard",
|
||||
|
||||
"ViewAny:IssueManagement",
|
||||
"View:IssueManagement",
|
||||
"Create:IssueManagement",
|
||||
"Update:IssueManagement",
|
||||
"Delete:IssueManagement",
|
||||
"Restore:IssueManagement",
|
||||
"ForceDelete:IssueManagement",
|
||||
"ForceDeleteAny:IssueManagement",
|
||||
"RestoreAny:IssueManagement",
|
||||
"Replicate:IssueManagement",
|
||||
"Reorder:IssueManagement",
|
||||
|
||||
"ViewAny:MediaMonitoring",
|
||||
"View:MediaMonitoring",
|
||||
"Create:MediaMonitoring",
|
||||
"Update:MediaMonitoring",
|
||||
"Delete:MediaMonitoring",
|
||||
"Restore:MediaMonitoring",
|
||||
"ForceDelete:MediaMonitoring",
|
||||
"ForceDeleteAny:MediaMonitoring",
|
||||
"RestoreAny:MediaMonitoring",
|
||||
"Replicate:MediaMonitoring",
|
||||
"Reorder:MediaMonitoring",
|
||||
|
||||
"ViewAny:SubClassification",
|
||||
"View:SubClassification",
|
||||
"Create:SubClassification",
|
||||
"Update:SubClassification",
|
||||
"Delete:SubClassification",
|
||||
"Restore:SubClassification",
|
||||
"ForceDelete:SubClassification",
|
||||
"ForceDeleteAny:SubClassification",
|
||||
"RestoreAny:SubClassification",
|
||||
"Replicate:SubClassification",
|
||||
"Reorder:SubClassification",
|
||||
|
||||
"ViewAny:SubLocation",
|
||||
"View:SubLocation",
|
||||
"Create:SubLocation",
|
||||
"Update:SubLocation",
|
||||
"Delete:SubLocation",
|
||||
"Restore:SubLocation",
|
||||
"ForceDelete:SubLocation",
|
||||
"ForceDeleteAny:SubLocation",
|
||||
"RestoreAny:SubLocation",
|
||||
"Replicate:SubLocation",
|
||||
"Reorder:SubLocation",
|
||||
|
||||
"ViewAny:Theme",
|
||||
"View:Theme",
|
||||
"Create:Theme",
|
||||
"Update:Theme",
|
||||
"Delete:Theme",
|
||||
"Restore:Theme",
|
||||
"ForceDelete:Theme",
|
||||
"ForceDeleteAny:Theme",
|
||||
"RestoreAny:Theme",
|
||||
"Replicate:Theme",
|
||||
"Reorder:Theme",
|
||||
|
||||
"ViewAny:Visitor",
|
||||
"View:Visitor",
|
||||
"Create:Visitor",
|
||||
"Update:Visitor",
|
||||
"Delete:Visitor",
|
||||
"Restore:Visitor",
|
||||
"ForceDelete:Visitor",
|
||||
"ForceDeleteAny:Visitor",
|
||||
"RestoreAny:Visitor",
|
||||
"Replicate:Visitor",
|
||||
"Reorder:Visitor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Admin Konten",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"ViewAny:Category",
|
||||
|
||||
"View:Category",
|
||||
"Create:Category",
|
||||
"Update:Category",
|
||||
"Delete:Category",
|
||||
"Restore:Category",
|
||||
"ForceDelete:Category",
|
||||
"ForceDeleteAny:Category",
|
||||
"RestoreAny:Category",
|
||||
"Replicate:Category",
|
||||
"Reorder:Category",
|
||||
|
||||
"ViewAny:Classification",
|
||||
"View:Classification",
|
||||
"Create:Classification",
|
||||
"Update:Classification",
|
||||
"Delete:Classification",
|
||||
"Restore:Classification",
|
||||
"ForceDelete:Classification",
|
||||
"ForceDeleteAny:Classification",
|
||||
"RestoreAny:Classification",
|
||||
"Replicate:Classification",
|
||||
"Reorder:Classification",
|
||||
|
||||
"ViewAny:ContentRecap",
|
||||
"View:ContentRecap",
|
||||
"Create:ContentRecap",
|
||||
"Update:ContentRecap",
|
||||
"Delete:ContentRecap",
|
||||
"Restore:ContentRecap",
|
||||
"ForceDelete:ContentRecap",
|
||||
"ForceDeleteAny:ContentRecap",
|
||||
"RestoreAny:ContentRecap",
|
||||
"Replicate:ContentRecap",
|
||||
"Reorder:ContentRecap",
|
||||
|
||||
"View:Dashboard",
|
||||
|
||||
"ViewAny:News",
|
||||
"View:News"
|
||||
"View:News",
|
||||
"Create:News",
|
||||
"Update:News",
|
||||
"Delete:News",
|
||||
"Restore:News",
|
||||
"ForceDelete:News",
|
||||
"ForceDeleteAny:News",
|
||||
"RestoreAny:News",
|
||||
"Replicate:News",
|
||||
"Reorder:News"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -433,16 +673,27 @@ public function run(): void
|
||||
"ForceDeleteAny:Cooperation",
|
||||
"RestoreAny:Cooperation",
|
||||
"Replicate:Cooperation",
|
||||
"Reorder:Cooperation"
|
||||
"Reorder:Cooperation",
|
||||
|
||||
"View:Dashboard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Perusahaan",
|
||||
"guard_name": "web",
|
||||
"permissions": [
|
||||
"View:Company",
|
||||
"View:Media",
|
||||
"View:Verification",
|
||||
"ViewAny:Announcement",
|
||||
"View:Announcement",
|
||||
"Create:Announcement",
|
||||
"Update:Announcement",
|
||||
"Delete:Announcement",
|
||||
"Restore:Announcement",
|
||||
"ForceDelete:Announcement",
|
||||
"ForceDeleteAny:Announcement",
|
||||
"RestoreAny:Announcement",
|
||||
"Replicate:Announcement",
|
||||
"Reorder:Announcement",
|
||||
|
||||
"ViewAny:Cooperation",
|
||||
"View:Cooperation",
|
||||
"Create:Cooperation",
|
||||
@ -454,17 +705,32 @@ public function run(): void
|
||||
"RestoreAny:Cooperation",
|
||||
"Replicate:Cooperation",
|
||||
"Reorder:Cooperation",
|
||||
"ViewAny:Journalist",
|
||||
"View:Journalist",
|
||||
"Create:Journalist",
|
||||
"Update:Journalist",
|
||||
"Delete:Journalist",
|
||||
"Restore:Journalist",
|
||||
"ForceDelete:Journalist",
|
||||
"ForceDeleteAny:Journalist",
|
||||
"RestoreAny:Journalist",
|
||||
"Replicate:Journalist",
|
||||
"Reorder:Journalist"
|
||||
|
||||
"View:Company",
|
||||
|
||||
"View:Dashboard",
|
||||
|
||||
"ViewAny:DataChangeRequest",
|
||||
"View:DataChangeRequest",
|
||||
"Create:DataChangeRequest",
|
||||
"Update:DataChangeRequest",
|
||||
"Delete:DataChangeRequest",
|
||||
"Restore:DataChangeRequest",
|
||||
"ForceDelete:DataChangeRequest",
|
||||
"ForceDeleteAny:DataChangeRequest",
|
||||
"RestoreAny:DataChangeRequest",
|
||||
"Replicate:DataChangeRequest",
|
||||
"Reorder:DataChangeRequest",
|
||||
|
||||
"ViewAny:Journalits",
|
||||
"View:Journalits",
|
||||
"Create:Journalits",
|
||||
"Update:Journalits",
|
||||
"Delete:Journalits",
|
||||
|
||||
"View:Media",
|
||||
|
||||
"View:Verification"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user