Add deleteAny and replicate to policies (#1030)

* add `deleteAny` to policies

* add `replicate` to policies
This commit is contained in:
Boy132 2025-02-25 13:50:15 +01:00 committed by GitHub
parent fe8e6fcfda
commit 2f56ca5ed5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 18 additions and 33 deletions

View File

@ -78,8 +78,7 @@ class DatabaseHostResource extends Resource
EditAction::make(),
])
->groupedBulkActions([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete databasehost')),
DeleteBulkAction::make(),
])
->emptyStateIcon('tabler-database')
->emptyStateDescription('')

View File

@ -10,7 +10,6 @@ use App\Filament\Components\Tables\Actions\UpdateEggAction;
use App\Models\Egg;
use Filament\Actions\CreateAction as CreateHeaderAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Tables\Actions\BulkActionGroup;
use Filament\Tables\Actions\CreateAction;
use Filament\Tables\Actions\DeleteBulkAction;
use Filament\Tables\Actions\EditAction;
@ -66,14 +65,10 @@ class ListEggs extends ListRecords
$replica->uuid = Str::uuid()->toString();
})
->after(fn (Egg $record, Egg $replica) => $record->variables->each(fn ($variable) => $variable->replicate()->fill(['egg_id' => $replica->id])->save()))
->successRedirectUrl(fn (Egg $replica) => EditEgg::getUrl(['record' => $replica]))
->authorize(fn () => auth()->user()->can('create egg')),
->successRedirectUrl(fn (Egg $replica) => EditEgg::getUrl(['record' => $replica])),
])
->bulkActions([
BulkActionGroup::make([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete egg')),
]),
->groupedBulkActions([
DeleteBulkAction::make(),
])
->emptyStateIcon('tabler-eggs')
->emptyStateDescription('')

View File

@ -83,8 +83,7 @@ class MountResource extends Resource
EditAction::make(),
])
->groupedBulkActions([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete mount')),
DeleteBulkAction::make(),
])
->emptyStateIcon('tabler-layers-linked')
->emptyStateDescription('')

View File

@ -82,8 +82,7 @@ class RoleResource extends Resource
])
->checkIfRecordIsSelectableUsing(fn (Role $role) => !$role->isRootAdmin() && $role->users_count <= 0)
->groupedBulkActions([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete role')),
DeleteBulkAction::make(),
])
->emptyStateIcon('tabler-users-group')
->emptyStateDescription('')

View File

@ -92,8 +92,7 @@ class UserResource extends Resource
])
->checkIfRecordIsSelectableUsing(fn (User $user) => auth()->user()->id !== $user->id && !$user->servers_count)
->groupedBulkActions([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete user')),
DeleteBulkAction::make(),
]);
}

View File

@ -65,8 +65,7 @@ class WebhookResource extends Resource
DeleteAction::make(),
])
->groupedBulkActions([
DeleteBulkAction::make()
->authorize(fn () => auth()->user()->can('delete webhook')),
DeleteBulkAction::make(),
])
->emptyStateIcon('tabler-webhook')
->emptyStateDescription('')

View File

@ -7,43 +7,38 @@ use Illuminate\Database\Eloquent\Model;
trait DefaultPolicies
{
/**
* Determine whether the user can view any models.
*/
public function viewAny(User $user): bool
{
return $user->can('viewList ' . $this->modelName);
}
/**
* Determine whether the user can view the model.
*/
public function view(User $user, Model $model): bool
{
return $user->can('view ' . $this->modelName, $model);
}
/**
* Determine whether the user can create models.
*/
public function create(User $user): bool
{
return $user->can('create ' . $this->modelName);
}
/**
* Determine whether the user can update the model.
*/
public function update(User $user, Model $model): bool
{
return $user->can('update ' . $this->modelName, $model);
}
/**
* Determine whether the user can delete the model.
*/
public function delete(User $user, Model $model): bool
{
return $user->can('delete ' . $this->modelName, $model);
}
public function deleteAny(User $user): bool
{
return $user->can('delete ' . $this->modelName);
}
public function replicate(User $user, Model $model): bool
{
return $user->can('create ' . $this->modelName);
}
}