Description
Integrate with Laravel's authorization system beyond basic policies. Support Spatie Permission or Laravel's built-in gates.
Proposed Syntax
php artisan crudify:generate Product --fields="name:string" --roles="admin,editor,viewer"
# or
php artisan crudify:generate Product --fields="name:string" --policy=roles
Generated Components
Example Policy
class ProductPolicy
{
public function viewAny(User $user): bool
{
return $user->hasAnyRole(['admin', 'editor', 'viewer']);
}
public function create(User $user): bool
{
return $user->hasAnyRole(['admin', 'editor']);
}
public function delete(User $user, Product $product): bool
{
return $user->hasRole('admin') || $user->id === $product->user_id;
}
}
Blade Directives
@can('create', App\Models\Product::class)
<a href="{{ route('products.create') }}">Create Product</a>
@endcan
@can('delete', $product)
<button wire:click="delete({{ $product->id }})" class="text-red-600">Delete</button>
@endcan
Supported Systems
Description
Integrate with Laravel's authorization system beyond basic policies. Support Spatie Permission or Laravel's built-in gates.
Proposed Syntax
Generated Components
viewAny,view,create,update,deletechecks against rolesExample Policy
Blade Directives
Supported Systems