Skip to content

Commit 53c3927

Browse files
committed
add preview action and update user admin check
1 parent beb8a4d commit 53c3927

File tree

4 files changed

+26
-1
lines changed

4 files changed

+26
-1
lines changed

app/Filament/Resources/ArticleResource.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace App\Filament\Resources;
44

5+
use App\Filament\Resources\ArticleResource\Actions\PreviewAction;
56
use App\Filament\Resources\ArticleResource\Actions\PublishAction;
67
use App\Filament\Resources\ArticleResource\Actions\ScheduleAction;
78
use App\Filament\Resources\ArticleResource\Actions\UnpublishAction;
@@ -86,6 +87,7 @@ public static function table(Table $table): Table
8687
])
8788
->actions([
8889
ActionGroup::make([
90+
PreviewAction::make('preview'),
8991
Tables\Actions\EditAction::make()->url(fn ($record) => static::getUrl('edit', ['record' => $record->id])),
9092
UnpublishAction::make('unpublish'),
9193
PublishAction::make('publish'),
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\ArticleResource\Actions;
4+
5+
use App\Models\Article;
6+
use Filament\Tables\Actions\Action;
7+
8+
class PreviewAction extends Action
9+
{
10+
protected function setUp(): void
11+
{
12+
$this
13+
->label('Preview')
14+
->icon('heroicon-o-eye')
15+
->url(fn (Article $article) => route('article', $article))
16+
->openUrlInNewTab();
17+
}
18+
}

app/Http/Controllers/ShowBlogController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public function index()
1919

2020
public function show(Article $article)
2121
{
22-
abort_if(! $article->isPublished(), 404);
22+
abort_unless($article->isPublished() || auth()->user()?->isAdmin(), 404);
2323

2424
return view('article', [
2525
'article' => $article,

app/Models/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ class User extends Authenticatable implements FilamentUser
2929
];
3030

3131
public function canAccessPanel(Panel $panel): bool
32+
{
33+
return $this->isAdmin();
34+
}
35+
36+
public function isAdmin(): bool
3237
{
3338
return in_array($this->email, config('filament.users'), true);
3439
}

0 commit comments

Comments
 (0)