From c94fbe4ab8d6794d0bb7944cff562e75250a2291 Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Wed, 28 Jan 2026 21:34:27 +0100 Subject: [PATCH] Require current password on profile password change --- .../SuperAdmin/Pages/Auth/EditProfile.php | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/Filament/SuperAdmin/Pages/Auth/EditProfile.php b/app/Filament/SuperAdmin/Pages/Auth/EditProfile.php index bf597da..acc5750 100644 --- a/app/Filament/SuperAdmin/Pages/Auth/EditProfile.php +++ b/app/Filament/SuperAdmin/Pages/Auth/EditProfile.php @@ -3,14 +3,45 @@ namespace App\Filament\SuperAdmin\Pages\Auth; use Filament\Auth\Pages\EditProfile as BaseEditProfile; +use Filament\Facades\Filament; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; +use Filament\Schemas\Components\Component; use Filament\Schemas\Components\Livewire; use Filament\Schemas\Components\Section; +use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Schema; class EditProfile extends BaseEditProfile { + protected function getPasswordConfirmationFormComponent(): Component + { + return TextInput::make('passwordConfirmation') + ->label(__('filament-panels::auth/pages/edit-profile.form.password_confirmation.label')) + ->validationAttribute(__('filament-panels::auth/pages/edit-profile.form.password_confirmation.validation_attribute')) + ->password() + ->autocomplete('new-password') + ->revealable(filament()->arePasswordsRevealable()) + ->required() + ->visible(fn (Get $get): bool => filled($get('password'))) + ->dehydrated(false); + } + + protected function getCurrentPasswordFormComponent(): Component + { + return TextInput::make('currentPassword') + ->label(__('filament-panels::auth/pages/edit-profile.form.current_password.label')) + ->validationAttribute(__('filament-panels::auth/pages/edit-profile.form.current_password.validation_attribute')) + ->belowContent(__('filament-panels::auth/pages/edit-profile.form.current_password.below_content')) + ->password() + ->autocomplete('current-password') + ->currentPassword(guard: Filament::getAuthGuard()) + ->revealable(filament()->arePasswordsRevealable()) + ->required() + ->visible(fn (Get $get): bool => filled($get('password'))) + ->dehydrated(false); + } + public function form(Schema $schema): Schema { return $schema