diff --git a/app/Filament/Components/Columns/TextColumn.php b/app/Filament/Components/Columns/TextColumn.php index 64e10d653..362dc9dea 100644 --- a/app/Filament/Components/Columns/TextColumn.php +++ b/app/Filament/Components/Columns/TextColumn.php @@ -31,7 +31,6 @@ public function urlToRelated(string $resourceRelated, string $relation, ?bool $s return $this ->weight(FontWeight::SemiBold) ->html() - ->hiddenOn(BaseRelationManager::class) ->url(function (BaseModel $record) use ($resourceRelated, $relation, $shouldUseName, $limit) { foreach (explode('.', $relation) as $element) { $record = Arr::get($record, $element); diff --git a/app/Filament/Resources/Admin/Dump.php b/app/Filament/Resources/Admin/Dump.php index d9b34b489..969c8d0d5 100644 --- a/app/Filament/Resources/Admin/Dump.php +++ b/app/Filament/Resources/Admin/Dump.php @@ -271,7 +271,8 @@ public static function getHeaderActions(): array PruneDumpTableAction::make('prune-dump') ->label(__('filament.actions.dump.prune.name')) ->icon(__('filament.table_actions.dump.prune.icon')) - ->requiresConfirmation(), + ->requiresConfirmation() + ->authorize('delete', DumpModel::class), ReconcileDumpTableAction::make('reconcile-dump') ->label(__('filament.actions.repositories.name', ['label' => __('filament.resources.label.dumps')])) diff --git a/app/Filament/Resources/Base/BaseEditResource.php b/app/Filament/Resources/Base/BaseEditResource.php index 5e845bd18..5d9a1ad04 100644 --- a/app/Filament/Resources/Base/BaseEditResource.php +++ b/app/Filament/Resources/Base/BaseEditResource.php @@ -4,9 +4,10 @@ namespace App\Filament\Resources\Base; -use Filament\Actions\DeleteAction as ActionsDeleteAction; -use Filament\Actions\ForceDeleteAction as ActionsForceDeleteAction; -use Filament\Actions\RestoreAction as ActionsRestoreAction; +use Filament\Actions\ActionGroup; +use Filament\Actions\DeleteAction; +use Filament\Actions\ForceDeleteAction; +use Filament\Actions\RestoreAction; use Filament\Actions\ViewAction; use Filament\Resources\Pages\EditRecord; @@ -25,10 +26,22 @@ abstract class BaseEditResource extends EditRecord protected function getHeaderActions(): array { return [ - ViewAction::make(), - ActionsDeleteAction::make(), - ActionsForceDeleteAction::make(), - ActionsRestoreAction::make(), + ViewAction::make() + ->label(__('filament.actions.base.view')), + + ActionGroup::make([ + DeleteAction::make() + ->label(__('filament.actions.base.delete')), + + ForceDeleteAction::make() + ->label(__('filament.actions.base.forcedelete')) + ->visible(true), + ]) + ->icon('heroicon-o-trash') + ->color('danger'), + + RestoreAction::make() + ->label(__('filament.actions.base.restore')), ]; } } diff --git a/app/Filament/Resources/BaseResource.php b/app/Filament/Resources/BaseResource.php index c249c8e6d..664040612 100644 --- a/app/Filament/Resources/BaseResource.php +++ b/app/Filament/Resources/BaseResource.php @@ -8,6 +8,7 @@ use App\Models\BaseModel; use Filament\Infolists\Components\TextEntry; use Filament\Resources\Resource; +use Filament\Tables\Actions\ActionGroup; use Filament\Tables\Actions\BulkActionGroup; use Filament\Tables\Actions\DeleteAction; use Filament\Tables\Actions\DeleteBulkAction; @@ -121,11 +122,16 @@ public static function getActions(): array EditAction::make() ->label(__('filament.actions.base.edit')), - DeleteAction::make() - ->label(__('filament.actions.base.delete')), + ActionGroup::make([ + DeleteAction::make() + ->label(__('filament.actions.base.delete')), - ForceDeleteAction::make() - ->label(__('filament.actions.base.forcedelete')), + ForceDeleteAction::make() + ->label(__('filament.actions.base.forcedelete')) + ->visible(true), + ]) + ->icon('heroicon-o-trash') + ->color('danger'), RestoreAction::make() ->label(__('filament.actions.base.restore')), @@ -144,13 +150,17 @@ public static function getBulkActions(): array return [ BulkActionGroup::make([ DeleteBulkAction::make() - ->label(__('filament.bulk_actions.base.delete')), + ->label(__('filament.bulk_actions.base.delete')) + ->authorize('delete', (new static::$model)), ForceDeleteBulkAction::make() - ->label(__('filament.bulk_actions.base.forcedelete')), + ->label(__('filament.bulk_actions.base.forcedelete')) + ->hidden(false) + ->authorize('forcedelete', (new static::$model)), RestoreBulkAction::make() - ->label(__('filament.bulk_actions.base.restore')), + ->label(__('filament.bulk_actions.base.restore')) + ->authorize('restore', (new static::$model)), ]), ]; } @@ -181,4 +191,4 @@ protected static function getDefaultSlug(): string { return 'resources/'; } -} \ No newline at end of file +} diff --git a/app/Filament/Resources/Document/Page.php b/app/Filament/Resources/Document/Page.php index 83dd5d2a1..bc843e5f6 100644 --- a/app/Filament/Resources/Document/Page.php +++ b/app/Filament/Resources/Document/Page.php @@ -131,6 +131,7 @@ public static function form(Form $form): Form ->label(__('filament.fields.page.slug.name')) ->helperText(__('filament.fields.page.slug.help')) ->required() + ->unique(PageModel::class, PageModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->maxLength(192) ->regex('/^[\pL\pM\pN\/_-]+$/u') ->rules([ @@ -142,7 +143,7 @@ public static function form(Form $form): Form ? Rule::unique(PageModel::class) ->ignore($record->getKey(), PageModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(PageModel::class)->__toString(), ] ]), diff --git a/app/Filament/Resources/List/Playlist/Track.php b/app/Filament/Resources/List/Playlist/Track.php index bcde9e11c..12af23e4e 100644 --- a/app/Filament/Resources/List/Playlist/Track.php +++ b/app/Filament/Resources/List/Playlist/Track.php @@ -10,6 +10,7 @@ use App\Filament\Components\Infolist\TextEntry; use App\Filament\Resources\BaseResource; use App\Filament\Resources\List\Playlist as PlaylistResource; +use App\Filament\Resources\List\Playlist\RelationManagers\TrackPlaylistRelationManager; use App\Filament\Resources\List\Playlist\Track\Pages\CreateTrack; use App\Filament\Resources\List\Playlist\Track\Pages\EditTrack; use App\Filament\Resources\List\Playlist\Track\Pages\ListTracks; @@ -166,6 +167,7 @@ public static function table(Table $table): Table TextColumn::make(TrackModel::RELATION_PLAYLIST.'.'.PlaylistModel::ATTRIBUTE_NAME) ->label(__('filament.resources.singularLabel.playlist')) ->toggleable() + ->hiddenOn(TrackPlaylistRelationManager::class) ->urlToRelated(PlaylistResource::class, TrackModel::RELATION_PLAYLIST), TextColumn::make(TrackModel::RELATION_VIDEO.'.'.VideoModel::ATTRIBUTE_FILENAME) diff --git a/app/Filament/Resources/Wiki/Anime.php b/app/Filament/Resources/Wiki/Anime.php index 292fc6c30..9b731d5af 100644 --- a/app/Filament/Resources/Wiki/Anime.php +++ b/app/Filament/Resources/Wiki/Anime.php @@ -181,6 +181,7 @@ public static function form(Form $form): Form ->label(__('filament.fields.anime.slug.name')) ->helperText(__('filament.fields.anime.slug.help')) ->required() + ->unique(AnimeModel::class, AnimeModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->rules([ fn ($record) => [ 'required', @@ -190,7 +191,7 @@ public static function form(Form $form): Form ? Rule::unique(AnimeModel::class) ->ignore($record->getKey(), AnimeModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(AnimeModel::class)->__toString(), ] ]), @@ -290,7 +291,8 @@ public static function table(Table $table): Table TextColumn::make(AnimeResource::ATTRIBUTE_AS) ->label(__('filament.fields.anime.resources.as.name')) - ->visibleOn(AnimeResourceRelationManager::class), + ->visibleOn(AnimeResourceRelationManager::class) + ->placeholder('-'), ]) ->searchable() ->defaultSort(AnimeModel::ATTRIBUTE_ID, 'desc') diff --git a/app/Filament/Resources/Wiki/Anime/Synonym.php b/app/Filament/Resources/Wiki/Anime/Synonym.php index 6559e9f8f..b235c9f2e 100644 --- a/app/Filament/Resources/Wiki/Anime/Synonym.php +++ b/app/Filament/Resources/Wiki/Anime/Synonym.php @@ -11,6 +11,7 @@ use App\Filament\Resources\BaseRelationManager; use App\Filament\Resources\BaseResource; use App\Filament\Resources\Wiki\Anime as AnimeResource; +use App\Filament\Resources\Wiki\Anime\RelationManagers\SynonymAnimeRelationManager; use App\Filament\Resources\Wiki\Anime\Synonym\Pages\CreateSynonym; use App\Filament\Resources\Wiki\Anime\Synonym\Pages\EditSynonym; use App\Filament\Resources\Wiki\Anime\Synonym\Pages\ListSynonyms; @@ -163,6 +164,7 @@ public static function table(Table $table): Table TextColumn::make(SynonymModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) ->label(__('filament.resources.singularLabel.anime')) ->toggleable() + ->hiddenOn(SynonymAnimeRelationManager::class) ->urlToRelated(AnimeResource::class, SynonymModel::RELATION_ANIME, limit: 40) ->tooltip(fn (TextColumn $column) => $column->getState()), diff --git a/app/Filament/Resources/Wiki/Anime/Theme.php b/app/Filament/Resources/Wiki/Anime/Theme.php index ddd2bfc1f..6c8534649 100644 --- a/app/Filament/Resources/Wiki/Anime/Theme.php +++ b/app/Filament/Resources/Wiki/Anime/Theme.php @@ -12,6 +12,7 @@ use App\Filament\Resources\BaseRelationManager; use App\Filament\Resources\BaseResource; use App\Filament\Resources\Wiki\Anime as AnimeResource; +use App\Filament\Resources\Wiki\Anime\RelationManagers\ThemeAnimeRelationManager; use App\Filament\Resources\Wiki\Anime\Theme\Pages\CreateTheme; use App\Filament\Resources\Wiki\Anime\Theme\Pages\EditTheme; use App\Filament\Resources\Wiki\Anime\Theme\Pages\ListThemes; @@ -19,6 +20,7 @@ use App\Filament\Resources\Wiki\Anime\Theme\RelationManagers\EntryThemeRelationManager; use App\Filament\Resources\Wiki\Group as GroupResource; use App\Filament\Resources\Wiki\Song as SongResource; +use App\Filament\Resources\Wiki\Song\RelationManagers\ThemeSongRelationManager; use App\Models\Wiki\Anime as AnimeModel; use App\Models\Wiki\Anime\AnimeTheme as ThemeModel; use App\Models\Wiki\Group; @@ -219,6 +221,7 @@ public static function table(Table $table): Table TextColumn::make(ThemeModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) ->label(__('filament.resources.singularLabel.anime')) ->toggleable() + ->hiddenOn(ThemeAnimeRelationManager::class) ->urlToRelated(AnimeResource::class, ThemeModel::RELATION_ANIME, limit: 30) ->tooltip(fn (TextColumn $column) => $column->getState()), @@ -253,6 +256,7 @@ public static function table(Table $table): Table ->label(__('filament.resources.singularLabel.song')) ->toggleable() ->placeholder('-') + ->hiddenOn(ThemeSongRelationManager::class) ->urlToRelated(SongResource::class, ThemeModel::RELATION_SONG, limit: 30) ->tooltip(fn (TextColumn $column) => $column->getState()), ]) diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Entry.php b/app/Filament/Resources/Wiki/Anime/Theme/Entry.php index c1a8058bd..36cb04d2f 100644 --- a/app/Filament/Resources/Wiki/Anime/Theme/Entry.php +++ b/app/Filament/Resources/Wiki/Anime/Theme/Entry.php @@ -18,6 +18,7 @@ use App\Filament\Resources\Wiki\Anime\Theme\Entry\Pages\ListEntries; use App\Filament\Resources\Wiki\Anime\Theme\Entry\Pages\ViewEntry; use App\Filament\Resources\Wiki\Anime\Theme\Entry\RelationManagers\VideoEntryRelationManager; +use App\Filament\Resources\Wiki\Anime\Theme\RelationManagers\EntryThemeRelationManager; use App\Models\Wiki\Anime as AnimeModel; use App\Models\Wiki\Anime\AnimeTheme as ThemeModel; use App\Models\Wiki\Anime\Theme\AnimeThemeEntry as EntryModel; @@ -32,7 +33,6 @@ use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Facades\Log; /** * Class Entry. @@ -241,6 +241,7 @@ public static function table(Table $table): Table ->label(__('filament.resources.singularLabel.anime_theme')) ->toggleable() ->placeholder('-') + ->hiddenOn(EntryThemeRelationManager::class) ->urlToRelated(ThemeResource::class, EntryModel::RELATION_THEME, true), TextColumn::make(EntryModel::ATTRIBUTE_ID) diff --git a/app/Filament/Resources/Wiki/Artist.php b/app/Filament/Resources/Wiki/Artist.php index d6690482e..be0640434 100644 --- a/app/Filament/Resources/Wiki/Artist.php +++ b/app/Filament/Resources/Wiki/Artist.php @@ -21,8 +21,10 @@ use App\Filament\Resources\Wiki\Artist\RelationManagers\ResourceArtistRelationManager; use App\Filament\Resources\Wiki\Artist\RelationManagers\SongArtistRelationManager; use App\Filament\Resources\Wiki\ExternalResource\RelationManagers\ArtistResourceRelationManager; +use App\Filament\Resources\Wiki\Song\RelationManagers\ArtistSongRelationManager; use App\Models\Wiki\Artist as ArtistModel; use App\Pivots\Wiki\ArtistResource; +use App\Pivots\Wiki\ArtistSong; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Forms\Set; @@ -169,16 +171,17 @@ public static function form(Form $form): Form ->helperText(__('filament.fields.artist.slug.help')) ->required() ->maxLength(192) + ->unique(ArtistModel::class, ArtistModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->rules([ fn ($record) => [ 'required', 'max:192', 'alpha_dash', - $record !== null + $record instanceof ArtistModel ? Rule::unique(ArtistModel::class) ->ignore($record->getKey(), ArtistModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(ArtistModel::class)->__toString(), ] ]), @@ -186,6 +189,11 @@ public static function form(Form $form): Form ->label(__('filament.fields.artist.resources.as.name')) ->helperText(__('filament.fields.artist.resources.as.help')) ->visibleOn(ArtistResourceRelationManager::class), + + TextInput::make(ArtistSong::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.songs.as.name')) + ->helperText(__('filament.fields.artist.songs.as.help')) + ->visibleOn(ArtistSongRelationManager::class), ]) ->columns(2); } @@ -221,6 +229,11 @@ public static function table(Table $table): Table ->label(__('filament.fields.artist.resources.as.name')) ->visibleOn(ArtistResourceRelationManager::class) ->placeholder('-'), + + TextColumn::make(ArtistSong::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.songs.as.name')) + ->visibleOn(ArtistSongRelationManager::class) + ->placeholder('-'), ]) ->searchable() ->defaultSort(ArtistModel::ATTRIBUTE_ID, 'desc') diff --git a/app/Filament/Resources/Wiki/ExternalResource.php b/app/Filament/Resources/Wiki/ExternalResource.php index 7ebd7c9a9..a590b4af5 100644 --- a/app/Filament/Resources/Wiki/ExternalResource.php +++ b/app/Filament/Resources/Wiki/ExternalResource.php @@ -197,7 +197,8 @@ public static function table(Table $table): Table TextColumn::make(AnimeResource::ATTRIBUTE_AS) ->label(__('filament.fields.anime.resources.as.name')) - ->visibleOn(BaseRelationManager::class), + ->visibleOn(BaseRelationManager::class) + ->placeholder('-'), ]) ->defaultSort(ExternalResourceModel::ATTRIBUTE_ID, 'desc') ->filters(static::getFilters()) diff --git a/app/Filament/Resources/Wiki/Group.php b/app/Filament/Resources/Wiki/Group.php index 1dd660d8e..fe3b88beb 100644 --- a/app/Filament/Resources/Wiki/Group.php +++ b/app/Filament/Resources/Wiki/Group.php @@ -141,6 +141,7 @@ public static function form(Form $form): Form ->helperText(__('filament.fields.group.slug.help')) ->required() ->maxLength(192) + ->unique(GroupModel::class, GroupModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->rules([ fn ($record) => [ 'required', @@ -150,7 +151,7 @@ public static function form(Form $form): Form ? Rule::unique(GroupModel::class) ->ignore($record->getKey(), GroupModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(GroupModel::class)->__toString(), ] ]), ]) diff --git a/app/Filament/Resources/Wiki/Series.php b/app/Filament/Resources/Wiki/Series.php index 56c7e5eef..8e59c0b81 100644 --- a/app/Filament/Resources/Wiki/Series.php +++ b/app/Filament/Resources/Wiki/Series.php @@ -157,6 +157,7 @@ public static function form(Form $form): Form ->helperText(__('filament.fields.series.slug.help')) ->required() ->maxLength(192) + ->unique(SeriesModel::class, SeriesModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->rules([ fn ($record) => [ 'required', @@ -166,7 +167,7 @@ public static function form(Form $form): Form ? Rule::unique(SeriesModel::class) ->ignore($record->getKey(), SeriesModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(SeriesModel::class)->__toString(), ] ]), ]) diff --git a/app/Filament/Resources/Wiki/Song.php b/app/Filament/Resources/Wiki/Song.php index b72cba4fc..956a0ecff 100644 --- a/app/Filament/Resources/Wiki/Song.php +++ b/app/Filament/Resources/Wiki/Song.php @@ -9,6 +9,7 @@ use App\Filament\Components\Columns\TextColumn; use App\Filament\Components\Infolist\TextEntry; use App\Filament\Resources\BaseResource; +use App\Filament\Resources\Wiki\Artist\RelationManagers\SongArtistRelationManager; use App\Filament\Resources\Wiki\ExternalResource\RelationManagers\SongResourceRelationManager; use App\Filament\Resources\Wiki\Song\Pages\CreateSong; use App\Filament\Resources\Wiki\Song\Pages\EditSong; @@ -18,6 +19,7 @@ use App\Filament\Resources\Wiki\Song\RelationManagers\ResourceSongRelationManager; use App\Filament\Resources\Wiki\Song\RelationManagers\ThemeSongRelationManager; use App\Models\Wiki\Song as SongModel; +use App\Pivots\Wiki\ArtistSong; use App\Pivots\Wiki\SongResource; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; @@ -160,6 +162,12 @@ public static function form(Form $form): Form ->helperText(__('filament.fields.song.resources.as.help')) ->visibleOn(SongResourceRelationManager::class) ->placeholder('-'), + + TextInput::make(ArtistSong::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.songs.as.name')) + ->helperText(__('filament.fields.artist.songs.as.help')) + ->visibleOn(SongArtistRelationManager::class) + ->placeholder('-'), ]); } @@ -188,7 +196,14 @@ public static function table(Table $table): Table TextColumn::make(SongResource::ATTRIBUTE_AS) ->label(__('filament.fields.song.resources.as.name')) ->visibleOn(SongResourceRelationManager::class) - ->toggleable(), + ->toggleable() + ->placeholder('-'), + + TextColumn::make(ArtistSong::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.songs.as.name')) + ->visibleOn(SongArtistRelationManager::class) + ->toggleable() + ->placeholder('-'), ]) ->searchable() ->defaultSort(SongModel::ATTRIBUTE_ID, 'desc') diff --git a/app/Filament/Resources/Wiki/Studio.php b/app/Filament/Resources/Wiki/Studio.php index 82cbe1a69..18da41b5f 100644 --- a/app/Filament/Resources/Wiki/Studio.php +++ b/app/Filament/Resources/Wiki/Studio.php @@ -144,6 +144,7 @@ public static function form(Form $form): Form ->helperText(__('filament.fields.studio.slug.help')) ->required() ->maxLength(192) + ->unique(StudioModel::class, StudioModel::ATTRIBUTE_SLUG, ignoreRecord: true) ->rules([ fn ($record) => [ 'required', @@ -153,7 +154,7 @@ public static function form(Form $form): Form ? Rule::unique(StudioModel::class) ->ignore($record->getKey(), StudioModel::ATTRIBUTE_ID) ->__toString() - : null, + : Rule::unique(StudioModel::class)->__toString(), ] ]), diff --git a/app/Filament/Resources/Wiki/Video.php b/app/Filament/Resources/Wiki/Video.php index 73510b95a..8924b669a 100644 --- a/app/Filament/Resources/Wiki/Video.php +++ b/app/Filament/Resources/Wiki/Video.php @@ -381,7 +381,7 @@ public static function getActions(): array ->label(__('filament.actions.video.backfill.name')) ->requiresConfirmation() ->modalWidth(MaxWidth::TwoExtraLarge) - ->authorize('update', VideoModel::class), + ->authorize('create', VideoModel::class), MoveVideoAction::make('move-video') ->label(__('filament.actions.video.move.name')) diff --git a/app/Filament/Resources/Wiki/Video/Pages/EditVideo.php b/app/Filament/Resources/Wiki/Video/Pages/EditVideo.php index 9679a8a18..113f89160 100644 --- a/app/Filament/Resources/Wiki/Video/Pages/EditVideo.php +++ b/app/Filament/Resources/Wiki/Video/Pages/EditVideo.php @@ -37,7 +37,7 @@ protected function getHeaderActions(): array ->label(__('filament.actions.video.backfill.name')) ->requiresConfirmation() ->modalWidth(MaxWidth::TwoExtraLarge) - ->authorize('update', VideoModel::class), + ->authorize('create', VideoModel::class), MoveVideoHeaderAction::make('move-video') ->label(__('filament.actions.video.move.name')) diff --git a/app/Policies/Admin/AnnouncementPolicy.php b/app/Policies/Admin/AnnouncementPolicy.php index 320380a2b..0034187e2 100644 --- a/app/Policies/Admin/AnnouncementPolicy.php +++ b/app/Policies/Admin/AnnouncementPolicy.php @@ -8,6 +8,7 @@ use App\Enums\Auth\ExtendedCrudPermission; use App\Models\Admin\Announcement; use App\Models\Auth\User; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Laravel\Nova\Nova; @@ -28,7 +29,7 @@ public function viewAny(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Announcement::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Announcement::class)) : true ); } @@ -42,7 +43,7 @@ public function view(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Announcement::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Announcement::class)) : true ); } diff --git a/app/Policies/Admin/DumpPolicy.php b/app/Policies/Admin/DumpPolicy.php index 95ed13716..6cfebf3e3 100644 --- a/app/Policies/Admin/DumpPolicy.php +++ b/app/Policies/Admin/DumpPolicy.php @@ -8,6 +8,7 @@ use App\Enums\Auth\ExtendedCrudPermission; use App\Models\Admin\Dump; use App\Models\Auth\User; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Laravel\Nova\Nova; @@ -28,7 +29,7 @@ public function viewAny(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Dump::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Dump::class)) : true ); } @@ -42,7 +43,7 @@ public function view(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Dump::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Dump::class)) : true ); } diff --git a/app/Policies/Admin/FeaturePolicy.php b/app/Policies/Admin/FeaturePolicy.php index 11e1ed414..d12abf1dd 100644 --- a/app/Policies/Admin/FeaturePolicy.php +++ b/app/Policies/Admin/FeaturePolicy.php @@ -28,7 +28,7 @@ public function viewAny(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Feature::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Feature::class)) : true ); } diff --git a/app/Policies/Admin/FeaturedThemePolicy.php b/app/Policies/Admin/FeaturedThemePolicy.php index ab38bf95c..e49148190 100644 --- a/app/Policies/Admin/FeaturedThemePolicy.php +++ b/app/Policies/Admin/FeaturedThemePolicy.php @@ -30,7 +30,7 @@ public function viewAny(?User $user): bool { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(FeaturedTheme::class)), - fn (): bool => true + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(FeaturedTheme::class)) : true ); }