Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/ApiKeys/ApiKeyResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use App\Filament\Admin\Resources\ApiKeys\Pages\CreateApiKey;
use App\Filament\Admin\Resources\ApiKeys\Pages\ListApiKeys;
use App\Filament\Admin\Resources\Users\Pages\EditUser;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
use App\Models\ApiKey;
use App\Traits\Filament\CanCustomizePages;
Expand All @@ -15,7 +16,6 @@
use BackedEnum;
use Exception;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Forms\Components\TagsInput;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\ToggleButtons;
Expand Down Expand Up @@ -99,7 +99,7 @@ public static function defaultTable(Table $table): Table
->url(fn (ApiKey $apiKey) => user()?->can('update', $apiKey->user) ? EditUser::getUrl(['record' => $apiKey->user]) : null),
])
->recordActions([
DeleteAction::make(),
LoggedDeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
Expand Down
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/ApiKeys/Pages/CreateApiKey.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
namespace App\Filament\Admin\Resources\ApiKeys\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\ApiKeys\ApiKeyResource;
use App\Models\ApiKey;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class CreateApiKey extends CreateRecord
class CreateApiKey extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
namespace App\Filament\Admin\Resources\BackupHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\BackupHosts\BackupHostResource;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;

class CreateBackupHost extends CreateRecord
class CreateBackupHost extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
namespace App\Filament\Admin\Resources\BackupHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\BackupHosts\BackupHostResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\BackupHost;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;

class EditBackupHost extends EditRecord
class EditBackupHost extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -23,7 +23,7 @@ class EditBackupHost extends EditRecord
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->label(fn (BackupHost $backupHost) => $backupHost->backups()->count() > 0 ? trans('admin/backuphost.delete_help') : trans('filament-actions::delete.single.modal.actions.delete.label'))
->disabled(fn (BackupHost $backupHost) => $backupHost->backups()->count() > 0)
->hidden(fn () => BackupHost::count() === 1),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use App\Filament\Admin\Resources\DatabaseHosts\Pages\ListDatabaseHosts;
use App\Filament\Admin\Resources\DatabaseHosts\Pages\ViewDatabaseHost;
use App\Filament\Admin\Resources\DatabaseHosts\RelationManagers\DatabasesRelationManager;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Models\DatabaseHost;
use App\Traits\Filament\CanCustomizePages;
use App\Traits\Filament\CanCustomizeRelations;
Expand All @@ -17,7 +18,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
Expand Down Expand Up @@ -102,7 +102,7 @@ public static function defaultTable(Table $table): Table
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete'),
LoggedDeleteBulkAction::make('exclude_bulk_delete'),
]),
])
->emptyStateIcon(TablerIcon::Database)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\DatabaseHosts\DatabaseHostResource;
use App\Services\Databases\Hosts\HostCreationService;
use App\Traits\Filament\CanCustomizeHeaderActions;
Expand All @@ -15,7 +16,6 @@
use Filament\Forms\Components\Toggle;
use Filament\Infolists\Components\TextEntry;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;
use Filament\Resources\Pages\CreateRecord\Concerns\HasWizard;
use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Components\Utilities\Get;
Expand All @@ -29,7 +29,7 @@
use PDOException;
use Throwable;

class CreateDatabaseHost extends CreateRecord
class CreateDatabaseHost extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\DatabaseHosts\DatabaseHostResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\DatabaseHost;
use App\Services\Databases\Hosts\HostUpdateService;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
use Filament\Support\Exceptions\Halt;
use Illuminate\Database\Eloquent\Model;
use PDOException;

class EditDatabaseHost extends EditRecord
class EditDatabaseHost extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -35,7 +35,7 @@ public function boot(HostUpdateService $hostUpdateService): void
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->tooltip(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0 ? trans('admin/databasehost.delete_help') : trans('filament-actions::delete.single.modal.actions.delete.label'))
->disabled(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0),
Action::make('save')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\RelationManagers;

