diff --git a/app/Filament/Resources/DatabaseResource.php b/app/Filament/Resources/DatabaseResource.php index df451dc..e2cde7c 100644 --- a/app/Filament/Resources/DatabaseResource.php +++ b/app/Filament/Resources/DatabaseResource.php @@ -48,7 +48,9 @@ public static function form(Form $form): Form ->required(), TextInput::make('username') ->required(), - TextInput::make('password'), + TextInput::make('password') + ->password() + ->revealable(), ]) ]) ->maxItems(1) @@ -76,7 +78,8 @@ public static function table(Table $table): Table }) ->beforeReplicaSaved(function (Database $replica, array $data) { $replica->fill($data); - }) + }), + ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ diff --git a/app/Filament/Resources/DatabaseResource/Pages/BackupHistory.php b/app/Filament/Resources/DatabaseResource/Pages/BackupHistory.php index 61c42cb..3ecdb59 100644 --- a/app/Filament/Resources/DatabaseResource/Pages/BackupHistory.php +++ b/app/Filament/Resources/DatabaseResource/Pages/BackupHistory.php @@ -44,6 +44,10 @@ public function table(Table $table): Table Tables\Columns\TextColumn::make('created_at') ]) ->actions([ + Tables\Actions\Action::make('download') + ->label('Download') + ->openUrlInNewTab() + ->url(fn(\App\Models\BackupHistory $record) => url('/download/' . $record->filename)), Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index d4ef644..9215a1f 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -12,6 +12,6 @@ class Authenticate extends Middleware */ protected function redirectTo(Request $request): ?string { - return $request->expectsJson() ? null : route('login'); + return $request->expectsJson() ? null : route('filament.admin.auth.login'); } } diff --git a/routes/web.php b/routes/web.php index 0d91ea2..cb50abe 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,3 +14,11 @@ */ Route::get('/', fn() => redirect('/admin')); + +Route::middleware('auth')->group(function () { + Route::get('/download/{filename}', function($filename) { + $storage = \Illuminate\Support\Facades\Storage::disk('databases'); + + return $storage->download($filename); + }); +});