feat: Add FeedDeliveryPolicy, FeedSchedulePolicy, and WarehousePolicy for authorization management, enhancing access control for respective models.

This commit is contained in:
Yoga Pangestu 2026-03-07 13:40:16 +07:00
parent afefc57b75
commit 0ab5b19dc2
4 changed files with 232 additions and 1 deletions

View File

@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
namespace App\Policies;
use App\Models\FeedDelivery;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class FeedDeliveryPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:FeedDelivery');
}
public function view(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('View:FeedDelivery');
}
public function create(AuthUser $authUser): bool
{
return $authUser->can('Create:FeedDelivery');
}
public function update(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('Update:FeedDelivery');
}
public function delete(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('Delete:FeedDelivery');
}
public function restore(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('Restore:FeedDelivery');
}
public function forceDelete(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('ForceDelete:FeedDelivery');
}
public function forceDeleteAny(AuthUser $authUser): bool
{
return $authUser->can('ForceDeleteAny:FeedDelivery');
}
public function restoreAny(AuthUser $authUser): bool
{
return $authUser->can('RestoreAny:FeedDelivery');
}
public function replicate(AuthUser $authUser, FeedDelivery $feedDelivery): bool
{
return $authUser->can('Replicate:FeedDelivery');
}
public function reorder(AuthUser $authUser): bool
{
return $authUser->can('Reorder:FeedDelivery');
}
}

View File

@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
namespace App\Policies;
use App\Models\FeedSchedule;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class FeedSchedulePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:FeedSchedule');
}
public function view(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('View:FeedSchedule');
}
public function create(AuthUser $authUser): bool
{
return $authUser->can('Create:FeedSchedule');
}
public function update(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('Update:FeedSchedule');
}
public function delete(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('Delete:FeedSchedule');
}
public function restore(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('Restore:FeedSchedule');
}
public function forceDelete(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('ForceDelete:FeedSchedule');
}
public function forceDeleteAny(AuthUser $authUser): bool
{
return $authUser->can('ForceDeleteAny:FeedSchedule');
}
public function restoreAny(AuthUser $authUser): bool
{
return $authUser->can('RestoreAny:FeedSchedule');
}
public function replicate(AuthUser $authUser, FeedSchedule $feedSchedule): bool
{
return $authUser->can('Replicate:FeedSchedule');
}
public function reorder(AuthUser $authUser): bool
{
return $authUser->can('Reorder:FeedSchedule');
}
}

View File

@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
namespace App\Policies;
use App\Models\Warehouse;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class WarehousePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Warehouse');
}
public function view(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('View:Warehouse');
}
public function create(AuthUser $authUser): bool
{
return $authUser->can('Create:Warehouse');
}
public function update(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('Update:Warehouse');
}
public function delete(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('Delete:Warehouse');
}
public function restore(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('Restore:Warehouse');
}
public function forceDelete(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('ForceDelete:Warehouse');
}
public function forceDeleteAny(AuthUser $authUser): bool
{
return $authUser->can('ForceDeleteAny:Warehouse');
}
public function restoreAny(AuthUser $authUser): bool
{
return $authUser->can('RestoreAny:Warehouse');
}
public function replicate(AuthUser $authUser, Warehouse $warehouse): bool
{
return $authUser->can('Replicate:Warehouse');
}
public function reorder(AuthUser $authUser): bool
{
return $authUser->can('Reorder:Warehouse');
}
}

View File

@ -160,6 +160,18 @@ public function run(): void
"Replicate:User",
"Reorder:User",
"ViewAny:Warehouse",
"View:Warehouse",
"Create:Warehouse",
"Update:Warehouse",
"Delete:Warehouse",
"Restore:Warehouse",
"ForceDelete:Warehouse",
"ForceDeleteAny:Warehouse",
"RestoreAny:Warehouse",
"Replicate:Warehouse",
"Reorder:Warehouse",
"ViewAny:Role",
"View:Role",
"Create:Role",
@ -269,7 +281,19 @@ public function run(): void
"Update:User",
"Delete:User",
"Replicate:User",
"Reorder:User"
"Reorder:User",
"ViewAny:Warehouse",
"View:Warehouse",
"Create:Warehouse",
"Update:Warehouse",
"Delete:Warehouse",
"Restore:Warehouse",
"ForceDelete:Warehouse",
"ForceDeleteAny:Warehouse",
"RestoreAny:Warehouse",
"Replicate:Warehouse",
"Reorder:Warehouse"
]
},
{