use App\Filament\Admin\Resources\Servers\Pages\EditServer;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Actions\RotateDatabasePasswordAction;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
use App\Models\Database;
use Filament\Actions\DeleteAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
Expand Down Expand Up @@ -71,7 +71,7 @@ public function table(Table $table): Table
->recordActions([
ViewAction::make()
->color('primary'),
DeleteAction::make(),
LoggedDeleteAction::make(),
]);
}
}
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/Eggs/Pages/ListEggs.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use App\Filament\Admin\Resources\Eggs\EggResource;
use App\Filament\Components\Actions\ExportEggAction;
use App\Filament\Components\Actions\ImportEggAction;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Filament\Components\Actions\UpdateEggAction;
use App\Filament\Components\Actions\UpdateEggBulkAction;
use App\Filament\Components\Tables\Filters\TagsFilter;
Expand All @@ -15,7 +16,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ReplicateAction;
use Filament\Actions\ViewAction;
Expand Down Expand Up @@ -88,7 +88,7 @@ public function table(Table $table): Table
->multiple(),
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete')
LoggedDeleteBulkAction::make('exclude_bulk_delete')
->before(function (Collection &$records) {
$eggsWithServers = $records->filter(fn (Egg $egg) => $egg->servers_count > 0);

Expand Down
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/Mounts/MountResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Filament\Admin\Resources\Mounts\Pages\EditMount;
use App\Filament\Admin\Resources\Mounts\Pages\ListMounts;
use App\Filament\Admin\Resources\Mounts\Pages\ViewMount;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Models\Mount;
use App\Traits\Filament\CanCustomizePages;
use App\Traits\Filament\CanCustomizeRelations;
Expand All @@ -16,7 +17,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
Expand Down Expand Up @@ -110,7 +110,7 @@ public static function defaultTable(Table $table): Table
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete'),
LoggedDeleteBulkAction::make('exclude_bulk_delete'),
]),
])
->emptyStateIcon(TablerIcon::LayersLinked)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use App\Enums\TablerIcon;
use App\Filament\Admin\Resources\Servers\Pages\CreateServer;
use App\Filament\Admin\Resources\Servers\Pages\EditServer;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Filament\Components\Actions\UpdateNodeAllocations;
use App\Models\Allocation;
use App\Models\Node;
Expand All @@ -13,8 +15,6 @@
use Exception;
use Filament\Actions\Action;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TagsInput;
use Filament\Forms\Components\TextInput;
Expand Down Expand Up @@ -96,7 +96,7 @@ public function table(Table $table): Table
])
->emptyStateHeading(trans('admin/node.no_allocations'))
->recordActions([
DeleteAction::make()
LoggedDeleteAction::make()
->visible(fn (Allocation $allocation) => $allocation->server_id === null),
])
->toolbarActions([
Expand Down Expand Up @@ -158,7 +158,7 @@ public function table(Table $table): Table
->nodeRecord($this->getOwnerRecord())
->authorize(fn () => user()?->can('update', $this->getOwnerRecord()))
->hidden(fn () => $this->isReadOnly()),
DeleteBulkAction::make()
LoggedDeleteBulkAction::make()
->hidden(fn () => $this->isReadOnly()),
]);
}
Expand Down
6 changes: 4 additions & 2 deletions app/Filament/Admin/Resources/Roles/Pages/CreateRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
namespace App\Filament\Admin\Resources\Roles\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\Roles\RoleResource;
use App\Models\Role;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\Permission\Models\Permission;

/**
* @property Role $record
*/
class CreateRole extends CreateRecord
class CreateRole extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down Expand Up @@ -70,5 +70,7 @@ protected function afterCreate(): void
});

$this->record->syncPermissions($permissionModels);

parent::afterCreate();
}
}
24 changes: 20 additions & 4 deletions app/Filament/Admin/Resources/Roles/Pages/EditRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
namespace App\Filament\Admin\Resources\Roles\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\Roles\RoleResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\Role;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\Permission\Models\Permission;

/**
* @property Role $record
*/
class EditRole extends EditRecord
class EditRole extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -42,6 +42,8 @@ protected function mutateFormDataBeforeSave(array $data): array

protected function afterSave(): void
{
$oldPermissions = $this->record->permissions()->pluck('name')->sort()->values();

$permissionModels = collect();
$this->permissions->each(function ($permission) use ($permissionModels) {
$permissionModels->push(Permission::firstOrCreate([
Expand All @@ -51,13 +53,27 @@ protected function afterSave(): void
});

$this->record->syncPermissions($permissionModels);

$newPermissions = $this->record->permissions()->pluck('name')->sort()->values();

// One combined update event covering attribute and permission changes,
// so parent::afterSave() is deliberately not called here.
$changes = static::buildDiff($this->attributesBeforeSave, $this->record->getChanges());

if ($oldPermissions->all() !== $newPermissions->all()) {
$changes['permissions'] = ['old' => $oldPermissions->all(), 'new' => $newPermissions->all()];
}

if ($changes !== []) {
static::logAdminActivity('update', $this->record, ['changes' => $changes]);
}
}

/** @return array<Action|ActionGroup> */
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->tooltip(fn (Role $role) => $role->isRootAdmin() ? trans('admin/role.root_admin_delete') : ($role->users_count >= 1 ? trans('admin/role.in_use') : trans('filament-actions::delete.single.label')))
->disabled(fn (Role $role) => $role->isRootAdmin() || $role->users_count >= 1),
Action::make('save')
Expand Down
Loading
Loading